「OSS な ECS デプロイツール ecspresso に Deep Dive!」 を受講
ecspresso の概要がわかったので、動作を確認してみます。
動かしてみて、勉強会で聞いたときに想像したのと違うところの備忘録。
動かしてみた
IAM ユーザー作成
CLI を呼び出す用の IAM ユーザーを CloudFormation で作成。
MFA を設定すると AssumeRoleTokenProviderNotSetError がでて、回避方法がわからなかったので、MFA はなし。
この IAM ユーザーの API キーを発行して試していく。
AWSTemplateFormatVersion: 2010-09-09
Description: IAM
Resources:
IamUserDevECS:
Type: AWS::IAM::User
Properties:
UserName: devecs
Policies:
- PolicyName: DevECS
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- ecs:*
- ecr:*
- iam:PassRole
Resource: '*'
DeletionPolicy: Delete
init
$ ecspresso --config config.yaml init --cluster ecspresso-demo --service nginx-service
--config config.yaml の設定も必要。
init 時には、ここで設定したファイルに config 情報が出力される。
ゆえにこの時点では予め config.yaml ファイルを事前に準備しておく必要はない。
diff
$ ecspresso --config config.yaml diff
すべての差分がでるわけではない。
"desiredCount": 1, のタスク数などは対象外だったりする。
deploy --task
タスク数は deploy 時に引数で指定できる。
指定しない場合は、(差分としては表示されないが)ecs-service-def.json の desiredCount の値が反映される。
deploy --force-new-deployment
強制的にタスクを入れ替えるなら以下のコマンドで可能。
$ ecspresso --config config.yaml deploy --force-new-deployment
refresh コマンドが準備されているのでこちらのほうが適切と思われる。
verify
依存する各種リソースが利用可能かは verify コマンドで検証できる。
$ ecspresso --config config.yaml verify
このコマンドを利用する場合は、IAM 権限にログやロードバランサーへのアクセスも必要になるので、以下も許可する。
- logs:*
- elasticloadbalancing:DescribeTargetGroups
- iam:GetRole
所感
まだ簡単にしか触ってませんが、CFn や CLI でやるよりも理解しやすく、 アドベントカレンダー にヒントもあるからとてもわかりやすいです。
もう少し使いこなせるように試していきたいと思います。