📚

ECSとはなんぞや

に公開

It業界の皆さんは普段の生活の中で、ECSという単語を耳にするのではないでしょうか?
今回はECSについて解説していきます。

ECSとは?

公式サイトによると、Amazon Elastic Container Service の略で、AWSが提供するコンテナ管理サービスのことです。
簡潔に言うと、ECSとは、アプリケーションを動かすための「コンテナ」を自動で効率的に管理してくれるサービスのことです。

ECSの構成要素

タスク定義

タスク定義は、ECSタスクを起動するための設定が書かれたテンプレートです。
コンテナイメージやECSタスクに割り当てるCPU・メモリなど、ECSタスクの詳細を決定する様々なパラメータが設定されます。

ECSタスク

ECSタスクとは、タスク定義に基づいて起動するコンテナの集まりを指します。
1つのECSタスクは、1つ以上のコンテナで構成されています。

ECSサービス

ECSサービスは、ECSタスクを一定数実行し続けるための管理単位です。
指定したタスク定義に基づいて、ECSタスクを自動的に作成・開始・停止することでアプリケーションの可用性を高めます。
ECSサービスは、ECSタスクのライフサイクル全体を管理しています。
ECSタスクが失敗・停止した場合、自動的に新しいECSタスクを起動することで指定したタスク数を維持します。
負荷分散のために Elastic Load Balancing(ELB)と連携することや、Auto Scalingと組み合わせることで、負荷に応じて自動でスケールイン・スケールアウトさせることも可能です。

クラスター

クラスターとは、サービスに基づいてタスクを実行するための、コンテナ実行基盤です。
クラスターを分けることで、本番環境や開発環境を論理的に分けることができます。

ECSの起動タイプ

ECSには、コンテナを動かすための環境として、3つの起動タイプを用います。

AWS Fargate

サーバーレス環境でコンテナを動かす起動タイプです。フルマネージドタイプのため、アップデートなどは自動で行ってくれるため、サーバーの管理を気にせずにコンテナの設定に集中できます。

EC2

EC2インスタンス上でコンテナが実行される起動タイプです。このタイプは、OSやミドルウェアなどのサーバー管理を行う必要がありますが、設定や運用の自由度が高いです。

ECS Anywhere

上記2つとは異なり、AWSのクラウド以外のオンプレミス環境でもコンテナを実行できる起動タイプです。これにより、自社のデータセンター内のリソースを利用してコンテナを管理できます。

ECSを使うメリット

コンテナの管理を効率化できる

コンテナが1つであれば我々が監視・運用可能ですが、コンテナが複数存在する場合にその全てを管理することは非常に大変です。ECSを使えば、複数のコンテナ管理が可能です。タスクのスケジューリングと管理を自動化できたり、スケールアップ・スケールダウンを自動で行ってくれたりしてくれます。

処理速度

ECSは少ないリソースや容量で稼働できるため、処理速度が高速になり、アプリケーションのパフォーマンス向上を実現できます。

環境移行を簡単に行える

ECSはコンテナをパッケージ化して管理するため、必要に応じて異なるサーバーへの移行が容易に行えます。コンテナごと移行できるため、リソース不足時の別サーバーへの移行も迅速に対応可能です。

Discussion