更新日:
【初心者向け】AWSのECSの使い方を徹底解説!
ECSはDockerイメージをAWS上で実行できるサービスです。
この記事では、AWSのECS(Elastic Container Service)を使ってアプリをデプロイする方法 を、初心者向けにわかりやすく解説していきます。
特に初心者がつまずきやすいVPC(ネットワークの仕組み) やECR(アプリのイメージを保存する場所) といった基盤部分から、ECSサービスの作成までを順を追って解説していきます。この記事では「Hello World」という文字を表示させるまでを解説いたします。
以下のことが実装されていることを前提として解説をいたします。
- AWSのアカウントを作成している
- Dockerについて知識がある
全体像をつかもう
AWSでアプリを公開するには、複数のサービスが連携して動作しています。ECSにアプリをデプロイする際には、以下の主要なサービスが必要です。
ECR(Elastic Container Registry)
Dockerで作ったアプリのイメージを保存する場所です。ECSはここからイメージを取得してコンテナを起動します。
VPC(Virtual Private Cloud)
アプリが動くネットワーク空間です。インターネットとつなぐか、内部ネットワークだけで動かすかを決めます。
ECS(Elastic Container Service)
Dockerイメージ(コンテナ化されたアプリ)をAWS上で簡単に実行・管理できるサービス です。ECSを使うことで、複雑なサーバー管理や手動でのデプロイ作業を大幅に減らすことができます。
具体的には以下の役割を持っています。
- コンテナの起動・停止
- 複数のコンテナのスケーリング
- タスク定義に基づいた動作管理
Fargate / EC2
ECSが実際にコンテナを動かす基盤です。ECSではどちらかを選んで使うことができます。
| サービス名 | 説明 |
|---|---|
| Fargate | サーバー管理不要でコンテナを直接動かせる |
| EC2 | 自分で仮想サーバーを用意してコンテナを動かす |
Dockerイメージの作成
まずは動かすアプリのDockerイメージを作成します。作成にはDocker Desktopが必要になります。
まだインストールしていない場合は、こちらからインストールしましょう。
今回はブラウザに「Hello World」と表示させるだけのシンプルな構成です。このファイルを作成するためのディレクトリを以下のコマンドで作成しましょう。
1
2
mkdir hello-world-ecs
cd hello-world-ecs
次に作成したディレクトリ内にindex.htmlファイルを作成し、以下の内容を記述します。
1
Hello World
次に以下の内容でDockerfileという名前のファイルを作成し、以下のコードを記述します。
1
2
3
4
5
6
7
8
# Nginxという軽量なWebサーバーを使用
FROM nginx:alpine
# index.htmlをNginxの公開ディレクトリにコピー
COPY index.html /usr/share/nginx/html/
# ポート80でアクセスを待ち受ける
EXPOSE 80
最後にDocker Desktopを起動した状態で、以下のコマンドでDockerイメージをビルドします。
1
docker build --no-cache --platform linux/amd64 -t hello-world-ecs .
AWS CLIの設定
次に作成したDockerイメージをECRに保存します。
push(保存)するにはターミナルでawsコマンドを実行する必要があるので、AWS CLIが必要になります。
まだインストールしていない方は以下のコマンドでインストールしましょう。
1
brew install awscli
次にAWS CLIの設定を行います。その際、AWSアクセスキーとAWSシークレットアクセスキーといったものが必要になります。
この2つはAWSのコンソールで作成します。
右上の自分のユーザー名をクリックすると表示される「セキュリティ認証情報」をクリックします。

遷移したページの「アクセスキー」で「アクセスキーの作成」をクリックします。

ユースケースで「コマンドラインインターフェイス(CLI)を選択し、表示されるチェックボックスにチェックを入れ、次へをクリックします。

次に説明タグを設定します。「ECS-test」など管理しやすい名前をつけておきましょう。最後に右下の「アクセスキーを作成」をクリックします

すると以下のような画面になり、アクセスキーとシークレットアクセスキーを確認することが出来ます。この画面を閉じてしまうと二度とシークレットアクセスキーが確認できなくなってしまうので、必ず「.csvファイルをダウンロード」をクリックし、ファイルをダウンロードしておきましょう。

