【アマゾンイーシーエス】

Amazon ECS とは?

最終更新:
💡 AWSでコンテナを動かすなら、まずはここから

AWSが提供するフルマネージドのコンテナオーケストレーションサービス。コンテナ化したアプリのデプロイ・管理・スケーリングを行い、Fargateと組み合わせるとサーバーを自分で管理せずにコンテナを動かせる。

📌 このページのポイント
ECS の階層構成 Cluster(クラスター) Service A(Webアプリ) Task nginx app Task nginx app Fargate EC2 ↑ 起動タイプ選択 Service B(APIサーバー) Task api-server Task api-server ALB でトラフィック分散 ↑ ロードバランサー連携 タスク定義 → タスク → サービス → クラスターの階層構造
ECS の Task / Service / Cluster の階層構成
ひよこ ひよこ
ECSって何をしてくれるサービスなの?
ペンギン先生 ペンギン先生
コンテナ化したアプリを、AWS上でデプロイ・管理・スケールするためのサービスだよ。たとえば「このコンテナを3つ動かし続けて」と設定しておくと、1つが失敗したり止まったりしたときに、代わりを起動して数を保ってくれるんだ。
ひよこ ひよこ
タスクとかサービスとかよく聞くけど、何が違うの?
ペンギン先生 ペンギン先生
タスク定義は「アプリの設計図」、タスクはその設計図から起動した実行単位だよ。サービスは、タスクを指定した数だけ動かし続ける仕組みで、長く動かし続けるアプリに使う。そしてクラスターは、それらが動く基盤なんだ。バッチ処理のように「仕事をして終わる」ものは、サービスにせずタスクとして実行することもできるよ。
ひよこ ひよこ
Fargateって何?
ペンギン先生 ペンギン先生
コンテナを動かす場所には選択肢があって、1つは自分でEC2インスタンスを用意する方法。もう1つがFargateで、こちらはサーバーレスな実行環境なんだ。サーバーの管理や容量の計画をしなくてよく、使った分だけ支払う形だよ。
ひよこ ひよこ
Kubernetesとはどう違うの?
ペンギン先生 ペンギン先生
Kubernetesはオープンソースのコンテナ管理基盤で、AWS以外でも動かせる。ECSはAWSのサービスで、コンテナイメージの保管(ECR)、監視(CloudWatch)、ロードバランサーといったAWSのサービスと組み合わせて使うように作られているんだ。AWSでKubernetesを使いたい場合は、EKSという別のサービスがあるよ。
ひよこ ひよこ
どういうときにECSを選ぶのがいいの?
ペンギン先生 ペンギン先生
AWSを中心に使っていて、コントロールプレーン(管理側の仕組み)を自分で運用したくない、という場面に合うよ。ECSの公式ドキュメントも、コントロールプレーンを管理する複雑さなしにコンテナを動かせる点を特徴に挙げている。逆に、Kubernetes向けのツールをそのまま使いたいならEKSが候補になるね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ECS」って出てきたら「AWSのコンテナ管理サービス」と思えればだいたいOK!
📖 おまけ:英語の意味
「Elastic Container Service」 = 伸縮自在なコンテナサービス
💬 Elasticは「伸縮する・弾力のある」という意味の英語だよ。正式名称は Amazon Elastic Container Service なんだ

参考資料

← 用語集にもどる