はじめに
この記事はコンテナ勉強用として試したことまとめたものです。
今回はECSのFargateでWebアプリをデプロイしてみました。
起動までの流れ
- Dockerイメージを作成
- ECRにイメージをプッシュ
- ALBを作成
- タスク定義を登録
- クラスターを作成
- サービスの作成
Dockerイメージを作成
- Dockerfile配下のように設定
# Base Image
FROM centos:centos7
# Install Apache
RUN ["yum", "-y", "install", "httpd"]
# Start httpd
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
# Copy Html
COPY index.html /var/www/html
- index.html
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>ECS HTML TEST</title>
</head>
<body>
<center>
<div>
<h3>サンダース</h3>
<h3>シャワーズ</h3>
<h3>ブースター</h3>
</div>
</center>
</body>
</html>
- イメージを作成する。
docker build -t test-ecr-repo .
ECRにイメージをプッシュ
- 以下コマンドを実行してECRにログインする。
$(aws ecr get-login --no-include-email --region ap-northeast-1)
- 作成したイメージのタグ付けとECRへプッシュする。
# タグ付け
docker tag test-ecr-repo:latest 111111111111.dkr.ecr.ap-northeast-1.amazonaws.com/test-ecr-repo:latest
# ECRプッシュ
docker push 111111111111.dkr.ecr.ap-northeast-1.amazonaws.com/test-ecr-repo:latest
ALBを作成
- サービスが停止しても自動起動させるためALBを配置する。

【用語】
リスナー:受信プロトコルやポートを指定する。
ターゲットグループ:リクエストを送る先を設定する。
ECSタスク定義を作成
- 以下のような形でECSのタスクを作成する。

ECSクラスターを作成
- 以下のような形でクラスターを作成する。
クラスターテンプレートは「ネットワーキングのみ」を指定する。

ECSサービスを作成
- 以下のような形でサービスを設定する。



接続確認
- ALBのDNS名を確認する。


まとめ
- Fargateを使ってアプリの接続確認をすることができた。
- 手動だと設定項目が多いのでCloudformationで構築できるようにしたい。