作成をしたら、以下のコマンドでAWS CLIの設定を行います。
AWS Access Key IDには作成したアクセスキーを、AWS Secret Access Keyには作成したシークレットアクセスキーを入力しましょう。
1
2
3
4
5
6
7
aws configure
# 以下を入力
AWS Access Key ID: (作成したアクセスキー)
AWS Secret Access Key: (作成したシークレットアクセスキー)
Default region name: ap-northeast-1 # 東京リージョン
Default output format: json
これでAWS CLIの設定は完了です。
ECRにイメージを保存
AWSコンソールにログインし、ECRのコンソールを表示します。そして、左メニューの「Private registry」の「Repositories」をクリックし、「右上のリポジトリの作成」をクリックします。

リポジトリ名は作成したアプリ名と一緒にしておくと管理が楽です。今回であれば「hello-world-ecs」と入力します。
入力後に、右下の「作成」をクリックします。

作成後、以下の画面に遷移するので、作成したリポジトリ名の左のチェックを入れ、「プッシュコマンドを表示」をクリックします。

するとこのリポジトリにDockerイメージをプッシュするためのコマンドが表示されます。「2」はDockerイメージを作成するコマンドですが、すでに実行しているため実行は不要です。「1」のコマンド実行後、「Login Succeeded 」と表示されれば「3」、「4」と続けてコマンドを実行しましょう。

「4」のコマンド実行後、作成したリポジトリをクリックし、イメージが3つ保存されていればプッシュ成功です。

これでECRの設定は完了です。
VPCの構築
AWS上でアプリを動かすためには、まずネットワーク環境を整える必要があります。AWSではこのネットワークを VPC(Virtual Private Cloud)と呼びます。
VPCとは、AWS上に作る専用のネットワーク空間です。マンションの専用エリアのようなもので、外部と隔離された安全な環境を提供します。クラウド上の「自分専用のネットワーク空間」と考えるとわかりやすいです。以下がVPCの役割になります。
- アプリやデータベースが安全に動くための隔離された空間を提供
- インターネットや他のネットワークと接続するかどうかを制御
- サブネットやルートテーブル、セキュリティグループなどを使って通信を管理
サブネット
サブネットは、VPC内をさらに細かく区切った区画です。マンションの各階のようなものと考えてください。
VPCという大きなネットワークの中で、サブネットは小さなネットワーク単位として扱われます。
大きなネットワークを小さく分けることで、管理やセキュリティがしやすくなります。以下の2種類があります。
| 種類 | 役割 |
|---|---|
| パブリックサブネット | インターネットと直接通信可能。Webサーバーやロードバランサーを置く場所。 |
| プライベートサブネット | インターネットと直接通信しない。外部からアクセスしてほしくないデータベースや内部処理用のコンテナを置く場所。 |
こうして、公開していいサーバーと隠すべきサーバーを分けることができます。
サブネットには IPアドレスの範囲(CIDRブロック) を設定します。
例:10.0.1.0/24
このサブネットには10.0.1.1〜10.0.1.254のIPアドレスが使えます。
サブネットごとに異なるルートやセキュリティを設定できるため、管理がしやすくなります。
2つ作っておくと災害や障害時に対応ができるので、基本的に2つ作っておくと良いでしょう。
インターネットゲートウェイ
インターネットゲートウェイとは、VPC内と外部のインターネットをつなぐ出入口です。
パブリックサブネット上のアプリに外部からアクセスできるようにするには、インターネットゲートウェイをVPCに接続する必要があります。
セキュリティグループ
セキュリティグループ は、ネットワークのファイアウォール(防火壁)です。マンションの入口で身分証をチェックする警備員のように、許可された通信のみを通す役割を果たします。
VPCの作成
それでは実際にVPCを作成していきます。
AWSのコンソールから「VPC」と検索し、VPCダッシュボードに移動します。
そして、ダッシュボードから「VPC」をクリックします。

画面右上の「VPCを作成」をクリックします。

すると以下の画面になります。

