はじめに
ecspressoのについてのQiita記事を何個か書いていますが、 記事にする程でもない、個人的に便利な点を記載します。
▼ecspressoについての記事はこちら
他環境に展開するのが楽
以下の書き換え位で他環境に展開出来てしまうのが推しポイント。
- config.yaml
- cluster,service
- ecs-task-def.json
- family
- awslogs-group
- image
- executionRoleArn
- ecs-service-def.json
- SG
- TG
- subnets
コンテナはステートフルなリソースという事でIaC化しにくいが、デプロイ&緩くコード管理する上でecspressoは非常に役に立つ。
特にecs-task-def.json
のimageURI
を環境変数かSSMパラメータ参照などで動的に参照しておけるようにしておくと、リリース処理に組み込めたりして便利。
新規コンテナを検証する際にも便利
AWSマネジメントコンソール上からも、タスク定義についてはJSONをコピーして利用することは出来るが、
ecspressoだとサービスも含めて一気にecspresso deploy
出来るので、殆ど同じ構成を複製する際に便利。
環境差分や、状態の可視化がしやすい
これも便利な点。
単にecspresso init
で、ネットワークの定義を含めた比較がしやすい。
また、ecspresso diff
で実際のECSの状態との比較が出来るのもGOOD。
AWS CDKを最近よく使っているが、cdk diff
だとあくまで「手元のCDKコード」と「既に展開されているCloudFormationのコード」の差分比較なので、機能追加、修正の際には楽だけれども実際のリソースとの比較はCloudFormation上からドリフトの検出をしないといけないのが少々煩わしい点。