Fargate を使用した Amazon ECS の開始方法
Amazon Elastic Container Service (Amazon ECS) は、コンテナを簡単に実行、停止、管理できる非常にスケーラブルで高速なコンテナ管理サービスです。Amazon ECS 管理のサーバーレスインフラストラクチャにあるクラスターをホストするには、AWS Fargate でサービスやタスクを起動します。Amazon ECS の概要については、「Amazon Elastic Container Service とは」を参照してください。
タスクに Fargate 起動タイプを使用して、AWS Fargate で Amazon ECS を開始します。Amazon ECS が AWS Fargate をサポートするリージョンでは、Amazon ECS 初回実行ウィザードによって示されるプロセスに従って、Fargate 起動タイプを使用して Amazon ECS を開始できます。ウィザードはクラスター作成のオプションを提供し、サンプルのウェブアプリケーションを起動します。Amazon ECS で起動する Docker イメージがすでにある場合は、代わりにそのイメージを使用してタスク定義を作成し、クラスターで使用することもできます。
EC2 起動タイプを使用して Amazon ECS を開始する方法については、「Amazon EC2 を使用した Amazon ECS の開始方法」を参照してください。
Amazon ECS の使用を開始するには、AWS Fargate で以下の手順を実行します。
前提条件
開始する前に、Amazon ECS でのセットアップ のステップを完了したこと、および AWS ユーザーに AdministratorAccess
または Amazon ECS 初回実行ウィザードのアクセス許可 の IAM ポリシー例で指定されている必要なアクセス権限があることを確認します。
初回実行ウィザードは、Fargate タスクに必要なタスク実行 IAM ロールを自動的に作成しようとします。初回実行のエクスペリエンスがこの IAM ロールを作成できるようにするには、次のいずれかの条件を満たす必要があります。
-
ユーザーが管理者権限を持っていることが必要です。詳細については、「Amazon ECS でのセットアップ」を参照してください。
-
ユーザーがサービスロールを作成するための IAM 権限を持っていることが必要です。詳細については、「AWS サービスにアクセス許可を委任するロールの作成」を参照してください。
-
管理者権限を持つユーザーは、タスク実行ロールを手動で作成することにより、使用するアカウントで有効にできます。詳細については、「Amazon ECS タスク実行 IAM ロール」を参照してください。
ステップ 1: タスク定義を作成する
タスク定義はアプリケーションの設計図のようなものです。Amazon ECS でタスクを起動するたびに、タスク定義を指定します。サービスは、コンテナに使用する Docker イメージ、タスクで使用するコンテナの数、各コンテナのリソース割り当てを認識します。
-
Amazon ECS コンソールの初回実行ウィザード (https://console.aws.amazon.com/ecs/home#/firstRun
) を開きます。 -
ナビゲーションバーから、米国東部(バージニア北部) リージョンを選択します。
注記 この初回実行ウィザードは、Fargate を使用して Amazon ECS をサポートするすべてのリージョンでこれらの手順を使用して完了できます。詳細については、「AWS Fargate での Amazon ECS」を参照してください。
-
コンテナ定義パラメータを設定します。
[Container definition (コンテナの定義)] で、初回実行ウィザードがコンソールの
sample-app
、nginx
およびtomcat-webserver
のコンテナの定義とともに事前ロードされます。オプションで、コンテナの名前を変更するか、コンテナで使用されるリソース (CPU ユニットやメモリ制限) を確認して編集できます。そのためには、[Edit] を選択し、表示される値を編集します。詳細については、「コンテナ定義」を参照してください。注記 コンテナの定義に Amazon ECR イメージを使用している場合、Amazon ECR イメージには完全な
registry/repository:tag
名前付けを使用してください。たとえば、aws_account_id
.dkr.ecr.region
.amazonaws.com/
と指定します。my-web-app
:latest
-
[Task definition (タスク定義)] で、初回実行ウィザードが、事前ロードされたコンテナの定義とともに使用するタスク定義を定義します。オプションで、タスク定義を変更し、タスクで使用されるリソース ([Task memory] や [Task CPU] の値) を編集できます。そのためには、[Edit] を選択し、表示される値を編集します。詳細については、「タスク定義パラメータ」を参照してください。
初回実行ウィザードで作成されるタスク定義は、単純化のために単一コンテナに限定されています。後で Amazon ECS コンソールで複数コンテナタスク定義を作成できます。
-
[次] を選択します。
ステップ 2: サービスを設定する
ウィザードのこのセクションでは、タスク定義から作成された Amazon ECS サービスを設定する方法を選択します。サービスはクラスターのタスク定義のコピーを指定数分起動し、維持します。[Amazon ECS サンプル] アプリケーションは、ウェブベースの Hello World– スタイルのアプリケーションで、無限に実行されます。これをサービスとして実行すると、タスクに異常があったり予期せずに停止した場合は再起動します。
初回実行ウィザードがサービス定義とともに事前ロードされ、コンソールに定義された sample-app-service
サービスが表示されます。オプションで、サービスの名前を変更するか、詳細を確認して編集できます。そのためには、[Edit] を選択し、次の手順を実行します。
-
[Service name] フィールドで、サービスの名前を選択します。
-
[Number of desired tasks (必要なタスクの数)] フィールドに、指定したタスク定義で起動するタスクの数を入力します。
-
[セキュリティグループ] フィールドで、許可するインバウンドトラフィックの IPv4 アドレスの範囲を、CIDR ブロック表記で指定します。たとえば、
203.0.113.0/24
と指定します。 -
(オプション) サービスで Application Load Balancer を使用するように選択できます。ロードバランサーを使用するように設定されたサービスからタスクを起動すると、タスクがロードバランサーに登録されます。ロードバランサーからのトラフィックがロードバランサー内のインスタンス間で分散されます。詳細については、「Application Load Balancer の概要」を参照してください。
重要 Application Load Balancer が AWS リソースに存在する間、コストが発生します。詳細については、「Application Load Balancer 料金表
」を参照してください。 次のステップを完了して、サービスでロードバランサーを使用します。
-
[Container to load balance (負荷分散用のコンテナ)] セクションで、[Load balancer listener port (ロードバランサーリスナーポート)] を選択します。ここでのデフォルト値は、サンプルアプリケーション用にセットアップされていますが、ロードバランサー用に異なるリスナーオプションを設定できます。詳細については、「サービスの負荷分散」を参照してください。
-
-
サービスの設定を確認し、[Save]、[Next] の順にクリックします。
ステップ 3: クラスターを設定する
ウィザードのこのセクションでは、クラスターに名前を付けます。それにより、Amazon ECS がネットワークおよび IAM 設定を自動的に行います。
-
[Cluster name] フィールドで、クラスターの名前を選択します。
-
[Next] をクリックして次に進みます。
ステップ 4: 確認
-
タスク定義、タスク設定、およびクラスター設定を確認して、[作成] をクリックすると完了です。[作成ステータス] ページに進みます。このページでは、起動ステータスが示されます。プロセスの各ステップについて説明します (Auto Scaling グループの作成および入力が完了するまでには数分かかることがあります)。
-
起動が完了したら、[View service (サービスの表示)] を選択します。
ステップ 5: サービスを表示する
サービスがウェブベースのアプリケーションである場合 (Amazon ECS サンプル アプリケーションなど)、ウェブブラウザでそのコンテナを表示できます。
-
[Service:
service-name
] ページで、[Tasks] タブを選択します。 -
サービスで、タスクの一覧からタスクを選択します。
-
[Network] セクションで、タスクの [ENI Id] を選択します。Amazon EC2 コンソールに移動し、[IPv4 パブリック IP] アドレスを含む、タスクに関連付けられたネットワークインターフェイスの詳細を表示できます。
-
ウェブブラウザに [IPv4 パブリック IP] アドレスを入力すると、[Amazon ECS サンプル] アプリケーションを表示するウェブページが表示されます。
ステップ 6: クリーンアップ
Amazon ECS クラスターの使用が終了したら、使用していないリソースに対する料金が発生しないように、それに関連付けられたリソースをクリーンアップする必要があります。
タスク、サービス、クラスター、コンテナインスタンスなど、一部の Amazon ECS リソースは、Amazon ECS コンソールを使用してクリーンアップします。Amazon EC2 インスタンス、Elastic Load Balancing ロードバランサー、Auto Scaling グループなど他のリソースは、Amazon EC2 コンソールで手動でクリーンアップするか、それを作成した AWS CloudFormation スタックを削除することでクリーンアップする必要があります。
-
Amazon ECS コンソール (https://console.aws.amazon.com/ecs
) を開きます。 -
ナビゲーションペインで [クラスター] を選択します。
-
[Clusters] ページで、削除するクラスターを選択します。
-
[Delete Cluster] を選択します。確認プロンプトで、[delete me (削除)] と入力し、 [Delete (削除)]を選択します。クラスターを削除すると、クラスターで作成された関連リソース Auto Scaling グループ、VPC、ロードバランサーなどがクリーンアップされます。