以下が実際に入力する例です。
| 作成するリソース | VPCのみ |
|---|---|
| 名前タグ | test |
| IPv4 CIDRブロック | IPv4 CIDRの手動入力 |
| IPv4 CIDR | 10.0.0.0/16 |
| IPv6 CIDR ブロック | IPv6 CIDRブロックなし |
| テナンシー | デフォルト |
IPv4 CIDR ブロック
ネットワーク用語としての「ブロック」は 「IPアドレスのまとまり」 という意味です。
IPv4
インターネットで使われている住所(IPアドレス)のこと。
例:192.168.0.1とか10.0.0.5とか。
家の住所のように「どのパソコン(サーバー)か」を特定するための番号です。
CIDR(Classless Inter-Domain Routing)
CIDR(サイダー) とは、ネットワークアドレスの範囲を指定する記法で「アドレスのまとまり(範囲)」を表すものです。住宅地で言うと「○○町1丁目から100丁目まで」のような区画指定と考えてください。
たとえば、以下のようなものになります。
・10.0.0.0/16
・192.168.1.0/24
この/16や/24という部分が何個のIPアドレスを含む範囲かを決めています。
【具体例】
・10.0.0.0/16
→ 10.0.x.xがすべて使える(約 65,000 個のアドレスを含む)。
・192.168.1.0/24
→ 192.168.1.0から192.168.1.255まで使える(256 個のアドレスを含む)。
AWSで VPC(仮想ネットワーク) を作るときに「このVPCの中でどの範囲の住所を使うか?」を指定します。
→ これが IPv4 CIDR ブロックです。
たとえば VPC を作るときに10.0.0.0/16を選ぶと、そのVPC内のサブネットやインスタンスに10.0.x.xの住所が割り当てられます。
つまり「IPv4 CIDR ブロック」とは、『このネットワークで使える住所の範囲をまとめて表したもの』です。
CIDRブロックは10.0.0.0/16を指定すれば 広くて使いやすい無難な選択 になります。
10.0.0.0でなくても192.168.255.255までの範囲であればなんでもOKです。
IPAM 割り当ての IPv4 CIDR ブロック
IPAM (IP Address Management)は、AWSでVPCやサブネットに割り当てるIPアドレスを効率的に管理する仕組みです。
大規模ネットワークでは、どのIPをどこで使うか管理するのが大変なので、IPAMがそれを整理してくれます。
IPAMを使うのは、複数のVPCを作るような大規模な運用のときに便利です。今回はVPCを一つしか作成しないため、使いません。
IPv6 CIDR ブロック
IPv6
IPv4が10.0.0.1のように数字4つで表す(32ビット)のに対し、IPv6は2001:db8::1のように16進数で表します(128ビット)。
IPv4は世界中で足りなくなってきたため、IPv6が登場しました。
IPv6はアドレスが非常にたくさんあるため、ほぼ無限にIPを割り当てられます。
IPv6を使わなければ「IPv6 CIDR ブロックなし」を選択しましょう。
テナンシー
テナンシー(Tenancy)とは、VPC(仮想ネットワーク)の中で作るインスタンス(サーバー)が 「他の人と同じ物理サーバーを使うか、自分専用の物理サーバーを使うか」 を決める設定です。
言い換えると、「自分のサーバーを他の人と共有するか、専用に使うか」 を選ぶオプションです。
デフォルト
デフォルトを選ぶと「共有」になります。他のAWSユーザーのサーバーと同じ物理マシンに置かれます。
コストが安いのが特徴です。ほとんどのケースはこちらで問題ありません。
専有
自分専用の物理サーバーにインスタンスが配置されます。
セキュリティ面や規制の関係で他のユーザーと物理的に共有したくない場合に使います。
その分コストは高めです。
以下のように全て入力したら画面右下の「VPCを作成」をクリックします。

これでVPCの完成です。
サブネットの作成
次はサブネットの作成です。サブネットを作成するにはまず、左メニューから「サブネット」を選び、「サブネットを作成」をクリックします。

すると以下の画面になるので、どのVPCの中にサブネットを作成するかを選択します。先ほど作成したVPCを選びましょう。

選択するとサブネットの設定をすることができます。

以下が実際に入力する例です。
| サブネット名 | test~publicsubnet-1a |
|---|---|
| アベイラビリティゾーン | ap-northeast-1-zg-1 |
| IPv4 VPC CIDR ブロック | 10.0.0.0/16 |
| IPv4 サブネット CIDR ブロック | 10.0.0.0/20 |
| キー | Name |
| 値 - オプション | test-public-subnet-1a |
サブネット名
サブネットの名前です。test-public-subnet-1aというように末尾は次に説明するアベイラビリティゾーンを合わせましょう。
publicというのはインターネットと通信できるサブネットという意味です。一目でpublicのサブネットというのがわかるように名前をつけておくと良いでしょう。
アベイラビリティゾーン
アベイラビリティーゾーン(AZ) とは、AWSの異なるデータセンターのことです。地震や停電などの災害時に備えて、複数の場所にサーバーを分散配置することで、一箇所で問題が起きても他の場所でサービスを継続できます。
映画館に例えると、「1番スクリーン」と「2番スクリーン」のように、同じ映画を複数の場所で上映することで、一つが故障してももう一つで上映を続けられるような仕組みです。

