Closed2

ECSの記事を書く

おみずのみ太郎おみずのみ太郎

dockerファイル作成手順

CodeCommitでリポジトリを作成

手順は省略

ECRリポジトリ作成

手順は省略

WEBコンテンツの準備とDockerイメージの作成

  1. Cloud9にAWSコンソールからアクセスする。
  2. CodeCommitのリポジトリをCloneする。
$ git clone https://git-codecommit.<リージョン名>.com/v1/repos/リポジトリ名
  1. Cloneしたディレクトリ内に以下ファイルを作成する。
  2. 作成したファイルを以下のように編集する。
  • Dockerfile
FROM node:12
ADD ./server.js /usr/src/app/
CMD ["node", "/usr/src/app/server.js"]
  • server.js
const http = require('http');
const os = require('os')

http.createServer((req, res)=>{
    res.writeHead(200, {'Content-Type': 'text/plan'});
    res.end('Hello from HOST:' + os.hostname() + '\n');
}).listen(8080);
  1. Dockerイメージを作成する。
$ docker build -t node-sample .

5.コンテナの動作確認をする。

//コンテナを起動
$ docker run -p 8080:8080 -d node-sample:latest
//コンテナ起動状況を確認する。
//dockerが正常に立ち上がらない場合はプログラムや手順に問題がないか確認する。
$ docker ps
//curlでコンテナが正常動作しているか確認する。
$ curl localhost:8080
Hello from HOST:570a8d5526da
  1. 作成したソースをCodeCommitにpushする。
    (あまりよくないがテストなのでmasterに直接pushする。)
git add .
git commit -m "コメント"
git push origin master
  1. 作成したDockerイメージをECRへpushする。
  • ECRにpushするための認証トークンを取得する。
aws ecr get-login-password --region <リージョン名> | docker login --username AWS --password-stdin <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com
  • push先のリポジトリ名を作成したイメージにタグ付する。
docker tag node-sample:latest <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com/node-sample:latest
  • Dockerイメージをpushする。
docker push <アカウントID>.dkr.ecr.<リージョン名>.amazonaws.com/node-sample:latest
おみずのみ太郎おみずのみ太郎

セキュリティグループ設定

以下、セキュリティグループを作成する。

ECSに設定するセキュリティグループ

役割 IN/OUT IPバージョン タイプ プロトコル ポート範囲 ソース
ECS Fargate用 IN IPv4 カスタムCP TCP 8080 0.0.0.0/0
ECS Fargate用 OUT IPv4 すべてのトラフィック すべて すべて 0.0.0.0/0

ALBに設定するセキュリティグループ

役割 IN/OUT IPバージョン タイプ プロトコル ポート範囲 ソース
ALB用 IN IPv4 カスタムCP TCP 80 自分のIP/32
ALB用 OUT IPv4 すべてのトラフィック すべて すべて 0.0.0.0/0

エンドポイントに設定するセキュリティグループ

役割 IN/OUT IPバージョン タイプ プロトコル ポート範囲 ソース
ALB用 IN IPv4 すべてのトラフィック すべて すべて 0.0.0.0/0
ALB用 OUT IPv4 すべてのトラフィック すべて すべて 0.0.0.0/0

エンドポイント設定

以下、エンドポイントをPrivateサブネットに設定する。

サービス名 エンドポイントタイプ
com.amazonaws.リージョン.ecr.dkr Interface
com.amazonaws.リージョン.logs Interface
com.amazonaws.リージョン.ecr.api Interface
com.amazonaws.リージョン.s3 Gateway

ALB設定

ダミーのターゲットグループを作成する。

  1. EC2ターゲットグループよりターゲットグループ作成画面に遷移する。
  2. 以下設定でターゲットグループを作成する。
  • IP addressを選択する。

  • VPCはECSを動かすために作成した対象のVPCを選択する。

  • 最終的にこのダミーターゲットグループは削除するためその他設定は適宜設定する。

ALBを作成する。

  1. EC2ロードバランサーよりロードバランサー作成画面に遷移する。
  2. 以下設定でロードバランサーを作成する。
  • ALBを選択する。
  • Schemeは'Internet-facing'でIPv4を選択する。
  • VPCはECSを動かすために作成した対象のVPCを選択し、privateサブネットを選択する。
  • セキュリティグループは上記で作成したものを選択する。
  • リスナーは上記で作成したダミーターゲットグループを選択する。

ECS Fargate設定

クラスタ作成

サービス作成

このスクラップは2023/04/08にクローズされました