はじめに
コンテナデプロイツールであるecspressoですが、ecspresso v2が昨年末にリリースされました!
ecspresso handbookでも紹介されているecspresso v1とv2の変更点の中でも、今回はSSMパラメータストア参照を利用しました。
https://zenn.dev/fujiwara/books/ecspresso-handbook-v2/viewer/v1-v2
何のために利用したか?
ECSのログコンテナ用fluent-bitのイメージですが、
- 検証環境で
stableタグ指定で運用し、ログ転送に問題が無いかをテスト- 具体的には
public.ecr.aws/aws-observability/aws-for-fluent-bit:stableの形で指定 
 - 具体的には
 - ログ転送に問題が無い場合、動作環境用のSSMパラメータストアの値を
stableタグのイメージURIに変更 - ecspressoで動作環境にデプロイする際に、SSMパラメータストアのfluent-bitの新規イメージURIを取得し、デプロイ
 
といった形式をとる事で、お手軽に実現可能なfluent-bitのバージョンアップの仕組みを構築しました。
ecspressoを元々デプロイ時に利用している事もあり、今回のアップデートは非常に助かりました!
パラメータの作成
- 以下の形でパラメータを作成します。
 
ecspressoの設定ファイルにSSMを利用する為の設定を追記
- 
ecspresso.ymlにssmについての設定を追記します。 
ecspresso.yml
region: ap-northeast-1
cluster: cluster-name
service: service-name
service_definition: ecs-service-def.json
task_definition: ecs-task-def.json
timeout: "10m0s"
plugins:
  - name: ssm
- 
ecs-taskdef.jsonのlogrouterコンテナのimage指定をSSMパラメータストア参照に変更 
ecs-taskdef.json
"image": "{{ ssm `/ecs/log-agent/fluent-bit-image-uri` }}"
デプロイ実行用のIAMロールの記載
- 以下ポリシーをecspressoでのデプロイ実行用IAMロールへと付与します。
 
Policy
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:Get*"
            ],
            "Resource": "arn:aws:ssm:XXXXXXXXXX:XXXXXXXXXX:parameter/ecs/log-agent/fluent-bit-image-uri"
        }
    ]
}
おわりに
- SSMパラメータストア参照&ecspressoのおかげで、便利にログコンテナのバージョン管理が出来そうです。
 