ここで選択したアベイラビリティゾーンの末尾の1aなどをサブネット名に入れておきましょう。
IPv4 VPC CIDRブロック
先ほど作成したVPCのCIDRブロックを選択します。
IPv4 サブネット CIDR ブロック
サブネットはVPC内の小さなネットワークの区画(部屋やブロック)です。
サブネットごとに使えるIP範囲を決めるのが サブネットCIDRブロックです。
VPCのCIDR範囲の中からどれだけ使いますかという設定です。
VPC内で重ならない範囲なら自由に決められます。
(例)
VPC(10.0.0.0/16) = 「○○マンション全体」(10.0.0.0 ~ 10.0.255.255のIPが使える)
サブネット1(10.0.1.0/24) = 「1階部分」(10.0.1.1~10.0.1.254が使える)
サブネット2(10.0.2.0/24) = 「2階部分」(10.0.2.1~10.0.2.254が使える)
ここには10.0.0.0/20などという数値を入れておきましょう。
その後、右下の「サブネットを作成」をクリックします。

インターネットゲートウェイの作成
作成したサブネットは、まだインターネットにアクセスできない状態です。「パブリックサブネット」にするためにインターネットゲートウェイを作成します。インターネットゲートウェイ は、VPCとインターネットを繋ぐ「玄関ドア」の役割を果たします。
左メニューの「インターネットゲートウェイ」から「インターネットゲートウェイの作成」をクリックします。

「名前タグ」にはインターネットゲートウェイの名前をつけます。末尾にインターネットゲートウェイを表すigwをつけておくとわかりやすいです。入力後、右下の「インターネットゲートウェイの作成」をクリックします。

VPCへアタッチ
作成しただけだと意味がないので、VPCとの紐付けを行うため「VPCへアタッチ」をクリックします。

使用可能なVPCはインターネットに繋げたいVPCを選択し、「インターネットゲートウェイのアタッチ」をクリックします。

これで先ほど作成したVPCが外の世界と繋がることができるようになりました。
ルートテーブル
ルートテーブル は、ネットワークの「道案内表」です。「この宛先に行くにはどの道を通ればいいか」を記録しています。VPC内のデータ(パケット)がどこに行けばいいかを示してくれます。
ルートテーブルがなければ、ネットワーク内のコンピュータは「どこに送ればいいか分からない」状態になります。
- VPCは 街全体
- サブネットは 街の区画(住宅地やオフィス街)
- ルートテーブルは 道路標識
「ここから外に出たいときは、この道(インターネットゲートウェイ)を通れ」、「同じ区画内なら、この道でOK」などいうように道案内をしてくれるのがルートテーブルです。
ルートテーブルの作成
先ほど作ったサブネットからインターネットゲートウェイに向かって通信をするための設定がルートテーブルの作成になります。さきほどVPCにインターネットゲートウェイをアタッチしましたが、サブネットはインターネットゲートウェイがどこにあるかわからないため、その外部へと出るための場所に導いてあげなければ外部との通信ができません。ルートテーブルはそのための道案内役となります。
ルートテーブルを作成するには、左メニューの「ルートテーブル」から「ルートテーブルの作成」をクリックします。

名前には案内するサブネット名の後に-rtとつけるとわかりやすいです。今回は「test-rt」としました。
VPCは先ほど作成したVPCを選び、「ルートテーブルを作成」をクリックし、作成します。

ルートの追加
作成後、ルートを確認すると以下のように10.0.0.0/16 localという設定がデフォルトでされています。これは、紐付けたVPC内(10.0.0.0/16の範囲)であれば、自由に通信できることを意味します。今回はインターネットに接続したいので、別途ルートを設定する必要があります。設定するには、「ルートを編集」をクリックします。

クリックすると以下の画面になるので、「ルートを追加」をクリックします。

ここでは、インターネットに向かう通信を設定します。
送信先はすべての IP アドレスを表す0.0.0.0/0を指定し、ターゲットには「インターネットゲートウェイ」を選択します。
先ほど作成したインターネットゲートウェイが表示されるので、それを選択してください。
最後に「変更を保存」をクリックします。

これで「通信はインターネットゲートウェイに向かって進んでください」という道案内の設定ができました。
サブネットの関連付け
次はこのルートテーブルをどのサブネット内で有効にするかという設定を行います。「サブネットの関連付け」のタブを選択し、「サブネットの関連付けを編集」をクリックします。

