ECS (Fargate) の詳細構築ガイド

この記事はで読むことができます。

このガイドでは、Amazon ECS (Elastic Container Service) with Fargateを使用してコンテナ化されたアプリケーションを構築・デプロイする詳細な手順を説明します。

1. 前提条件

  • AWSアカウントを持っていること
  • AWS CLIがインストールされ、設定されていること
  • Dockerがインストールされていること

2. Dockerイメージの作成とプッシュ

まず、アプリケーションのDockerイメージを作成し、Amazon Elastic Container Registry (ECR) にプッシュします。

2.1 ECRリポジトリの作成

  1. AWSマネジメントコンソールにログインし、ECRサービスに移動します。
  2. 「リポジトリの作成」をクリックします。
  3. リポジトリ名を入力し、「作成」をクリックします。

2.2 Dockerイメージのビルドとプッシュ

ターミナルで以下のコマンドを実行します。

bash
# AWSにログイン
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
# Dockerイメージのビルド
docker build -t my-app .
# イメージにタグを付ける
docker tag my-app:latest aws_account_id.dkr.ecr.region.amazonaws.com/my-app:latest
# イメージをプッシュ
docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-app:latest

3. ECSクラスターの作成

  1. ECSダッシュボードに移動し、「クラスターの作成」をクリックします。
  2. クラスター名を入力し、「ネットワーキングのみ」テンプレートを選択します。
  3. 「作成」をクリックします。

4. タスク定義の作成

  1. ECSダッシュボードで「タスク定義」→「新しいタスク定義の作成」をクリックします。
  2. 「Fargate」を選択します。
  3. タスク定義名を入力します。
  4. タスクロールとタスク実行ロールを選択または作成します。
  5. タスクメモリとCPUを選択します。
  6. 「コンテナの追加」をクリックし、以下の情報を入力します:
  • コンテナ名
  • イメージ(ECRのイメージURI)
  • ポートマッピング
  1. 「作成」をクリックします。

5. サービスの作成

  1. 作成したクラスターを選択し、「サービス」タブをクリックします。
  2. 「作成」をクリックします。
  3. 以下の情報を設定します:
  • 起動タイプ:FARGATE
  • タスク定義:先ほど作成したもの
  • サービス名
  • タスクの数
  1. VPCとサブネットを選択します。
  2. セキュリティグループを設定します。
  3. ロードバランサーの設定(必要な場合)を行います。
  4. Auto Scalingの設定(オプション)を行います。
  5. 「次のステップ」をクリックし、設定を確認後、「サービスの作成」をクリックします。

6. タスクの実行状況の確認

  1. ECSダッシュボードでクラスターを選択します。
  2. 「タスク」タブをクリックし、実行中のタスクを確認します。
  3. タスクの詳細を見るには、タスクIDをクリックします。

7. アプリケーションへのアクセス

  1. タスクの詳細画面で「ネットワーク」セクションを確認します。
  2. 「パブリックIP」または「プライベートIP」(VPC内からアクセスする場合)を使用してアプリケーションにアクセスします。

8. モニタリングとログの確認

  1. CloudWatchダッシュボードに移動します。
  2. 「ログ」→「ロググループ」で、ECSタスクのログを確認できます。
  3. 「メトリクス」セクションでECSのメトリクスを確認できます。

9. スケーリングの設定(オプション)

  1. ECSサービスの「更新」をクリックします。
  2. 「Auto Scaling」タブで、サービスのAuto Scalingを設定できます。
  3. CPU使用率やメモリ使用率に基づいてスケーリングルールを設定します。

10. クリーンアップ

作業が終わったら、不要なリソースを削除してコストを抑えましょう:

  1. ECSサービスを削除
  2. タスク定義を削除
  3. ECRリポジトリを削除
  4. CloudWatchロググループを削除

以上の手順で、ECS (Fargate) を使用してコンテナ化されたアプリケーションを構築・デプロイすることができます。各ステップを注意深く実行し、必要に応じてAWSのドキュメントを参照してください。