ecs words
TRANSCRIPT
ESCの用語uehara makoto
このスライドは個人の見解であり、所属する組織の公式見解ではありません
• タスク:インスタンス上で実行される実際の1つor複数種類のコンテナ(タスク
定義の実態)
• タスク定義:1種類以上のコンテナ環境定義(とボリューム設定)
• サービス:長時間実行用のコンテナ定義(指定したタスク数に実行状態を保つ)
(Task Definition,ELB,Auto Scaling,Task Count などの要素が入っています)
• クラスタ:タスクが実行されるEC2インスタンスの論理的グループ
• ECS エージェント:EC2インスタンスとマネージャの調整
• クラスタマネージャー:クラスタリソースとタスクの状態管理やスケジューリ
ング
• スケジューラー:タスクの状態を管理する
タスク2 タスク2タスク1
タスク
Container A Container C
タスク:インスタンス上で実行される実際のコンテナ(1つor複数)
Container B
Container C
Container B
タスク2 タスク2
タスク定義
タスク1
Container A
タスク定義:どのDocker Image?、どのくらいCPUやメモリの割り当て?Data Volumeを使うとか使わないとかを設定する(1つor複数のコンテナを生成)
タスク定義1 タスク定義2
Container C
Container B
Container C
Container B
タスク定義2
タスク定義1
サービス
タスク
Container A
サービス:指定したタスク数に実行状態を保つどのタスク定義?タスク数は?どのクラスタ?で継続的に実行するか、EC2へのタスク配置戦略は?タスクデプロイのやり方は?Autoscalingするか?、ELB使うか?を設定する
Container C
Container B
Container C
Container B
サービス1 サービス2
ECS
ALB
ALBはコンテナへのDynamic Port mapping
に役立つ
サービス
Container Aポート:3304
Container Aポート:3303
well knownじゃないポートを動的に付与
ECS
ALB
クラスタ:EC2群(Container Instance群)
クラスタ
Service Autoscaling(Container)ECS
ALB
Autoscaling(On demand Instance)
Autoscaling(Spot Fleet)
クラスタ
ECS
ALB
Cloud Watch Metrics
CPU ReservationMemory Reservation
CPU UtilizationMemory Utilization
…
クラスタ
参考http://www.allthingsdistributed.com/2015/07/under-the-hood-of-the-amazon-ec2-container-service.html
ECS
KVS Cluster Management Engine
APIAgent Communication Service
Task
ECS Agent
ECSのクラスタマネージャーから、ECSエージェントを介してDockerコマンドを発行、リソース状態の把握、EC2やコンテナの停止や起動などの管理操作を行う
Cluster
ECSエージェント
ECSエージェント
参考http://www.allthingsdistributed.com/2015/07/under-the-hood-of-the-amazon-ec2-container-service.html
クラスタマネージャー
ECS
KVS Cluster Management Engine
APIAgent Communication Service
Task
ECS Agent
Cluster
クラスタマネージャークラスタの状態をKVSに書き込むKVSの一貫性は楽観的同時実行制御による
参考http://www.allthingsdistributed.com/2015/07/under-the-hood-of-the-amazon-ec2-container-service.html
スケジューラー
ECSのAPIを介してKVSに問い合わせることで、外部スケジューラーを利用可能
Mesos,Blox
ECS
KVS Cluster Management Engine
APIAgent Communication Service
Task
ECS Agent
Cluster
スケジューラー
starttask