AWSの提供するECS(Amazon ECS)とは?概要からコンテナの管理まで解説!
thumb_awsecs_01
AWSの提供するECS(Amazon ECS)とは?概要からコンテナの管理まで解説!
アンドエンジニア編集部
2024.02.14
この記事でわかること
AWSのECSとは、コンテナ化したワークロードを扱うクラウドサービスを指します
信頼性と拡張性を重視したクラウドサービスで、Dockerコンテナを実行・管理します
サーバーレスにも対応し、コストの最適化を図るとともに短期間で最適なサービス実行が可能です

AWSのECSとは

img_awsecs_01

AWSのECSとは、正式にはAmazon Elastic Container Service(Amazon ECS)というAWSのフルマネージド・クラウドサービスの1つです。ECSは、コンテナ化したワークロードを扱うサービスで、全体の多くのコンテナを効率的に管理・運用することができます。

【参考】:Amazon Elastic Container Service 【参考】:Amazon Elastic Container Service とは

Amazon ECSの全体イメージ

ECSは、コンテナオーケストレーションのサービス、つまりコントロールプレーンの機能を提供します。継続的なデリバリー/インテグレーション(CI/CD)で必要な開発・テスト・インテグレーション・デプロイのサイクルを最適化し、AWSのリソースを有効利用して時間とコストを最適化します。

ECSの全体イメージ図は次の通りです。ECSはクラスター単位で管理されており、実行するコンテナはレジストリからロードします。各コンテナにはECSエージェントが稼働しており、タスクのスケジュールの指示にしたがって登録されたタスクを実行します。

img_awsecs_02
 【図】:ECSの全体イメージ図

Amazon ECSの特徴

Amazon ECSの特徴は、いくつか挙げられます。

1つ目は、AWSのマネジメントコンソールやECSコンソール、AWS CLIなどの標準インターフェースから操作できることです。他のAWSとのサービスを使用しながらコンテナを活用することができます。

2つ目は、リソースのスケーリング管理が充実していることが挙げられます。サーバーレスオプションとしてAWS Fargateが提供されており、ワークロード管理をリソースの使用状況や可用性の要件に基づいてスケーリングし、全体最適化を進めることができます。

3つ目は、コンテナ管理で重視するデプロイパイプラインを作成し、モニターすることで自動化されたフルマネージドのオーケストレーション環境を作成できることです。管理の工数を削減し、効率的な業務運用に役立てることができます。

【参考】:AWS Fargate

コンテナのメリット

コンテナは仮想マシンと異なり、システムリソースを十分にアプリに割り当てることができます。開発サイクルの短期化に対応でき、生産性向上により運用の工数を削減し、コスト削減にも貢献できます。加えて、コンテナベースの商用環境と同等の構成を開発から使用できるので、本番トラブルの削減にも繋がります。

Amazon ECSはフルマネージドクラウドサービスのため、新たなインフラのセットアップやコンテナ・クラスター管理ソフトウェアを導入せずに、すぐにサービスを開始できるメリットがあります。Dockerのスケジューリングやスケールアップ・スケールダウンも容易です。

AWSのコンテナについて初心者にも分かりやすく解説!

コンテナのデメリット

仮想マシンはOSの仮想化を含んでいますが、コンテナは最低限のコードのみで実装されており、軽量でかつ最大限リソースを活用できます。その反面、使用するOSとの依存性が高くなり、OS環境が異なる場合に動作確認を要することがあります。

同様に、OSの機能を使うことにより、追加のセキュリティ対策が必要となります。

Amazon ECSでも、同様の考慮が求められます。対策として効率的な統合管理を可能にするためにDockerをサポートし、Docker Compose CLIを用いた統合管理も可能です。セキュリティ、ID、管理、ガバナンスのツールが統合されており、強固なセキュリティ対策を設けることができます。

Amazon ECSの料金

Amazon ECSは追加料金はかかりません。実際に使用するAmazon EC2のインスタンスやEBSボリュームなどに対してのみ、料金が発生します。料金モデルは、「AWS Fargate 起動タイプモデル」「Amazon EC2 起動タイプモデル」「Amazon ECS on AWS Outposts」があります。

【参考】:Amazon Elastic Container Service の料金

AWS Amazon EC2のインスタンスとは?インスタンスの起動・確認方法を合わせて解説!

Amazon ECSの始め方

img_awsecs_03

ここではAmazon ECSを使用するにあたって必要な、セットアップなどの作業や手順を解説していきます。また、関連するリソースの選び方や運用上有効なポイントなどについては「Amazon ECS のベストプラクティスガイド」にまとめられています。詳細は、以下のガイドをご確認ください。

【参考】:Amazon Elastic Container Service の開始方法 【参考】:Amazon ECS の開始方法 【参考】:Amazon ECS のベストプラクティスガイド

Amazon ECSのセットアップ

Amazon ECSを使用するために、事前セットアップを行います。すでにAmazon Elastic Compute Cloud (Amazon EC2)をお使いのユーザーは、ここでの手順は不要です。

具体的には、「AWSアカウントのサインアップ」「管理ユーザーの作成」などです。使用するには、「インスタンス接続の認証情報の作成」や「仮想プライベートクラウドの作成」を行います。すでにAmazon EC2をご利用されている場合は、追加設定せずに使用することができます。

「AWSアカウントのサインアップ」がまだの方は、次の図のようにAWSのウェブ画面右上の「今すぐ無料サインアップ」をクリックして手続きをしてください(①)。完了すると「コンソールにサインイン」が表示されます(②)。

サインアップ登録後に表示される「AWSマネジメントコンソールにお進みください」からも、利用することができます(③)。

