Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Amazon EC2 Container Service (Amazon ECS) 概要

8,314 views

Published on

2015/07/27 JAWS-UGコンテナ支部 #1 での発表資料です。

Published in: Technology

Amazon EC2 Container Service (Amazon ECS) 概要

  1. 1. 1 Amazon EC2 Container Service 2015/7/27 JAWS Container #1 Ryosuke Iwanaga, Amazon Data Services Japan
  2. 2. 2 自己紹介 • Ryosuke Iwanaga (岩永 亮介) – a.k.a @riywo • Amazon Data Services Japan • Solutions Architect – Startup, Gaming – Big Data / Deployment / Container • Before Amazon – Software Engineer / Ops Engineer / DBA / etc.
  3. 3. 3 Solutions Architect, Amazon Data Services Japan • AWSの日本での利用促進を 行っています – AWSに関する技術支援(無料) – セミナー、ハンズオン等登壇 – ブログ、Webinar等で情報発信 • Amazon Web Services ブログ • AWS Solutions Architect ブログ • AWS Black Belt Tech Webinar • AWS 初心者向け Webinar • などなど!
  4. 4. 4 AWS Black Belt Tech Webinar 2015 • 今後の配信予定 #awsblackbelt 7月は「AWS 運用機能月間」、8月は「DB月間」です! – 7/29(水)AWS CloudHSM & AWS KMS – 8/5 (水)Amazon DynamoDB – 8/12(水)お盆のためお休み – 8/19(水)Amazon ElastiCache – 8/26(水)Amazon Redshift • イベントスケジュール http://aws.amazon.com/jp/event_schedule/
  5. 5. 5 AWS初心者向けWebinar • AWSをこれからご使用になる技術者向け、ソリュー ションカットのセミナー • 今後の配信予定 ※18時~19時15分の時間帯です! 7月28日(火)「RDBのAWSへの移行方法(Oracleを例に)」 8月11日(火)「AWS からの E メール送信」 8月25日(火)「AWS 上に Web サーバーシステムを作ってみま しょう~仮想サーバーから[演習つき]」 • 申し込みサイト – http://aws.amazon.com/jp/about-aws/events/
  6. 6. 6 We are hiring!! http://aws.amazon.com/jp/careers/
  7. 7. 7 アジェンダ • コンテナとは? • クラスタ管理とは? • Amazon ECS概要 ※参考情報としてBlack Belt Tech Webinarの 資料もご活用下さい。 http://www.slideshare.net/AmazonWebServicesJapan/aws-blackbelt-2015-ecs
  8. 8. 8 コンテナとは?
  9. 9. 9 ProcessProcess コンテナとは? • OS仮想化 • プロセス隔離 • イメージ • 自動化 Server Bins/Libs Bins/Libs OS App1 App2 Dockerfile OS: Ubuntu Apache, PHP Dockerfile OS: CentOS Nginx, Ruby Images Build Run Run
  10. 10. 10 コンテナの利点 • 可搬性 – 不変なイメージ • 柔軟性 – 削除、再生成が容易 • 速度 – OSは既に起動済 • 効率 – オーバーヘッド少ない ProcessProcess Server Bins/Libs Bins/Libs OS App1 App2 Dockerfile OS: Ubuntu Apache, PHP Dockerfile OS: CentOS Nginx, Ruby Images Build Run Run
  11. 11. 11 作業単位としてのコンテナ Base image Patches インフラ担当 開発者 Ruby Redis Logger Utilities App ローカル開発環境 本番環境
  12. 12. 12 クラスタ管理とは?
  13. 13. 13 コンテナをただ起動するだけの場合 • 今までのアプリケー ションと一緒 – 所詮ただのプロセス • AWS Elastic BeanstalkのDocker • クラスタ管理は別に 必要ない ・・・ Deploy
  14. 14. 14 リソースの利用率問題 • 枠割毎のインス タンスのグルー ピングでは、ど うしても無駄が 生じる • リソース自体と アプリが密結合 35% 85%
  15. 15. 15 クラスタ管理の必要性 • インスタンス毎に アプリ管理しない – リソースの仮想化 • クラスタとして管 理すると、適切な 配置が可能 – スケジューラ – コンテナならどこ でも簡単に配置 ~80%
  16. 16. 16 クラスタ管理とスケジューラ • クラスタ管理 – 計算機群のリソース、 状態を常に管理 • スケジューラ – クラスタ全体を見て、 適切にコンテナを配置 CPU: 500 Mem: 300 CPU: 10 Mem: 30 CPU: 2000 Mem: 1000 CPU: 10 Mem: 30CPU: 10 Mem: 30 Scheduler Cluster Manager
  17. 17. 17 Amazon EC2 Container Serviceの概要
  18. 18. 18 Amazon EC2 Container Serviceの利点 クラスタ管理はお任せ 状態管理、操作、監視 スケーラブル 簡単に、どんなスケールの クラスタも管理できる 柔軟なコンテナの配置 他のAWSサービスとの連携が デザインされている 拡張性の高さ アプリケーション バッチジョブ 複数のスケジューラ Elastic Load Balancing, Amazon EBS, Amazon VPC, AWS IAM, AWS CloudTrail 包括的なAPI オープンソースエージェント カスタムスケジューラ
  19. 19. 19 コンテナ管理に必要な要素 • クラスタ管理 – クラスタ全体の状態管理 • グループ化 – 同一マシンで動かしたい コンテナ群の管理 • スケジューラ – タスク配置、デプロイ、 死活監視
  20. 20. 20 Cluster Container Instance Amazon ECSにおけるコンテナ管理の概要図 • クラスタ管理 – Cluster, Container Instance, Agent • グループ化 – Task Definition, Task, Container • スケジューラ – Run Task, Service Agent Task Container Container Task Service Task Definition Agent Task Task Definition Run Task
  21. 21. 21 Amazon ECSデモ動画 https://www.youtube.com/watch?v=1wLMLwjCqN4
  22. 22. 22 Run Task Amazon ECS: クラスタ管理 • クラスタ管理 – Cluster, Container Instance, Agent • グループ化 – Task Definition, Task, Container • スケジューラ – Run Task, Service Service Task DefinitionTask Definition Cluster Container Instance Task Container Container Task Agent Task Agent
  23. 23. 23 Amazon ECS: Cluster • Container Instance の集合体 • Cluster内のInstance が持つリソースをま とめて管理
  24. 24. 24 Amazon ECS: Container Instance • コンテナのホストとな るAmazon EC2 • VPC内の任意のインス タンスを利用可能 – Docker+ECS Agentが 動いていることが必要 – Amazon ECS- optimized AMI
  25. 25. 25 Amazon ECS: Agent • Amazon ECSの endpointと通信する エージェント • Go言語製のDocker image • Docker Hubで提供
  26. 26. 26 Run Task Amazon ECS: グループ化 • クラスタ管理 – Cluster, Container Instance, Agent • グループ化 – Task Definition, Task, Container • スケジューラ – Run Task, Service Service Cluster Container Instance Agent Agent Task Container Container Task Task Task DefinitionTask Definition
  27. 27. 27 Amazon ECS: Task Definition • コンテナの集合を定義 – 必ず同じインスタンスで 稼働 – 要求するリソースを指定 • CPU, memory, (Port) • ボリュームも定義可能 – インスタンスのファイル システムを利用できる • バージョニングが可能
  28. 28. 28 参考: Docker Compose / Docker Swarm • Docker Compose ≒ Task Definition – docker-compose.ymlとTask DefinitionのJSONを変換するツールを 作っている方もいます • https://github.com/ambitioninc/container-transform ※参考: DockerCon 2015で、Amazon ECSとDocker Compose, Docker Swarmのインテグレーションの予 定が発表されています。 https://twitter.com/docker/status/613033125900382209
  29. 29. 29 Amazon ECS: Task • Task Definitionが実体 化されたもの – 1つのTask Definition から複数のTaskが生成 • リソースに余裕のある Container Instanceで 実行される
  30. 30. 30 Amazon ECS: Container • Taskの実体である Dockerのコンテナ – 1つのTaskに複数の Containerが含まれる • Container Instance 上で実行される
  31. 31. 31 Amazon ECS: スケジューラ • クラスタ管理 – Cluster, Container Instance, Agent • グループ化 – Task Definition, Task, Container • スケジューラ – Run Task, Service Cluster Container Instance Agent Agent Task Container Container Task Task Task DefinitionTask Definition ServiceRun Task
  32. 32. 32 Amazon ECS: Run Task • Batchジョブの様な ワークロードに最適 • Task Definitionから 指定した数のTaskを 実行する – Container Instance は自動的に選ばれる
  33. 33. 33 Amazon ECS: Service • Web/APIの様に長期稼働 するワークロードに最適 • Taskを必要数保ってくれ るスケジューラ – 自動復旧にも対応 • 新しいTask Definitionを デプロイしつつ切替 • Elastic Load Balancing との連携も可能
  34. 34. 34 Amazon ECS: Serviceの例
  35. 35. 35 Amazon ECS: ServiceのUpdate • Serviceが使うTask DefinitionをUpdateすると、 新しいTaskをデプロイできる • 空いているリソースで新しいTaskを起動しなが ら、徐々に古いTaskを止めていく – 中間では、新旧のTaskが混在するため、完全なBlue-Green Deployment(Atomicな切替)ではないので注意が必要
  36. 36. 36 まとめ
  37. 37. 37 Amazon ECSで、高性能なリソース管理を • Dockerを使うなら、ぜひリソース効率化も – コンテナの特徴を活かしきる • Amazon ECSは高機能なリソース管理がマネー ジドで利用可能 – 「信頼できる状態管理」+「柔軟なスケジューラ」 – Amazon CTO Wernerの解説を和訳したので是非一読下さい! • 皆さんからのフィードバックが最も重要です – いつでもお待ちしています!

×