AWS入門ブログリレー2024〜 Amazon ECS 編〜

Amazon ECS について 2024 年時点の情報をまとめてみました。AWS サービス入門記事として是非ご活用下さい。
2024.05.25

こんにちは。AWS事業本部コンサルティング部に所属している和田響です。

当エントリは弊社 AWS 事業本部による『AWS 入門ブログリレー 2024』の 52日目のエントリです。

このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。

AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や 2024 年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。

Amazon ECSとは

Amazon ECSとはAmazon Elastic Container Serviceの略で、AWSが提供するフルマネージドなコンテナオーケストレーターです。アプリケーションをコンテナ化して、簡単に管理・運用できるようにしてくれるサービスです。コンテナの起動、スケーリング、ロードバランシングなどの機能を提供します。

コンテナとは

コンテナとは簡単にいうと、「アプリケーションとそのすべての依存関係をまとめたパッケージ」のことです。
アプリケーションとその依存関係を一つのパッケージにまとめることで、一貫した実行環境を提供することで異なる環境間での動作のばらつきをなくし、開発から本番環境までスムーズに移行できます。また軽量で迅速な起動や、効率的なリソースの使用など、仮想マシンよりもリソース効率が高いのが特徴です。
これを可能にする代表的なプラットフォームがDockerです。

コンテナの理解には以下の記事がわかりやすくまとまっているのでおすすめです!

コンテナオーケストレーターとは

コンテナオーケストレーターとはコンテナ化されたアプリケーションの管理と調整を行うツールやシステムのことです。
コンテナオーケストレーターがない場合は、コンテナのデプロイやスケーリングなどを全て手動で行う必要があります。1つの環境であればどうにかなるかもしれませんが、管理するコンテナの数が増えれば増えるほど管理コストが膨らみます。
コンテナオーケストレーターを使うことでデプロイやスケーリングを自動化でき、コンテナの管理を効率化することができます。
AWSにおけるコンテナオーケストレーターの一つがAmazon ECSです。

コンテナオーケストレーターがない場合

管理対象が一つであればなんとかなりそうだが、、、

管理対象が複数になると大変そう。。。

コンテナオーケストレーターがある場合

コンテナオーケストレーター(ECS)があることで複数のコンテナを効率よく管理できる。

データプレーンとコントロールプレーン

コンテナ環境はコントロールプレーンとデータプレーンに分けて考えることができます。

データプレーンは実際にコンテナを実行する環境を指します。ECSでのデータプレーンはEC2、Fargate、オンプレミス(ECS Anywhere)から選択できます。

コントロールプレーンとはスケジューリングや状態管理を行う部分を指します。ECSではクラスター、サービス、タスク、タスク定義といった概念で、「どのイメージを使ってどこにいくつコンテナを立てるか」を管理することができます。

Amazon ECSの基本概念

前述の通りECSはクラスター、サービス、タスク、タスク定義といった4つの概念で構成されています。

タスク定義


タスク定義とは、タスクのテンプレート(設計書のようなもの)でJSON形式で記載されます。
使用するイメージ、CPUやメモリ量、タスクに割り当てるIAMロールなどのタスクの設定を定義します。

タスク


タスクとは、タスク定義に基づいて起動されるコンテナ群です。
タスク内のコンテナは同⼀ホスト上で実⾏されます。

サービス


サービスとは、タスクのスケーリング、ロードバランシング、および高可用性を実現するための構成要素です。
タスクの実行数、維持数、起動タイプ(EC2、Fargate) などを指定できます。またElastic Load Balancing (ELB) との連携も行うことができます。

クラスター


クラスターとは、コンテナの実行環境をまとめた論理的なグループです。
異なる環境(開発、ステージング、本番)や異なるプロジェクトごとにクラスターを分離することでリソースの管理の簡素化だけでなく、セキュリティの向上が見込めます。

ハンズオン

こちらのブログで紹介しているハンズを行うことでAmazon ECSを使ったコンテナ開発の概要が理解できます。まだAmazon ECSを使ったことがないけど興味があるという方はぜひ受講してみてください!(無料です)

最後に

以上、『AWS 入門ブログリレー 2024』の52日目のエントリ『Amazon ECS』編でした。 次回、5/27は弊社たかくにによる『Guardrails for Amazon Bedrock』編の予定です!

参考