今回はVPC内には一つだけしかサブネットを作成していないので一つだけ表示されました。複数あればその分だけ表示されます。関連づけるサブネットのチェックボックスにチェックを入れて「関連付けを保存」をクリックします。

これでネットーワーク関連の設定は完了です。
クラスター
次はVPCのサービスからECSのサービスに移動してクラスターを作成します。
AWSのコンソールから「ECS」と検索し、Elastic Container Serviceを選択しましょう。

クラスター とは、複数のコンピュータ(サーバー)をグループ化して管理する仕組みです。
簡単に言うと 「コンテナをまとめて管理する入れ物」 です。
クラスターの中には、複数のタスク(Task)やサービス(Service)が所属します。
クラスターの作成
左メニューから「クラスター」をクリックし、右上の「クラスターの作成」をクリックします。

「クラスター名」にはわかりやすい名前をつけます。
今回「インフラストラクチャ」は「Fargate のみ」を選択します。

AWS Fargate
AWS Fargate(ファーゲート)とは、サーバーの管理をAWSが代行してくれるサービスです。通常コンテナを動かすにはサーバー(EC2など)を用意して、OSやDocker環境を管理する必要があります。
Fargateを使うと 「サーバーの準備や管理はAWSに任せる」 ことができ、コンテナの実行に集中できます。
タグは以下のように「キー」にName、「値」に先ほど名付けたクラスター名を設定をし、「作成」をクリックします。作成には少し時間がかかるので、待ちましょう。

これでクラスターの作成は完了です。
タスク定義
次はタスク定義を作成します。
タスク定義とはECSでコンテナを動かすための設計図のようなものです。「どのコンテナを使うか」「どれくらいのCPUやメモリを割り当てるか」「どのポートで通信するか」などをここで決めます。タスクはタスク定義をもとに実際に起動したコンテナのことを指します。
(例)
タスク定義 = 「カレーを作るレシピ」
・ 材料(コンテナのイメージ)
・ 分量(CPU・メモリ)
・ 調理方法(コマンドや環境変数)
タスク = 実際に作ったカレーの鍋
・ レシピに従って料理を作ると、いつも同じ味になる
・ タスク定義をもとに複数のタスクを起動できる
タスク定義の作成
左メニューの「タスク定義」をクリックし、「新しいタスク定義の作成」をクリックします。

「タスク定義ファミリー」にはタスク定義名を入力します。今回は「test-task-definition」と入力しました。

次はインフラストラクチャの要件を設定します。
今回は以下のように設定します。

今回は画面に表示されるか確認するだけなので、CPUとメモリは最低限のものにします。高性能なものを選択するほど料金が高くなります。
「タスクロール」はタスク内のアプリケーションが AWS リソースにアクセスするためのロールです。
(具体例)
・RailsアプリからS3にファイルを保存
・SQSにメッセージを送信
・DynamoDBにデータを書き込む
ここで指定したロールの権限をアプリが使えるようになります。
今回は外部サービスにアクセスしないので空で大丈夫です。
「タスク実行ロール」はタスクがコンテナイメージを取得したり、ログを書き込むためにECSが使うロールです。
(具体例)
・ECRからDockerイメージをプルする権限
・CloudWatch Logsにログを送信する権限
ECSがタスクを起動する際に必要です。「新しいロールの作成」を選んでおけばこれらの基本的な権限を付与してくれます。
コンテナの設定
次はコンテナの設定です。
名前にはわかりやすい名前をつけましょう。今回は「test-eginx」と入力しました。
イメージURIはECRにプッシュしたイメージのURIを入力します。
「ECRイメージを閲覧」をクリックすると選択することができます。

プライベートリポジトリは先ほど作成したものを選びます。するとイメージにプッシュしたものが表示されるので、「latest」をチェックし、「イメージダイジェストを選択」をクリックします。

あとはデフォルトのままで大丈夫です。
最後にタグをつけておきましょう。
「タグの追加」をクリックし、「キー」にName、「値」に「タスク定義ファミリー」でつけたtest-task-definitionを入力し、「作成」をクリックします。

