アキタイムズ

イベント参加レポと小ネタを中心に投稿しています。

他環境に展開・複製するのが楽なecspressoについて

はじめに

ecspressoのについてのQiita記事を何個か書いていますが、 記事にする程でもない、個人的に便利な点を記載します。

▼ecspressoについての記事はこちら

qiita.com

qiita.com

qiita.com

他環境に展開するのが楽

以下の書き換え位で他環境に展開出来てしまうのが推しポイント。

  • 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.jsonimageURI環境変数かSSMパラメータ参照などで動的に参照しておけるようにしておくと、リリース処理に組み込めたりして便利。

新規コンテナを検証する際にも便利

AWSマネジメントコンソール上からも、タスク定義についてはJSONをコピーして利用することは出来るが、
ecspressoだとサービスも含めて一気にecspresso deploy出来るので、殆ど同じ構成を複製する際に便利。

環境差分や、状態の可視化がしやすい

これも便利な点。
単にecspresso initで、ネットワークの定義を含めた比較がしやすい。
また、ecspresso diffで実際のECSの状態との比較が出来るのもGOOD。

AWS CDKを最近よく使っているが、cdk diffだとあくまで「手元のCDKコード」と「既に展開されているCloudFormationのコード」の差分比較なので、機能追加、修正の際には楽だけれども実際のリソースとの比較はCloudFormation上からドリフトの検出をしないといけないのが少々煩わしい点。