Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Startup IT infrastructure: Developing and Working with AWS

Gea-Suan Lin
January 27, 2015

Startup IT infrastructure: Developing and Working with AWS

http://innovation.kktix.cc/events/starup-it-infrastructure-developing-and-working-with-aws

Topic: KKBOX Innovation Chat #5 - 利用AWS開發及實作新創公司的基礎資訊建設
Date: 2015/01/27 14:00~16:00
Location: 高雄 K Square

Gea-Suan Lin

January 27, 2015
Tweet

More Decks by Gea-Suan Lin

Other Decks in Technology

Transcript

  1. Startup IT infrastructure:
    Developing and Working
    with AWS
    Gea-Suan Lin
    KKBOX Technologies

    View full-size slide

  2. Outline
    ● 開場 (~10 mins)
    ● 關於 Startup IT (~10 mins)
    ● 要如何善用 AWS (~30 mins)
    ● 要如何 Scale AWS (~20 mins)
    ● Q&A (~30 mins)

    View full-size slide

  3. 我是誰?

    View full-size slide

  4. Gea-Suan Lin
    ● 日本是後院
    ● J-POP
    ○ 梶浦由記、Kalafina
    ○ 水樹奈奈
    ● 演唱會
    ○ https://blog.gslin.org/live/

    View full-size slide

  5. 所以,我是誰?
    ● Full Stack Engineer?
    ● DevOps?
    ○ https://github.com/gslin

    View full-size slide

  6. 我擅長什麼?
    ● System Administration
    ○ Traditional, and
    ○ Cloud Services
    ● Database
    ○ Relational, and
    ○ NoSQL
    ● Programming?
    ● https://blog.gslin.org/

    View full-size slide

  7. 我在 KKBOX 裡做什麼?
    ● 帶五個 Team
    ● 思考 Server Team 的工作內容

    View full-size slide

  8. Hiring!
    ● 我們在找人 (台北 & 高雄都很多):
    ○ http://tinyurl.com/kkbox-104
    ● 你也可以問 Eric Bi 很多細節!

    View full-size slide

  9. 關於 Startup IT - Mindset
    ● 人力是最貴的成本
    ● 人力應該專心在核心業務上
    ● 利用成熟的產業降低人力資源的消耗:
    ○ 傳統業務的 Outsourcing
    ○ AWS 的 Outsourcing (今天的重點)

    View full-size slide

  10. AWS 服務介紹
    ● IAM
    ● Region (觀念)
    ● AZ (觀念)
    ● VPC
    ● EC2
    ● Route53
    ● SES
    ● ELB
    ● RDS
    ● ElastiCache
    ● S3
    ● CloudFront

    View full-size slide

  11. AWS IAM
    ● AWS Identity and Access Management
    ● AWS 的權限管理系統:
    ○ 用 Group 管理權限
    ○ 用 MFA (2FA) 保護帳號
    ○ 用 Role 釋出權限

    View full-size slide

  12. Region
    ● AWS 各個區域都有提供服務,但支援度不一:
    ○ us-east-1:最早成立,功能最完整,也是支援歐美區服
    務的最愛
    ○ us-west-2:價位與 us-east-1 接近
    ○ ap-northeast-1:東京區,離台灣最近
    ● 依照服務類型以及需求而選擇

    View full-size slide

  13. AZ
    ● Availability Zone
    ● http://www.enterprisetech.com/2014/11/14/rare-peek-
    massive-scale-aws/

    View full-size slide

  14. Amazon VPC
    ● Amazon Virtual Private Cloud
    ● 虛擬 Switch 與 DHCP Service
    ● 一個 Region 可以有很多 VPC (目前不重要)
    ● 一個 VPC 可以有很多 Subnet
    ● 一個 Subnet 可以有一個 Routing
    ● 每個 VPC 可以有一個 Main Routing (i.e.
    Default Routing)

    View full-size slide

  15. Amazon VPC
    ● 建議的切割方法:
    ○ Public Subnet (可以直接連外)
    ○ Private Subnet (可以透過 NAT Instance 連外)
    ○ Internal Subnet (無法連外,需要透過內部的 Proxy
    Server 連外)
    ○ 上面三種 Subnet 都在每個 AZ 建一組

    View full-size slide

  16. Amazon VPC
    ● Public Subnet:
    ○ Local Routing + Internet Gateway
    ● Internal Subnet:
    ○ Local Routing Only
    ● Private Subnet 建議的 Routing:
    ○ 除了 Local Routing 外,每個 AZ Subnet 都有自己的
    Routing 從自己 AZ 的 NAT instance 出去

    View full-size slide

  17. Amazon EC2
    ● Amazon Elastic Compute Cloud
    ● 虛擬主機服務:
    ○ 要不要使用 EBS
    ○ HVM 與 PV 的差異
    ○ 為什麼推薦 t2.{micro,small,medium}

    View full-size slide

  18. Amazon EC2
    ● IAM Role 與 SDK 的配合
    ● aws-cli:
    ○ 官方工具
    ○ AWS Command Line Interface

    View full-size slide

  19. Amazon Route 53
    ● DNS 管理服務
    ● Private DNS
    ○ 給 VPC 內的機器使用
    ● Public DNS
    ○ 給 Internet 查詢用

    View full-size slide

  20. Amazon SES
    ● Amazon Simple Email Service
    ● 發信的服務:
    ○ 因為 EC2 直接發信的問題

    View full-size slide

  21. ELB
    ● Elastic Load Balancing
    ● L4 Switch 或是 L7 Switch:
    ○ HAProxy
    ● 可以對內也可以對外

    View full-size slide

  22. ELB
    ● HTTP/HTTPS:
    ○ 可以在 ELB 上 Offload HTTPS 流量
    ○ 在設計上,對外全部用 HTTPS!

    View full-size slide

  23. Amazon RDS
    ● Amazon Relational Database Service
    ● Open Source:
    ○ MySQL、PostgreSQL
    ● 商用:
    ○ Oracle、SQL Server
    ● Amazon 自家:
    ○ Aurora (MySQL compatible)

    View full-size slide

  24. Amazon ElastiCache
    ● Cache 服務
    ● Memcached、Redis
    ● Memcached:
    ○ 把 Login Session 的資料放進去
    ● Redis:
    ○ 把各種計算好的資料放進去

    View full-size slide

  25. Amazon S3
    ● Amazon Simple Storage Service
    ● 檔案系統附帶 Web Server:
    ○ JavaScript、CSS、圖片放上來就對了

    View full-size slide

  26. Amazon CloudFront
    ● CDN 服務
    ● 把 S3 掛上去,甚至把整個站掛上去
    ○ 另外一個服務是 CloudFlare

    View full-size slide

  27. 綜合起來,舉個例子來說明...
    ● 猜猜巧克力
    ○ KKBOX 的遊戲事業群所發展的手機遊戲:
    ■ Android、iOS
    ■ Server 端用 PHP
    ■ 初期只有用到 S3、EC2、ELB、RDS (MySQL)
    ○ Scale 的故事...

    View full-size slide

  28. Scale
    ● 你的目標?
    ● 你可以承受的 Downtime?
    ● 最重要的是,你有什麼樣的人?
    ○ 不僅僅是你的員工能力,還包括了人脈

    View full-size slide

  29. 猜猜巧克力的 Scale
    ● 2014 年大年初 N:
    ○ 使用的量衝起來爆量了
    ○ 被叫起來找問題:
    ■ 後台 AWS Web Console 可以看到是 RDS 的
    CPU 滿了,找出問題馬上修正 DB Schema。
    ■ 順利撐過第一天,但到了第二天...

    View full-size slide

  30. 猜猜巧克力的 Scale...
    ● 第二天繼續發酵,大年初 N+1:
    ○ 繼續爆衝:
    ■ 把 RDS 機器開到最大台
    ■ 直接加 EC2 機器改善 CPU 使用率 (不是 Auto
    Scaling)
    ■ 找 DBA 協助找出問題,並且要求開發的 Engineer
    要他修改

    View full-size slide

  31. 之後某一天...
    ● 在第一名 iOS 與 Android 第一名的尖峰時:
    ○ ELB 約 2000 reqs/sec API call。
    ○ EC2 用 20 台 c3.8xlarge。
    ○ RDS 一台最大台。
    ● 某天晚上事業群的老大請客吃老乾杯...

    View full-size slide

  32. 總而言之...
    ● 你會多少就先用多少
    ● 然後:
    ○ 自己多玩一點,爆量的時候可以自己找問題
    ○ 要嘛廣結善緣,爆量的時候有人願意幫忙

    View full-size slide

  33. 為什麼不提 Auto Scaling?
    ● 相對複雜:
    ○ 需要有某種 Code Deploy 機制。
    ○ 目前 AWS CodeDeploy 只在 us-east-1 提供,所以如
    果在其他區要自己建立 Deploy 機制。
    ● 啊你的業務又不一定會大起來 (逃)

    View full-size slide

  34. 為什麼不提 DynamoDB?
    ● 要很有經驗的人才寫得順
    ● 但有經驗的人寫 RDS 會更順
    ● 在 Startup 時不要花那麼多力氣在這
    ● 而且 RDS 可以跟 DynamoDB 共存,有需要
    用到的部份再改寫轉移過去就好

    View full-size slide

  35. 複習
    ● 很難改的東西儘量一開始就做對:
    ○ IAM
    ○ VPC
    ● 這兩個超級難改!

    View full-size slide

  36. 複習
    ● 善用 AWS 官方提供的 SDK,上 IAM Role
    ● 善用 RDS 的服務
    ● 能上 HTTPS 就全上 HTTPS
    ● 把圖片、CSS、JavaScript 放到 S3 上

    View full-size slide

  37. AWS 只有這樣?
    ● 當然不只!
    ● 有很多很好用的服務:
    ○ SNS:行動平台的 Push 機制
    ○ SQS:非同步的 Queue Service
    ○ Redshift:SQL-like 的 BI 工具
    ● 這些服務「會用的話會更好,但沒有用到也還
    okay」的服務

    View full-size slide

  38. AWS 只有這樣?
    ● 你可以用 RSS Reader 訂起來看!
    ○ Feedly
    ● 前幾天繁體中文版也放出來了:https://aws.amazon.
    com/tw/

    View full-size slide