いけすの技術メモ

趣味開発etc.用の自己満ブログです

MENU

nginxのイメージをECRのリポジトリに登録してECSでデプロイするまで

f:id:IKDrocket:20210624003528p:plain

最近ECR、ECSまわりを触るようになったので、その流れを書き留めておく。

はじめに

ディレクトリ構成

nginx/
├── Dockerfile
└── content
    └── index.html

Dockerfile

FROM nginx

COPY content /usr/share/nginx/html

index.html

<!DOCTYPE HTML>
<html lang=”ja”>

<head>
    <title>Hello, World</title>
</head>

<body>
    <h1>Hello, World</h1>
</body>

</html>

local確認

$ docker run -p 80:80 -d --name nginx0 nginx-ecs

f:id:IKDrocket:20210623225358p:plain

後始末

$ docker stop nginx0
$ docker rm nginx0

ECRに登録するまで

ログイン

$ aws ecr get-login-password --region ap-northeast-1 --profile my_project | \
  docker login --username AWS --password-stdin {account_id}.dkr.ecr.ap-northeast-1.amazonaws.com

リポジトリ作成

$ aws ecr create-repository --repository-name nginx-ecs \ 
  --image-scanning-configuration scanOnPush=true \ 
  --region ap-northeast-1 --profile my_project

タグ付け

$ docker tag nginx-ecs:latest {account_id}.dkr.ecr.ap-northeast-1.amazonaws.com/nginx-ecs:latest

プッシュ

docker push {account_id}.dkr.ecr.ap-northeast-1.amazonaws.com/nginx-ecs:latest

イメージの存在確認

$ aws ecr list-images --repository-name nginx-ecs --region ap-northeast-1

ECSでデプロイするまで

クラスタ作成

f:id:IKDrocket:20210623231123p:plain

タスク作成

f:id:IKDrocket:20210623231604p:plain

f:id:IKDrocket:20210623231715p:plain

f:id:IKDrocket:20210623231921p:plain

タスクの実行

f:id:IKDrocket:20210624002926p:plain

f:id:IKDrocket:20210623235752p:plain

まとめ

後で見返してわかるか不安になっていたら、とてもわかり易いブログを見つけてしまったという落ち。 kleinblog.net