LoginSignup
0
0

More than 1 year has passed since last update.

ECSでコンテナ実行メモ その3

Posted at

概要

前回の記事の段階ではうまくいかなかったのがどうにかECS上でコンテナを動かすことができたのでその流れをまとめます。

Dockerimageの準備

Dockerのイメージを準備します。

  • resize.shを実行します。こちらから取得します。引数でサイズを指定します。今回は20GiBで実施しました。

  • サンプルとするアプリを取得します

git clone https://github.com/docker/getting-started.git
  • Dockerfileを作成します。
pushd getting-started/app
touch Dockerfile
vi Dockerfile
  • Dockerfileの中身は以下のようにします。
# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
  • Docker imageのビルドを行います。またコンテナの動作を確認します。(コンテナの動作確認は実施しなくても構いません)
docker image build -t docker-sample:v1 .
docker run -dp 8080:3000 docker-sample:v1
  • ECRにリポジトリを作成します。手順等は以前の記事を参照してください。ここではdocker-sampleという名前で作成しています。

  • 以下のコマンドでコンテナのイメージをECRにpushします。

AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)

docker image tag docker-sample:v1 ${AWS_ACCOUNT_ID}.dkr.ecr.ap-northeast-1.amazonaws.com/docker-sample:v1

aws ecr --region ap-northeast-1 get-login-password | docker login --username AWS --password-stdin https://${AWS_ACCOUNT_ID}.dkr.ecr.ap-northeast-1.amazonaws.com/docker-sample

docker image push ${AWS_ACCOUNT_ID}.dkr.ecr.ap-northeast-1.amazonaws.com/docker-sample:v1

セキュリティグループの準備

  • 今回のアプリはポート3000でアクセスするためセキュリティグループのインバウンドにアクセスできるように設定を行います。

タスク定義登録

  • まずタスク定義を登録します。FARGATEを指定します。

タスク定義.png

  • コンテナの追加を選択してイメージは前述のECRのイメージのURIを指定します。コンテナポートはここでは 3000 にしていますす。
    コンテナ1.png

  • タスクの定義は 画像のように設定してい行きます。
    タスク定義_1.png
    タスク定義_2.png

クラスターの作成

  • ネットワーキングのみ を選択します。 クラスター_1.png クラスター_2.png

タスクの作成

  • 最後にタスクを実行します。起動タイプは FARGATE を選択します。 VPCは作成済みのVPCを指定しています。サブネットも同様です。本来ならここでMulti-AZになるように複数サブネットを指定します。セキュリティグループは前述の段階で作成したセキュリティグループを使用します。ここで作成しても問題ありません。 ロードバランサーは使っていないためパブリックIPの自動割り当てを ENABLED を指定します。 タスク_1.png タスク_2.png

タスク_3.png
* 実行に成功すると以下のように RUNNING の表示に代わります。
タスク_4.png

動作確認

  • タスクの詳細画面からパブリックIPを確認します。
    タスク_5.png

  • 確認したIPアドレスに :3000 を追加することで以下のようにアクセスすることができます。
    完成画面.png

最後に

こちらの記事を参考に実施することで無事ECRにpushしたコンテナを動かすことができました。
本来であればロードバランサーなどを使ってのアクセスなどを行うところですがひとまずはECSでコンテナを動かすことに成功しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0