img_awsecs_04
 【図】:AWSアカウントのサインアップ

【参考】:Amazon ECS を使用するようにセットアップする

【AWS入門】ITエンジニアなら知っておくべきAWSの基礎知識

Amazon ECSのコンソールを使う

Amazon ECSは、他のAWSサービス同様にコンソールやCLIから操作します。

次の図の通りAWSのウェブ画面右上の、「コンソールにサインイン」あるいは「アカウント」「AWSマネジメントコンソール」をクリックすると、コンソールのホーム画面が表示されます(①②③)。

img_awsecs_05
 【図】:AWSマネジメントコンソールの表示

表示されたコンソールから、コンテナの起動や停止、管理を行います。起動タイプを選択して Amazon ECSのクラスター環境を構築します。Dockerのコンテナとイメージを用意し、タスクを設定することで起動する準備が整います。

【参考】:Amazon EC2 によるコンソールの使用開始 【参考】:Amazon ECS コンポーネント

AWSマネジメントコンソールとは?機能やCLIとの違いを解説

コンテナイメージを作成する

Amazon ECSで使用するコンテナは、Dockerイメージを用いて配布します。配布で使用するレジストリは、次の図の表示されている「Amazon ECR(Elastic Container Registry)」または「Docker Hub」を用います(①②)。

img_awsecs_06
 【図】:配布で使用するレジストリ

レジストリに登録(プッシュ)するイメージは、Dockerfileを作成したのちに”docker build”コマンドでDockerイメージを生成して、利用します。Dockerイメージの生成の手順は、通常のDockerと違いがありません。

【参考】:Amazon ECS で使用するコンテナイメージの作成 【参考】:Amazon Elastic Container Registry

Amazon ECSのコンソールを使ってクラスターを作成する

Amazon ECSのコンソールから最初に行うことはクラスターを作成することです。次の図をご確認ください。

ECSは、「サービス」「コンテナ」から「Elastic Container Service」を選択します(①②)。1度アクセスすると、トップ画面に「最近アクセスしたサービス」が表示されます。この表示リストから選択することもできます(③)。

img_awsecs_07
 【図】:ECSのコンソールを表示する

クラスターの作成は、初期状態では次の図のように「今すぐ始める」をクリックして作成できます(①)。もしくはサイドメニューの「クラスター」をクリックして、クラスター画面を表示します(②③)。

img_awsecs_08
 【図】:ECSクラスターの画面表示

実際の作成は、次の図をご覧ください。「クラスター」「クラスターの作成」から、「クラスター名」を設定し、VPCやサブネットを選択します(①②)。使用するコンピュートリソースであるコンテナ実行環境(データプレーン)は、サーバーレスのAWS Fargate、Amazon EC2インスタンス、ECS Anywareから選びます。

img_awsecs_09
 【図】:ECSクラスターの作成

「作成」をクリックし、正常のクラスター作成が完了すると、クラスター画面に作成したクラスターが表示されます(③④)。登録後には、タスク、サービス、キャパシティがクラスターとして管理されます。

【参考】:AWS Fargate の Linux コンテナによるコンソールの使用開始 【参考】:AWS Fargate の Windows コンテナによるコンソールの使用開始 【参考】:コンソールを使用した Amazon EC2 起動タイプ用のクラスターの作成

Amazon ECSで Dockerコンテナを起動する

Amazon ECSでDockerコンテナを起動するには、タスクを実行します。そのため実行するタスク定義があらかじめ必要です。タスクの定義もAmazon ECSのコンソールやCLIから作業します。

タスク定義は次の図のように、「タスク定義」「新しいタスク定義の作成」から作成方法を指定して進めていきます(①②③)。

img_awsecs_10
 【図】:タスク定義の作成

設定時には、使用するDockerイメージを指定し、各コンテナの CPUとメモリサイズを決定します。タスクの動作については、開始時の実行コマンド、ログの設定、コンテナが終了または失敗した場合の動作などを指定します。

タスク定義の作成が完了したら、登録クラスターからタスクを選択して「タスクの実行」で実行することができます。

詳細につきましては、以下のドキュメントをご確認ください。

【参考】:Amazon ECSの タスク定義 【参考】:Amazon ECS コンソールを使用したスタンドアロンタスクの実行 【参考】:Docker: Deploying Docker containers on ECS

エンジニア初心者でも分かる!Dockerコンテナの超入門!

AWSの入門ハンズオンを活用する

AWSでは、初心者向けのわかりやすい解説情報として動画を用いた「AWS Hands-on for Beginners」を実施してます。ここでは「Amazon ECS 入門ハンズオン」も公開しています。コンテナ初心者向けに、実際の操作を学ぶことができます。

「AWS クラウドサービス活用資料集」「AWS サービス別資料」に過去のドキュメントや動画などの情報も掲載されています。合わせてご確認ください。

【参考】:AWS Hands-on for Beginners: Amazon ECS 入門 【参考】:Amazon Elastic Container Service 入門ハンズオンを公開しました! 【参考】:AWS 初心者向けハンズオン 【参考】:AWS クラウドサービス活用資料集 【参考】:AWS サービス別資料

AWSのECSでコンテナを活用しましょう

img_awsecs_11

AWSのECSは、信頼性と拡張性を重視したクラウドサービスであり、多様化するワークロードに対応します。柔軟な自動スケーリングによりコストの最適化を図ることができます。

継続的なデリバリー/インテグレーション(CI/CD)のサイクルを最適化し、短期間で最適な業務サービスが提供できるようになります。

ビジネスの多様化と変化が激しい今日のソリューションとして、AWSのECSはおすすめのサービスと言えます。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT