ECS
https://gyazo.com/092e1decf9b479e88d4ada72f6003f28
Elastic Container Service
AWSが提供するfull managed Container Orchestration Tool
主にDocker Containerが対象
aws
ハンズオン
データプレーンは以下のいずれか
EC2
自分で管理する必要があるが柔軟
AWS Fargate
管理が不要だが若干コスト高い
ECS on EC2かECS on Fargateか
ECSを使わずにEC2で運用するのとどう違うか?
Dockerを使わなかった場合
手動か何かでEC2上に環境を構築することになる
JSなら例えばnodejsやpm2入れたりする
環境構築の一貫性や依存関係の管理に手間がかかる
Dockerを使った場合
コンテナの運用ができるが、Docker自体をEC2に入れる必要がある
更に、コンテナが複数ある場合にどう管理するねんというところもある
#WIP
構成要素
https://gyazo.com/76617e4be4dd757c46c39d17a4526f0f
ECSのクラスタ
ただの箱、グループ
EC2やFargateで実行されるコンテナの論理的な集合体
code:tf
resource "aws_ecs_cluster" "example" {
name = "example-cluster"
}
ECSのタスク
アプリケーションの実行単位
1つ以上のコンテナから構成される
ECSのタスク定義のinstanceみたいなもん
ECSのタスク定義
ECSのサービス
ネットワークモード
awsvpcモード
fargateはこれのみ
bridgeモード
hostモード
noneモード