本章ではコンテナ化したアプリを実行するサービスAWS ECS上でAWS Fargateを実行します。
Fargateには以下の特徴があります。
Fargate用のDockerコンテナを作成します。
1. 空のディレクトリを用意し、用意した3つのファイルを配置します。
2. 『〔手順1-1〕 Dockerコンテナの作成』の「2.」~「5.」までと同じ手順で[entrypoint.sh]、[Dockerfile]を準備し、同一フォルダに配置します。
3. 『〔手順1-1〕 Dockerコンテナの作成』の「4.」と同じ手順でDockerコンテナをビルドします。
このとき、以下の変更点があります。
docker buildx build -t fargate-toolapi-test .
AWS ECR上にリポジトリを作り、今回の処理のコンテナをpushします。
1. AWS CLI経由でAWSにログインします。
コマンド実行後にブラウザが開きますので、ログインを完了させてください。
aws login
[注意]
ログイン時、新しいプロファイルであるかAWS リージョンが指定されていない場合、AWS CLIはリージョン指定を求めます。利用したい地域のリージョンを指定してください。
リージョンが「ap-northeast-1(東京)」の場合の入力例:
AWS Region [ap-northeast-1]:
2. Amazon ECRレジストリに対してDockerクライアントの認証を通します。
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
3. AWS ECR上で、名前を指定してリポジトリを作成します。
aws ecr create-repository --repository-name fargate-toolapi-test-repo --region <region>
4. ローカルでビルドしたイメージに、「3.」で作成したリポジトリ名のタグを付与します。
docker tag fargate-toolapi-test <aws_account_id>.dkr.ecr.<region>.amazonaws.com/fargate-toolapi-test-repo
5. タグ付けしたイメージをpushします。
docker push <aws_account_id>.dkr.ecr.<region>.amazonaws.com/fargate-toolapi-test-repo
これでAWS上でコンテナが呼び出せるようになりました。
AWS ECRにあるコンテナイメージをAWS Fargate上で実行します。
1. 以下のURLからAWS ECSのコンソールを開きます。
https://console.aws.amazon.com/ecs/v2
2. コンソール上のナビゲーションバーから、リージョンを選択します。
『〔手順2-2〕 AWS ECR上へコンテナをpushする』で選択したリージョンを指定してください。

3. 画面左のナビゲーションペインから「クラスター」を選択します。
4. 画面左上にある「クラスターの作成」を選択します。

5. クラスター名を設定します。(本例ではfargate-toolapi-cluster)
6. 「インフラストラクチャ」を「Fargateのみ」に設定します。
7. 「作成」ボタンをクリックします。

8. 画面左のナビゲーションペインから「タスク定義」を選択します。
9. 画面左上にある「新しいタスク定義の作成」を選択し、その中の「新しいタスク定義の作成」を選択します。

10. 以下の値を設定し、入力後に「作成」を選択します。
なお、以下の値は実行するコンテナの内容に合わせて変更が必要な場合があります。
ただし、『〔手順2-2〕 AWS ECR上へコンテナをpushする』で作成したコンテナと同一であれば変更せずとも動作可能です。
11.「クラスター」画面に戻って作成したクラスター「fargate-toolapi-cluseter」を開き、「タスク」タブを選択します。その後、「新しいタスクの実行」を選択します。

12. 以下の設定でタスクを作成します。
13. Fargate上でタスクが実行されます。「タスク」タブに実行中のタスクが表示されます。選択することでタスクの実行内容が確認できます。

14. タスクを選択後、「ログ」タブから実行ログを確認できます。
