aws

【B-27】ECS Fargate

ECS Fargateを利用して簡単なコンテナサービスを作成します。

[学習フェーズ]

ECS Fargate の構成要素を理解しましょう。

  • 関連サービス(今回のタスクのみ)
    • VPC
    • SG
  • ECS
    • クラスター:ECSタスクの論理的なグループ、「箱」のようなイメージ
      EC2 on ECS・Fargateの指定
    • タスク定義:Dockerイメージやリソース量(CPU/メモリ)を指定する設計図
      主な設定項目
      - コンテナ名:複数コンテナ構成時に識別しやすいように名前をつける
      - イメージ:nginx123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp など
      - ポートマッピング:コンテナ内のポートと外部公開ポートをマッピング(例:80 → 80)
      - メモリ / CPU:Fargateがタスクに割り当てるリソース量(例:512MiB / 256 vCPU)
      - ログ出力先:CloudWatch Logs への出力設定(任意)
    • サービス:タスクを継続的に実行・管理するリソース
      VPCの指定、タスク定義の指定、サービスの実行

[実践フェーズ]

今回は、一番シンプルな方法でFargateを構築します。

DockerHubにある公式のnginxイメージを利用し、ECS Fargate上で動かしてみましょう。

ローカルでのimageの作成や未だ学習していないECRは不要となります。

1. VPC・SG作成(既存のものでOK)
Public Subnetがあり、インターネットと接続できること
port 80 0.0.0.0/0のSGを作成しておくこと

2. ECS クラスターの作成

【Tips】
ECS AnywhereはオンプレミスサーバーにECS画面を使ってデプロイできるサービス。
ECSの管理画面のみの利用のため、料金は安い

3.タスク定義書の作成
起動タイプ:Fargateを選択
コンテナの名前:任意
コンテナイメージURI:Docker公式のイメージを指定

4. サービスの起動
クラスター > サービスの作成
起動タイプ:FARGATE
アプリケーションタイプ:サービス
タスク定義:3.で作成したものを指定
ネットワーキング:VPC

5. 起動確認

クラスター > サービス > タスク > ネットワーキングにて、パブリックIPアドレスを確認

ブラウザにて下記表示が出ていれば成功

+ α

Fargate作成時、さまざまな選択項目があったと思います。それぞれの項目について深堀学習してみましょう。

例)
・起動タイプとキャパシティープロバイダーの違い
・ecsTaskExecutionRoleとは
・必須コンテナ、コンテナの追加
・サービスとタスクの違い
・デプロイオプション
・ボリューム