これでタスク定義の完成です。
サービス
サービス とは、指定したタスク定義に基づいて、コンテナを継続的に動かし続ける機能です。レストランの店長のように、常にスタッフ(コンテナ)が適切な人数で働いているかを監視し、問題があれば新しいスタッフを配置してくれます。
サービスが主にやってくれることは以下の通りです。
常に指定した数のタスクを稼働させる
・(例)2つのタスクを常に動かしたい → サービスが2つ動いているか監視してくれる
・タスクが止まったら自動で再起動する
ロードバランサーと連携してアクセスを分散
・(例)ブラウザからアクセスがあったら、サービスがタスクに振り分けて応答させる
・ユーザーがどのタスクに当たるか気にしなくてOK
デプロイ(更新)を安全に行う
・新しいバージョンのタスクを追加 → 古いタスクと置き換えながら更新
・途中で止まることなく、サービス全体は稼働し続ける
サービスの作成
サービスはクラスターから作成できます。左メニューから「クラスター」をクリックし、先ほど作成したクラスターをクリックします。

すると以下の画面になるので、サービスの「作成」をクリックします。

クリックするとサービス作成画面に遷移します。
サービスの詳細
「タスク定義ファミリー」は先ほど作成したタスク定義を選択します。
「タスク定義のリビジョン」はタスク定義のバージョンを指定します。タスク定義はリビジョンといい、既存のタスク定義を編集することが出来ます。編集を保存すると新たなバージョンとして保存されます。今回は編集は行なっていないので、最新のバージョンは1となっています。サービス名はタスク定義ファミリーを選ぶと自動で入力されます。

環境
次は環境の設定です。

「コンピューティングオプション」とはECSのタスク(コンテナ)を どのコンピューターで、どの方式で動かすかを決める設定です。
ECSではタスクを動かすために コンピューティング環境(サーバー) が必要ですが、その方法を選ぶのが「コンピューティングオプション」です。
サービス作成時に選べるコンピューティングオプションは2つあります。
キャパシティプロバイダー戦略(Capacity provider strategy)
・ タスクをどの「コンピューティング環境」に載せるかを決める
・FARGATE / FARGATE_SPOT / EC2 の割合などを指定できる
・(例)
「通常はFARGATE、余裕があればFARGATE_SPOTを使う」
・「平日は軽自動車、週末は普通車、繁忙期は高級車を複数台」のような複雑な運用
・コスト最適化は可能だが、設定と管理が複雑
起動タイプ(Launch type)
・タスクを動かす方法そのもの
・主にFARGATEかEC2を選びます
・(例)
FARGATE → AWS がサーバーを自動で用意
EC2 → 自分でEC2インスタンスを用意
・「軽自動車にする」「普通車にする」「高級車にする」のようにシンプルに1つを選択
・分かりやすく、管理が簡単なので初心者に推奨
今回は「起動タイプ」を選びます。

ネットワーキング
次はネットワーキングの設定です。

「VPC」は作成したVPCを選びます。するとそのVPC内にあるサブネットが自動で追加されます。
「セキュリティグループ」は「新しいセキュリティグループの作成」を選びます。
「セキュリティグループ名」にはわかりやすい名前をつけましょう。今回は「test-sg」とつけました。
「セキュリティグループのインバウンドルール」はタイプを「HTTP」、ソースはどこからでもアクセスできるよう「Anywhere」を選びます。
「パブリックIP」はオンにします。
パブリックIPはインターネット上からアクセスできる IP アドレスのことです。
ブラウザからアクセスしたい場合、この IP が必要になります。そのため、オフにしてしまうと自動で割り当てができないため、アクセスできなくなります。

その他の箇所は今回は触れなくて大丈夫なので、一番下にある「作成」をクリックします。

するとサービスのデプロイが開始します。完了まで数分かかるので、待ちましょう。

ブラウザでアクセス
デプロイが完了するとタスクが作成されます。「タスク」タブをクリックし、作成したタスクをクリックします。

「設定」タブのパブリックIPの右に表示されている「オープンアドレス」をクリックします。

するとパブリックIPのアドレスでブラウザが開きます。ブラウザに「Hello World」が表示されていれば成功です。

まとめ
このようにECSを使用することで、作成したDockerイメージをAWS上で実行することが出来ました。それにはECSの知識だけでなく、Dockerイメージを管理するECR、アプリを動かすためのネットワーク空間であるVPCの知識が必要になります。
この記事を参考に、ぜひデプロイするまでの基本的な流れをマスターしましょう。
この記事のまとめ
- ECSはAWS上でDockerイメージを実行できるサービスです。
- DockerイメージはECRで管理します。
- クラスター、タスク定義、サービスを作成する必要があります。