新旧環境の混在
CodeDeployでEC2をBlueGreenでデプロイする際、
①新環境作成
②新環境にトラフィックを流す
③旧環境へのトラフィックをブロックする
となる為、②と③の間で一時的に新旧環境が混在する事となります。
そこでこの一時的な混在を最小限にするために行った設定について解説します。
ターゲットグループのヘルスチェック間隔の変更
- 新環境にトラフィックを流す
- 旧環境のトラフィックをブロックする
上記のイベントの際にヘルスチェックが実行され、成功すれば切り替わるという流れになっており、
その際にヘルスチェックの間隔が長く設定されているとそれだけ混在の時間も増える事になります。
その為、BlueGreeデプロイで対象となるターゲットグループのヘルスチェック間隔の変更を行います。
①コンソールでEC2の左側メニューの「ターゲットグループ」から対象のターゲットグループを選択
②「ヘルスチェック」タブから編集をクリック
③「ヘルスチェックの編集の設定」の画面内の[タイムアウト]を4秒、[間隔]を5秒とし変更内容を保存
※[タイムアウト]は[間隔]より小さく設定しなければエラーとなる
ヘルスチェック間隔変更後の確認
変更前(タイムアウト5秒、間隔30秒)
※新環境デプロイイベント一覧
※旧環境デプロイイベント一覧
変更後(タイムアウト4秒、間隔5秒)
※新環境デプロイイベント一覧
※旧環境デプロイイベント一覧
比較するとAllowTrafficとBlockTrafficがそれぞれ
変更前:1分2秒
変更後:17秒
と短縮されているのが確認出来ます。
最後に
ヘルスチェック間隔やタイムアウトは要件によって異なると思います。一概に小さく設定すれば良いという
訳ではないのでご注意を!
ヘルスチェック間隔とAllowTraffic、BlockTrafficの関連を確認し、要件にあった設定を行ってください。