「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 でやるよりも理解しやすく、 アドベントカレンダー にヒントもあるからとてもわかりやすいです。
もう少し使いこなせるように試していきたいと思います。