のぐそんブログ

暗いおじさんがシコシコ書くブログです。

ECS Fargateにdockerイメージを利用してコンテナを立ててみる為のメモ

ECS Fargateにdockerイメージを利用してコンテナを立ててみる為のメモです。
自分用のメモなので、手順だけ書いています。

前提

VPCやサブネットは作成ずみ。

dockerイメージを作成する

適当なフォルダを作成。

$ mkdir ecs_sample
$ cd ecs_sample

Dockerfileを作成。
nginxのdockerコンテナを作成する為のイメージ。

FROM nginx:latest

COPY ./src /usr/share/nginx/html

srcディレクトリと表示確認用にhtmlを作成。

$ mkdir src

src/index.htmlの中身は何でもよい。

Hello!

dockerイメージを作成する。

$ docker build . -t ecs-test$

イメージが作成できているか確認。

$ docker images

REPOSITORY                                                            TAG                 IMAGE ID            CREATED             SIZE
ecs-test                                                              latest              7fdbd8fef5df        26 seconds ago      132MB

ローカルでdockerイメージからコンテナを起動してみる。
オプションの--rmはコンテナを停止したら、コンテナを削除する指定。

$ docker run --rm -p 8080:80 ecs-test -d

http://localhost:8080/で「Hello!」と表示されていればOK。

ECRにイメージを登録

作成したdockerイメージをECRに登録します。
ECRに登録したイメージはECSから利用することができます。

まずは登録用のリポジトリを作成(githubのリポジトリみたいなもの)。

f:id:nogson2:20201014175910p:plain

作成したリポジトリに、イメージをpushします。
push方法は、「プッシュコマンドを表示」のコマンドを実行していくだけです。

f:id:nogson2:20201014180414p:plain

イメージがプッシュされるとリポジトリに以下のように表示されます。

f:id:nogson2:20201014181716p:plain

ECSを作成

クラスターを作成

クラスター > クラスターを作成 > ネットワーキングのみ(AWS Fargateを使用)を選択して「次のステップへ」

クラスター名と、タグだけ設定して「作成」。

f:id:nogson2:20201014182823p:plain

クラスターが作成される。

f:id:nogson2:20201014182949p:plain

タスクを作成

タスクとはdocker-composeみたいなもの。

タスク定義 > 新しいタスク定義を作成 > FARGATEを選択して「次のステップへ」。

タスクの設定はこんな感じ。
タスクの実行 IAM ロールは初めての場合は、「新しいロールを作成」を選択すると自動で「ecsTaskExecutionRole」ロールが作成される。

f:id:nogson2:20201014183759p:plain

コンテナを追加します。
イメージには、ECRで登録したイメージのURI、 もしくはngins:latestのようにdocker hubにあるイメージを指定することもできる。

f:id:nogson2:20201014184440p:plain

タグ(Name:ecs-sample-taskとか)だけ追加して「作成」ボタンを押す。

サービスを作成する

サービスはクラスターとタスク定義を結びつけるようなもの。

クラスター > 作成したクラスタ > 「サービス」タブ > 「作成」を押す。

f:id:nogson2:20201014185030p:plain

以下のような設定をして 「次のステップへ」を押す。

f:id:nogson2:20201014185631p:plain

VPCやサブネット、セキュリティグループ(インターネットにつながる)を設定して「次のステップへ」を押す。

f:id:nogson2:20201014190047p:plain

Auto Scaling はそのままの設定で「次のステップへ」を押し「サービスの作成」を押す。

サービスが作成され、「タスク」が起動します。
コンテナが起動すると、ステータスがRUNNINGになります。

f:id:nogson2:20201014190425p:plain

タスクのパブリックIPから表示を確認することができます。

f:id:nogson2:20201014224044p:plain