Closed2
ECSの記事を書く
dockerファイル作成手順
CodeCommitでリポジトリを作成
手順は省略
ECRリポジトリ作成
手順は省略
WEBコンテンツの準備とDockerイメージの作成
- Cloud9にAWSコンソールからアクセスする。
- CodeCommitのリポジトリをCloneする。
$ git clone https://git-codecommit.<リージョン名>.com/v1/repos/リポジトリ名
- Cloneしたディレクトリ内に以下ファイルを作成する。
- 作成したファイルを以下のように編集する。
- 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);
- 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
- 作成したソースをCodeCommitにpushする。
(あまりよくないがテストなのでmasterに直接pushする。)
git add .
git commit -m "コメント"
git push origin master
- 作成した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設定
ダミーのターゲットグループを作成する。
-
EC2
→ターゲットグループ
よりターゲットグループ作成画面に遷移する。 - 以下設定でターゲットグループを作成する。
-
IP addressを選択する。
-
VPCはECSを動かすために作成した対象のVPCを選択する。
-
最終的にこのダミーターゲットグループは削除するためその他設定は適宜設定する。
ALBを作成する。
-
EC2
→ロードバランサー
よりロードバランサー作成画面に遷移する。 - 以下設定でロードバランサーを作成する。
- ALBを選択する。
- Schemeは'Internet-facing'でIPv4を選択する。
- VPCはECSを動かすために作成した対象のVPCを選択し、privateサブネットを選択する。
- セキュリティグループは上記で作成したものを選択する。
- リスナーは上記で作成したダミーターゲットグループを選択する。
ECS Fargate設定
クラスタ作成
サービス作成
このスクラップは2023/04/08にクローズされました