AWS Fargate で Linux コンテナを使用したクラシックコンソールの開始方法
Amazon Elastic Container Service (Amazon ECS) は、非常にスケーラブルで高速なコンテナ管理サービスで、クラスターでコンテナの実行、停止、管理を簡単に行うことができます。AWS Fargate でサービスやタスクを起動して、Amazon ECS 管理のサーバーレスインフラストラクチャにあるコンテナをホストすることができます。Amazon ECS Fargateでの広範囲な 概要については、Amazon Elastic Container Service とはを参照してください。
タスクに Fargate 起動タイプを使用して、AWS Fargate で Amazon ECS を開始します。Amazon ECS が AWS Fargateをサポートするリージョンでは、クラシック Amazon ECS の初回実行ウィザードは、Fargate 起動タイプ使用してAmazon ECSを開始するプロセスをガイドします。ウィザードはクラスター作成のオプションを提供し、サンプルのウェブアプリケーションを起動します。Amazon ECS で起動する Docker イメージがすでにある場合は、代わりにそのイメージを使用してタスク定義を作成し、クラスターに使用することもできます。
Amazon EC2 を使用した Amazon ECS の開始方法については、「Amazon EC2 を使用してクラシックコンソールで開始する」を参照してください。
AWS Fargateで Amazon ECSの使用を開始するには、以下のステップを完了します。
前提条件
開始する前に、Amazon ECS を使用するようにセットアップする のステップを完了したこと、および AWS ユーザーに AdministratorAccess
または Amazon ECS 初回実行ウィザードのアクセス許可 の IAM ポリシー例で指定されている必要なアクセス権限があることを確認します。
初回実行ウィザードは、Fargate タスクに必要なタスク実行 IAM ロールを自動的に作成しようとします。初回実行のエクスペリエンスがこの IAM ロールを作成できるようにするには、次のいずれかがtrueである必要があります。
-
ユーザーが管理者権限を持っていることが必要です。詳細については、「Amazon ECS を使用するようにセットアップする」を参照してください。
-
ユーザーがサービスロールを作成するための IAM 権限を持っていることが必要です。詳細については、「AWS サービスにアクセス許可を委任するロールの作成」を参照してください。
-
管理者権限を持つユーザーは、タスク実行ロールを手動で作成することにより、使用するアカウントで有効にできます。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。
ステップ 1: タスク定義を作成する
タスク定義はアプリケーションの設計図のようなものです。Amazon ECS でタスクを起動するたびに、タスク定義を指定します。サービスは、コンテナに使用する Docker イメージ、タスクで使用するコンテナの数、各コンテナのリソース割り当てを認識します。
-
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] (タスク CPU) の値) を編集できます。そのためには、[Edit] (編集) を選択し、表示される値を編集します。詳細については、「タスク定義パラメータ」を参照してください。
初回実行ウィザードで作成されるタスク定義は、単純化のために単一コンテナに限定されています。後で Amazon ECS コンソールで、後で複数コンテナタスク定義を作成できます。
-
[Next] を選択します。
ステップ 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 Balancers が 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 sample] (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] (クラスター) を選択します。
-
[Clusters] (クラスター) ページで、削除するクラスターを選択します。
-
[Delete Cluster] を選択します。確認プロンプトで、[delete me (削除)] と入力し、 [Delete (削除)]を選択します。クラスターを削除すると、Auto Scaling グループ、VPC、ロードバランサーなどを含むクラスターで作成された関連リソースがクリーンアップされます。