0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECS Fargateでコンテナサービスを立ち上げる手順

0
Last updated at Posted at 2026-06-07

環境 / 前提

AWSアカウント
ECRにイメージがある状態

ECR イメージの準備

こちらの記事を参考にしてください。
DockerイメージをAWS ECRにプッシュする

本記事ではReactアプリの初期ファイルをイメージ化したものを起動確認に使用しました。
すでに準備している方はそちらをご利用ください。

ECSについて

AWSのDockerコンテナサービスです。
調べるとさまざまな解釈で説明がされています。初心者の方にとっては初めての概念、用語が出てきて理解に時間がかかります。一度、本記事を通して起動確認まで行ってから、じっくりと調べていただくことをお勧めします。

この3つの用語だけは外せないので紹介します。

  • タスク/タスク定義: コンテナの設定を行います。
  • サービス: タスクの割り当て、オートスケーリングの設定や、VPCなどの設定を行います。
  • クラスター: サービスの集合体です。

手順

  1. ECSクラスターの作成
  2. ECSタスク定義の作成
  3. ECSサービスの作成
  4. ECS Fargate起動確認

1. ECSクラスターの作成

ECSクラスターとはタスクを配置する「EC2インスタンス群」のことです。ただし、どのEC2インスタンスで起動しているかが隠蔽されているため、SSH接続して操作することができません。今回はFargateという起動タイプを使用します。

  1. ECSダッシュボードから「クラスターの作成」を選択
  2. ネットワーキングのみ(Fargateを使用)を選択
  3. クラスターに名前を付ける
  4. VPCを作成 (任意)
  5. 作成
    ※ 作成完了まで2分程度待ちます。CloudFormationテンプレートを自動生成する処理が走るようです。

2. ECSタスク定義の作成

タスクはDockerコンテナに相当します。どのようにタスクを起動するかを設定します。つまり docker-compose.yml のようなものです。JSON形式で設定されます。

  1. ECSダッシュボードから「タスク定義」を選択
  2. 「新しいタスク定義の作成」を選択
  3. 「FARGATE」を選択
  4. タスク定義名を記入
  5. タスクロールは「ecsTaskExecution」(デフォルト)
  6. オペレーティングシステムファミリー:「Linux」
  7. タスクメモリ:任意のメモリ
  8. タスクCPU:任意のCPU
  9. コンテナの追加
    • コンテナ名:任意のコンテナ名
    • イメージ:ECRのURIをコピー (タグは :latest を指定 ※1)
    • ポートマッピング:ポート3000番を指定します (※2)
    • あとは空欄のまま「追加」
  10. 作成

3. ECSサービスの作成

ECSサービスとはサービスは、ALBとAutoScaling Groupに紐付けられた「タスク群」です。サービスの作成時にタスク定義を付与する必要がありますが、サービスはタスクの上位概念というわけではありません。タスクはタスク単体でECSクラスターへ配置することができるからです。

  • サービスの設定
  1. ECSダッシュボードから「クラスター」を選択
  2. 作成したクラスターを選択しダッシュボードを表示
  3. 一番左のタブの「サービス」を選択
  4. 「作成」を選択
  5. タスク定義: 「2. ECSタスク定義の作成」で作成したタスク定義を選択
  6. リビジョン:「〇〇 (latest)」
  7. サービス名:任意のサービス名
  8. タスクの数:「1」
  9. その他の項目は初期値のまま「次へ」
  • ネットワーク構成
  1. クラスター VPC:任意のVPCを選択 (「1. ECSクラスターの作成」時にVPCを新規作成した方はそのVPCを選択)
  2. サブネット:必要な分だけ選択
  3. セキュリティグループの「編集」を選択
    • インバウンドルールを追加:カスタムTCP / Anywhere / 3000番
  4. その他の項目は初期値のまま「次へ」
  • Auto Scaling (オプション)
  1. 「サービスの必要数を直接調整しない」を選択
  2. 「次へ」

⇒ 全項目を確認後、「サービスの作成」

4. ECSの起動確認

  1. ECSダッシュボードから「クラスター」を選択
  2. 作成したクラスターを選択しダッシュボードを表示
  3. 左からの2番目のタブの「タスク」を選択
  4. RUNNING中のタスク名をクリック (一番左)
  5. 画面中央の「ネットワーク」のパブリックIPをコピー
  6. コピーしたURLに:3000をつけてアクセス

お疲れ様でした。
一通り完了です。

5. ECS Fargateの削除

あえて手順の一つに含めました。
勉強のためにだけ使用したAWSリソースは都度削除しましょう。
勝手に別のリソースを立ち上げている可能性もあります。

注釈解説

(※1)タスク作成時のイメージURI、タグ:latestについて

イメージのバージョン管理に使用します。
ECRへイメージをプッシュ時、同じく:latestを指定することでECRイメージが上書きされます。
その後、サービスを更新すると変更が反映されます。

(※2)タスク作成時のポートマッピングについて

リスナーポート、フォワードポートの番号が異なると、エラーになります。

ホストポートは未定義であるか、ポートマッピングのコンテナポートと一致する必要があります。
参考:タスク定義パラメータ

その他

# ログの確認方法

  1. 上記起動確認の 1 ~ 4「RUNNING中のタスク名をクリック (一番左)」まで同じ
  2. タブの一番右にある「ログ」で確認を行えます。

# ECRを使用せず、Docker Hubのイメージを使用する

実はECRにイメージがなくとも、ECS Fargateの起動確認はできます。
今回の記事でわざわざECRにイメージを用意したのは、実際の運用で必ず必要となるからです。
ECRを参照せずにFargateを立ち上げる方法というのはDocker Hubにある公式イメージを使用するなどの方法があります。「2. ECSタスク定義の作成」のコンテナ設定でイメージURIを指定する項目があります。その際、例えば「nginx:latest」などと指定することができます。ECSを立ち上げるとNginxの公式イメージをプルし、起動してくれます。


この記事はjunueno.devで最初に公開した記事の転載です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?