Amazon ECSについてまとめてみた
AWS初心者向けにAmazon ECSについて解説します!
Amazon ECSとは
ECSはElastic Container Serviceの略で、Dockerのコンテナを管理するサービスです。
コンテナはアプリとアプリの実行環境を1つの箱=コンテナにして動作させる技術のことで、このコンテナを使えばPCの環境が違っていたとしても、アプリを簡単に実行できます。
ECSはフルマネージドなので、AWS側がコンテナ管理の面倒なところを色々とやってくれます。
色々とカタカナが出てきたので整理すると、
コンテナ:
アプリケーションとその依存関係を一つのパッケージにまとめる技術です。コンテナは、アプリケーションを独立して実行するための環境を提供し、ホストOS(オペレーティングシステム)のリソースを共有します。コンテナは軽量で、柔軟性が高く、移植性に優れています。これにより、開発者はアプリケーションを異なる環境で迅速かつ容易にデプロイできます。
Docker:
コンテナ技術を実装し、管理するためのオープンソースプラットフォームです。Dockerは、アプリケーションの開発、配布、運用を効率化することができます。Dockerイメージと呼ばれるテンプレートを使用して、アプリケーションの実行環境を定義し、Dockerコンテナとしてパッケージ化します。これにより、アプリケーションはどの環境でも同じように実行できるようになります。
コンテナオーケストレーション:
複数のコンテナを管理・調整するプロセスです。オーケストレーションは、コンテナのデプロイ、スケーリング、ネットワーキング、および可用性の維持など、コンテナライフサイクル全体をカバーします。
ECSはコンテナは管理するサービスであり、実際にECSを動かす環境としてまた別のサービスを選択する必要があります。
選択肢としてはEC2と Fargateというのがあり、どちらもAWS上の仮想サーバーなのですが、これらの上でECSを動かします。
AWS Fargateとは
EC2と Fargateはどちらも選択できるのですが、FargateはAWSが保守とか管理とか代行してくれて手間が減るので、Fargateを選ぶとそこらへんが楽になります。(EC2はサーバー構築や保守・管理が面倒になりがち)
あとはECSを設定時に出てくる用語について、混乱の元になるので解説すると↓
タスク:
ECS内で実行されるDockerコンテナのインスタンスです。タスクは、タスク定義に基づいて作成・実行され、アプリケーションの実行に必要なリソースや設定が含まれています。
タスク定義:
タスク(コンテナ)を実行するための設計図です。タスク定義には、使用するDockerイメージ、CPUとメモリの割り当て、環境変数、ポートマッピング、ボリューム設定、IAMロールなどの情報が含まれています。タスク定義を作成・更新することで、タスクの挙動を制御できます。
サービス:
タスクを長期間実行するための管理単位です。サービスは、タスクのデプロイ、スケーリング、ロードバランシングを行い、タスクの実行状態を維持します。サービスは、特定のタスク定義を使用して作成され、指定された数のタスクが常に実行されるように保証します。また、サービスは、タスクが失敗した場合に自動的に再起動し、アプリケーションの可用性を向上させます。
クラスター:
タスクおよびサービスのリソースを管理する論理グループです。クラスター内で実行されるタスクは、EC2インスタンスやFargate(サーバーレスコンテナ)といった計算リソースを共有します。クラスターを使用することで、複数のアプリケーションやサービスのリソースを効率的に管理できます。
この記事が気に入ったらサポートをしてみませんか?