ブログ

読んで思い出す。忘れるために書く

ufo コマンドで AWS Fargate にコンテナ化したアプリケーションをデプロイする

内容は Quick Start: Fargate - UFO ECS Deploy Tool と同じ... なので、そちらを主として参照のこと

ゴール

リクエストが送られたら「42」と返答するサンプルアプリケーションをデプロイする

準備・前提

各コマンドの実行

あとは Quick Start に沿って、コマンドを実行する

# git clone したサンプルアプリケーションのディレクトリに移動 (値は自環境に合わせて読み替える)
cd $DEMO_UFO_DIRECTORY

# 自分の AWS アカウント番号を控える
AWS_ACCOUNT=$(aws sts get-caller-identity | jq -r '.Account')

# コンテナ (= サンプルアプリケーション) を保存・管理するリポジトリの作成
aws ecr create-repository --repository-name demo/sinatra

# デプロイのためリポジトリの URL を控える
ECR_REPO=$(aws ecr describe-repositories --repository-name demo/sinatra | jq -r '.repositories[].repositoryUri')

# 予め控えておいた情報をもとに、ufo プロジェクトを初期化
ufo init --image $ECR_REPO --launch-type fargate --execution-role-arn arn:aws:iam::$AWS_ACCOUNT:role/ecsTaskExecutionRole

# 操作対象とするサービスを設定することで、各 ufo コマンドでのサービス名指定を省略
ufo current --service demo-web

ufo ship # アプリケーションをデプロイ

# (...実行完了までしばらく待つ...)

状況・動作確認

あとは ufo ps でプロセスの動作状況を確認、動いていれば curl で実際にリクエストを送信してみる

f:id:innocent-zero:20190726003511p:plain
Fargate に無事アプリケーションがデプロイされた様子
f:id:innocent-zero:20190726003623p:plain
サンプルアプリケーションにリクエストを送信して、期待通り「42」が返ってきた様子

後片付け

ufo destroy を実行して環境を削除する

Links