内容は Quick Start: Fargate - UFO ECS Deploy Tool と同じ... なので、そちらを主として参照のこと
ゴール
リクエストが送られたら「42」と返答するサンプルアプリケーションをデプロイする
準備・前提
ufo
コマンドが使えるようになっている- AWS コマンドラインインターフェイス を見て、
aws
コマンドが使えるようになってる - Create ecsTaskExecutionRole with AWS CLI を見て ECS の操作用ロールを作成済み
- 認証エラーにならずに ECR に push できる状態になっている (【備忘録】AWS ECRにdocker pushした際にno basic auth credentialsとなった場合の解決方法)
- VPC を作成済み
- NOTE:
ufo init
時、 default VPC ID が設定されていないのが原因でエラーになる場合がある... のでaws ec2 describe-vpcs | jq .Vpcs[].VpcId
で ID を確認・選出してエラー文の指示に従う
- NOTE:
jq
コマンドが使える- tongueroo/demo-ufo を手元の環境に
git clone
してある
各コマンドの実行
あとは 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
で実際にリクエストを送信してみる
後片付け
ufo destroy
を実行して環境を削除する
Links
- Amazon ECR(Docker イメージの保存と取得)| AWS
- AWS Fargate(サーバーやクラスターの管理が不要なコンテナの使用)| AWS
- AWS コマンドラインインターフェイス(CLI: AWSサービスを管理する統合ツール)| AWS
- Amazon VPC とは? - Amazon Virtual Private Cloud
- AWS CLI の設定 - AWS Command Line Interface
- nathanpeck/awesome-ecs: A curated list of awesome ECS guides, development tools, and resources - GitHub
- tongueroo/demo-ufo: sinatra for ufo demo - GitHub
- jq: jq is a lightweight and flexible command-line JSON processor.
- 【備忘録】AWS ECRにdocker pushした際にno basic auth credentialsとなった場合の解決方法 - Qiita
- UFO ECS Deploy Tool
- Create ecsTaskExecutionRole with AWS CLI - UFO ECS Deploy Tool
- Quick Start: Fargate - UFO ECS Deploy Tool
- Task Definitions - UFO ECS Deploy Tool
- ufo tasks register - UFO ECS Deploy Tool