omuronの備忘録

個人的な備忘録

ecspresso を試してみる

OSS な ECS デプロイツール ecspresso に Deep Dive!」 を受講

omuron.hateblo.jp

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

zenn.dev

タスク数は deploy 時に引数で指定できる。
指定しない場合は、(差分としては表示されないが)ecs-service-def.jsondesiredCount の値が反映される。

deploy --force-new-deployment

強制的にタスクを入れ替えるなら以下のコマンドで可能。

$ ecspresso --config config.yaml deploy --force-new-deployment

refresh コマンドが準備されているのでこちらのほうが適切と思われる。

zenn.dev

verify

依存する各種リソースが利用可能かは verify コマンドで検証できる。

$ ecspresso --config config.yaml verify

zenn.dev

このコマンドを利用する場合は、IAM 権限にログやロードバランサーへのアクセスも必要になるので、以下も許可する。

              - logs:*
              - elasticloadbalancing:DescribeTargetGroups
              - iam:GetRole

所感

まだ簡単にしか触ってませんが、CFn や CLI でやるよりも理解しやすく、 アドベントカレンダー にヒントもあるからとてもわかりやすいです。
もう少し使いこなせるように試していきたいと思います。