プライベートサブネットにおいて、AWS Fargate で Amazon Elastic Container Service (Amazon ECS) タスクを実行したいと考えています。
簡単な説明
プライベートサブネットで Fargate タスクを実行できます。ただし、ユースケースによっては、パブリックリポジトリからイメージをプルしたりなど、特定の操作にはインターネットアクセスが必要になる場合があります。または、タスクのためにインターネットアクセスを禁止したい場合があります。
インターネットにアクセスできないプライベートサブネットで Fargate タスクを実行するには、 VPC エンドポイントを使用します。VPC エンドポイントを使用すると、タスクにインターネットへのアクセスを許可せずに Fargate タスクを実行できます。必要なエンドポイントは、プライベート IP アドレスを介してアクセスされます。
プライベートサブネットからインターネットにアクセスするタスクが必要な場合は、NAT Gateway を使用してインターネットアクセスを許可します。必要なエンドポイントは、NAT ゲートウェイのパブリック IP アドレスを介してアクセスされます。
解決方法
VPC を作成する
パブリックサブネットまたはプライベートサブネットを使用して Amazon Virtual Private Cloud (Amazon VPC) を作成します。
次に、ユースケースに応じて、この記事の「インターネットアクセスなしでプライベートサブネットを使用する (VPC エンドポイント方式)」または「インターネットアクセスでプライベートサブネットを使用する」セクションのステップに従います。
インターネットにアクセスできないプライベートサブネットを使用する (VPC エンドポイント方式)
インターフェイスエンドポイントと S3 ゲートウェイを作成するには:
- S3 ゲートウェイエンドポイントを作成します。
- ECR インターフェイスエンドポイントを作成します。
- タスクで Secrets Manager を使用してシークレットをタスクと CloudWatch Logs に挿入する場合は、Secrets Manager と CloudWatch ログ のインターフェイスエンドポイントを作成します。
次に、この記事の「Amazon ECS クラスターとサービスの作成」セクションの手順に従います。
インターネットにアクセスできるプライベートサブネットを使用する
NAT ゲートウェイを作成します。
NAT ゲートウェイを作成するときは、次のことを確認してください。
- NAT ゲートウェイをパブリックサブネット内に配置します。
- プライベートサブネットのルートテーブルを更新します。[Destination] (送信先) には、0.0.0.0/0 を入力します。[Target] (ターゲット) で、NAT ゲートウェイの ID を選択します。
次に、この記事の「Amazon ECS クラスターとサービスの作成」セクションの手順に従います。
Amazon ECS クラスターおよびサービスを作成する
- ネットワーキング専用テンプレートを使用して Amazon ECS クラスターを作成します (Fargate を使用します)。
- Amazon ECS サービスを作成します。
サービスのネットワークを設定するときは、次のことを確認してください。
- クラスター VPC 用にステップ 1 で作成したクラスターを選択します。
- 前に選択した方法に基づいて、VPC エンドポイント用に設定したプライベートサブネット、または NAT ゲートウェイ用に設定したサブネットを選択します。
これで、新しいタスクがプライベートサブネットで起動します。