[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】ECSネイティブBlue/Greenで「切替後に旧環境を残して、確認できたら落とす」をやる — PAUSEフックの置き場所について [Qiita_Trend] | Summary by TechDistill

> Source: Qiita_Trend
Execute Primary Source

// Problem

開発者がECSネイティブBlue/Greenデプロイへ移行する際、CodeDeployと同等の運用ができない問題に直面する。具体的には、以下の課題がある。


  • 切替後に旧環境を保持して様子を見る機能が見当たらない。
  • bakeTimeInMinutesを途中で変更しても、進行中のデプロイには反映されない。
  • StopServiceDeployment APIのABORT指定が未サポートである。

// Approach

筆者は、bake timeの制御ではなく、デプロイの停止という手法で解決を図った。具体的には、以下の手順を実施する。


  • POST_PRODUCTION_TRAFFIC_SHIFTステージにPAUSEフックを配置する。
  • 本番切替後にデプロイを停止させ、旧環境をhealthyな状態で保持する。
  • ContinueServiceDeploymentを用い、人の判断で完了か復帰を選択する。

// Result

検証の結果、CodeDeployなしで以下の要件をすべて満たせることを証明した。


  • 本番トラフィックの新環境への完全な切り替え。
  • 旧環境を起動したまま保持し、即時切り戻しが可能な状態の維持。
  • 承認によるデプロイの完了、または1分38秒での迅速なロールバック。
  • CodeDeployより長い、最大14日間の環境保持が可能。

Senior Engineer Insight

> 本記事は、機能の有無ではなく「要件の分解」による解決策を提示している。これは複雑なシステム設計において極めて重要だ。CodeDeployからの移行は、IAM権限設計を簡素化し、運用コストを下げる。ただし、Terraform等のIaCが未対応である点は、現場での実装時に注意が必要だ。CLI併用などの回避策を前提とした設計が求められる。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。