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. Outline • 開場 (~10 mins) • 關於 Startup IT (~10

    mins) • 要如何善用 AWS (~30 mins) • 要如何 Scale AWS (~20 mins) • Q&A (~30 mins)
  2. 我擅長什麼? • System Administration ◦ Traditional, and ◦ Cloud Services

    • Database ◦ Relational, and ◦ NoSQL • Programming? • https://blog.gslin.org/
  3. 關於 Startup IT - Mindset • 人力是最貴的成本 • 人力應該專心在核心業務上 •

    利用成熟的產業降低人力資源的消耗: ◦ 傳統業務的 Outsourcing ◦ AWS 的 Outsourcing (今天的重點)
  4. AWS 服務介紹 • IAM • Region (觀念) • AZ (觀念)

    • VPC • EC2 • Route53 • SES • ELB • RDS • ElastiCache • S3 • CloudFront
  5. AWS IAM • AWS Identity and Access Management • AWS

    的權限管理系統: ◦ 用 Group 管理權限 ◦ 用 MFA (2FA) 保護帳號 ◦ 用 Role 釋出權限
  6. Amazon VPC • Amazon Virtual Private Cloud • 虛擬 Switch

    與 DHCP Service • 一個 Region 可以有很多 VPC (目前不重要) • 一個 VPC 可以有很多 Subnet • 一個 Subnet 可以有一個 Routing • 每個 VPC 可以有一個 Main Routing (i.e. Default Routing)
  7. Amazon VPC • 建議的切割方法: ◦ Public Subnet (可以直接連外) ◦ Private

    Subnet (可以透過 NAT Instance 連外) ◦ Internal Subnet (無法連外,需要透過內部的 Proxy Server 連外) ◦ 上面三種 Subnet 都在每個 AZ 建一組
  8. Amazon VPC • Public Subnet: ◦ Local Routing + Internet

    Gateway • Internal Subnet: ◦ Local Routing Only • Private Subnet 建議的 Routing: ◦ 除了 Local Routing 外,每個 AZ Subnet 都有自己的 Routing 從自己 AZ 的 NAT instance 出去
  9. Amazon EC2 • Amazon Elastic Compute Cloud • 虛擬主機服務: ◦

    要不要使用 EBS ◦ HVM 與 PV 的差異 ◦ 為什麼推薦 t2.{micro,small,medium}
  10. Amazon EC2 • IAM Role 與 SDK 的配合 • aws-cli:

    ◦ 官方工具 ◦ AWS Command Line Interface
  11. Amazon Route 53 • DNS 管理服務 • Private DNS ◦

    給 VPC 內的機器使用 • Public DNS ◦ 給 Internet 查詢用
  12. ELB • Elastic Load Balancing • L4 Switch 或是 L7

    Switch: ◦ HAProxy • 可以對內也可以對外
  13. ELB • HTTP/HTTPS: ◦ 可以在 ELB 上 Offload HTTPS 流量

    ◦ 在設計上,對外全部用 HTTPS!
  14. Amazon RDS • Amazon Relational Database Service • Open Source:

    ◦ MySQL、PostgreSQL • 商用: ◦ Oracle、SQL Server • Amazon 自家: ◦ Aurora (MySQL compatible)
  15. Amazon ElastiCache • Cache 服務 • Memcached、Redis • Memcached: ◦

    把 Login Session 的資料放進去 • Redis: ◦ 把各種計算好的資料放進去
  16. Amazon S3 • Amazon Simple Storage Service • 檔案系統附帶 Web

    Server: ◦ JavaScript、CSS、圖片放上來就對了
  17. 猜猜巧克力的 Scale • 2014 年大年初 N: ◦ 使用的量衝起來爆量了 ◦ 被叫起來找問題:

    ▪ 後台 AWS Web Console 可以看到是 RDS 的 CPU 滿了,找出問題馬上修正 DB Schema。 ▪ 順利撐過第一天,但到了第二天...
  18. 猜猜巧克力的 Scale... • 第二天繼續發酵,大年初 N+1: ◦ 繼續爆衝: ▪ 把 RDS

    機器開到最大台 ▪ 直接加 EC2 機器改善 CPU 使用率 (不是 Auto Scaling) ▪ 找 DBA 協助找出問題,並且要求開發的 Engineer 要他修改
  19. 之後某一天... • 在第一名 iOS 與 Android 第一名的尖峰時: ◦ ELB 約

    2000 reqs/sec API call。 ◦ EC2 用 20 台 c3.8xlarge。 ◦ RDS 一台最大台。 • 某天晚上事業群的老大請客吃老乾杯...
  20. 為什麼不提 Auto Scaling? • 相對複雜: ◦ 需要有某種 Code Deploy 機制。

    ◦ 目前 AWS CodeDeploy 只在 us-east-1 提供,所以如 果在其他區要自己建立 Deploy 機制。 • 啊你的業務又不一定會大起來 (逃)
  21. 為什麼不提 DynamoDB? • 要很有經驗的人才寫得順 • 但有經驗的人寫 RDS 會更順 • 在

    Startup 時不要花那麼多力氣在這 • 而且 RDS 可以跟 DynamoDB 共存,有需要 用到的部份再改寫轉移過去就好
  22. 複習 • 善用 AWS 官方提供的 SDK,上 IAM Role • 善用

    RDS 的服務 • 能上 HTTPS 就全上 HTTPS • 把圖片、CSS、JavaScript 放到 S3 上
  23. AWS 只有這樣? • 當然不只! • 有很多很好用的服務: ◦ SNS:行動平台的 Push 機制

    ◦ SQS:非同步的 Queue Service ◦ Redshift:SQL-like 的 BI 工具 • 這些服務「會用的話會更好,但沒有用到也還 okay」的服務
  24. AWS 只有這樣? • 你可以用 RSS Reader 訂起來看! ◦ Feedly •

    前幾天繁體中文版也放出來了:https://aws.amazon. com/tw/
  25. Q&A