Slide 1

Slide 1 text

ECSと他のDocker 管理理サービスの⽐比較  JAWS-‐‑‒UGコンテナ⽀支部  #1 classmethod.jp 1 2015/7/27 クラスメソッド株式会社 ⼤大瀧隆太

Slide 2

Slide 2 text

classmethod.jp 2 •  Ryuta  Otaki        @takipone •  Job  title  :      AWS  Consulting  Div.    Pre-‐‑‒sales/Engineer •  Interest  :      Network  /      Deployment  Tools •  Favorite  AWS  Service      Amazon  Route  53 classmethod.jp 2 About  me

Slide 3

Slide 3 text

classmethod.jp 3 Works ↑@ITさんのWeb連載 全4回、2014年年5〜~8⽉月 ↑先⽉月出たばかりのムック 本です。1部スピーカーの @zembutsuさんと共著。

Slide 4

Slide 4 text

classmethod.jp 4 会社の紹介 クラスメソッドは AWSとモバイルアプリ開発の ブログを社員総出でやってます。 http://dev.classmethod.jp/

Slide 5

Slide 5 text

classmethod.jp 5 ブログでは... •  ECSの記事が20本! http://dev.classmethod.jp/referencecat/aws-‐‑‒ecs/ •  Dockerの記事が43本(多分もっとある) http://dev.classmethod.jp/referencecat/docker/ •  ちなみにAWSだと1,648本あります(キモい

Slide 6

Slide 6 text

Agenda •  Dockerクラスタとは •  ⽐比較 •  Docker管理理ソフトウェア/サービス •  ECSの使いどころ •  ECSの真のライバル classmethod.jp 6

Slide 7

Slide 7 text

Dockerクラスタとは •  Dockerコンテナを実⾏行行する複数のホストをグ ループとして扱う classmethod.jp 7 EC2 EC2 EC2 EC2 EC2 EC2 EC2 EC2 Dockerクラスタ

Slide 8

Slide 8 text

Dockerクラスタに求められる機能 1.  スケジューラ 2.  オーバーレイネットワーク 3.  サービスディスカバリ classmethod.jp 8

Slide 9

Slide 9 text

スケジューラ •  どのホストでどのコンテナを実⾏行行するのかを 決定する – 例例:  追加するコンテナはリソースに余裕のある       ホストで実⾏行行 – 例例:  コンテナAとコンテナBは同じホストに配置 classmethod.jp 9 EC2 EC2 EC2 EC2 Dockerクラスタ ?

Slide 10

Slide 10 text

オーバーレイネットワーク •  クラスタ内で⼀一意なコンテナのIPアドレス •  他のホストのコンテナとの相互接続 classmethod.jp 10 EC2 EC2 EC2 EC2 Dockerクラスタ

Slide 11

Slide 11 text

サービスディスカバリ •  コンテナで実⾏行行するサービスのエンドポイン トの提供 •  複数コンテナの場合は負荷分散も classmethod.jp 11 EC2 EC2 EC2 EC2 Dockerクラスタ web.local mysql.local

Slide 12

Slide 12 text

Docker管理理ソフトウェア/サービス classmethod.jp 12 Amazon  ECS Kubernetes Docker  Swarm ほかにもあるよ!

Slide 13

Slide 13 text

Kubernetes(略略称:  k8s) •  Googleが主に開発してきたOSSのDocker クラスタ管理理ソフトウェア •  AWS含め様々なプラットフォームをサポート •  最近バージョン1.0をリリース •  同時にプロダクトオーナーを ⾮非営利利組織のLinux  Foundation 配下のCloud  Native  Computing Foundationに移管予定と発表 classmethod.jp 13

Slide 14

Slide 14 text

Kubernetes勢 •  Tectonic:  CoreOS  +  Kubernetes •  OpenShift:  Red  HatのPaaS •  GKE:  GoogleのKubernetes  as  a  Service •  多数決的には、Kubernetesがデファクトにな りそうな⾒見見通し。 classmethod.jp 14

Slide 15

Slide 15 text

Kubernetes  as  a  Service •  GKE(Google  Container  Engine) •  現在はベータ •  GCE/GCP上でKubernetesクラスタを簡単に 構築しマネージドマスターを提供 •  現時点ではGKE独⾃自の拡張機能はない •  GCPにはGCR(Google  Container  Registry) というDocker  Registry  as  a  Serviceがあっ て便便利利 (ただしストレージ領領域はGCP版S3のGCS) classmethod.jp 15

Slide 16

Slide 16 text

Docker  Swarm •  Docker社が開発するOSSのDockerクラスタ 管理理ソフトウェア •  現在はベータ(バージョン0.3) •  オペレーションがdockerコマンド(Docker   RESTful  API)に統合されている •  ECSがサポート予定と AWSがDockerCon  15 で発⾔言 classmethod.jp 16

Slide 17

Slide 17 text

その他 •  古参 – CoreOS  Fleet •  新進気鋭 – Rancher •  クラスタ勢 – Apache  Mesos  /  Mesosphere  DCOS •  PaaS勢 – Heroku – Deis – Flynn classmethod.jp 17

Slide 18

Slide 18 text

⽐比較 classmethod.jp 18 項⽬目 ECS Kubernetes Swarm スケジューラ △ 簡易易な実装 +他のスケジューラ △ 簡易易な実装 +他のスケジューラ ○ Strategies/Filtersに よる多彩な設定 オーバーレイ ネットワーク × なし ○ L2レベルはオプション × なし、今後追加予定 サービス ディスカバリ ○ ELB連携 ○ *LB+kube-‐‑‒proxy △ EtcdによるKVSのみ マネージド マスター ○ ○ (ただしVMインスタン ス実⾏行行料料⾦金金がかかる) マネージドサービス なし

Slide 19

Slide 19 text

ECSの使いどころ •  AWS各コンポーネントとの連携 •  薄いエージェントに徹している印象、他の Docker関連プロダクトを追加しやすい –  参考:  https://github.com/aws/amazon-‐‑‒ecs-‐‑‒agent/issues/127 •  マネージドマスターに安⼼心感あり •  オーバーレイネットワークは、Dockerで ライブマイグレーションがサポートされたら 必要かも classmethod.jp 19

Slide 20

Slide 20 text

ECSの真のライバル •  Micro  Servicesを実現する新パターンは AWS  Lambda+Amazon  API  Gateway!! •  Lambdaはミリ秒単位で課⾦金金されるNode.js  /   JavaのContainer  as  a  Service •  API  Gatewayは、Lambdaへのリクエストを 待ち受けるAWSのinetd的なサービス •  ECS  Service(≒ELB)の⼿手前にAPI  Gateway を置くのもあり classmethod.jp 20 Client API  Gateway Lambda

Slide 21

Slide 21 text

ECSの真のライバル •  ECS  Service(≒ELB)の⼿手前にAPI  Gateway を置くのもあり •  API  Gatewayはなかなか曲者なので、皆さん がしがし触ってナレッジ共有しましょう! classmethod.jp 21 Client API  Gateway ECS  Service

Slide 22

Slide 22 text

まとめ •  デファクトスタンダードになりつつある Kubernetesの動きは注視するべき •  Lambda+API  Gatewayの動向にも注意 •  AWSの他サービス(IAMとか)との連携に期待 •  シンプルなECSは、不不⾜足している点を他のプ ロダクトと組み合わせて解決できるかも classmethod.jp 22