【DOP】CodeDeploy EC2のデプロイの設定について
概要
CodeDeployでEC2にデプロイする際に選択できるデプロイ設定
は以下の3つがあります。
- CodeDeployDefault.AllAtOnce
- CodeDeployDefault.HalfAtATime
- CodeDeployDefault.OneAtATime
また、デプロイタイプ
は以下2つを選択できます。
- インプレース
- 既存インスタンスにデプロイする。デプロイ中ダウンタイムが発生する。
- Blue/Green
- 既存環境を複製し、そこにデプロイする。ダウンタイムが発生しない。
- 複製環境にデプロイ完了後、トラフィックの向き先を既存から複製に切り替える。
それぞれの組み合わせによってデプロイの仕方が異なります。
CodeDeployDefault.AllAtOnce
インプレースの場合
一度に多くのインスタンスにデプロイを試みます。
複数あるインスタンスの内、1つでもデプロイに成功すると全体のデプロイ結果はSucceeded
になります。
複数あるインスタンスの内、全て失敗するとFailed
になります。
Blue/Greenの場合
複製環境へのデプロイはインプレースと同様に行われます。
トラフィックの向き先変更は、一度に全てのインスタンスに対して行われます。
複数あるインスタンスの内、1つでもトラフィック先変更に成功すると全体のデプロイ結果はSucceeded
になります。
複数あるインスタンスの内、全て失敗するとFailed
になります。
CodeDeployDefault.HalfAtATime
インプレースの場合
一度に最大半分のインスタンスにデプロイを試みます。端数がある場合切り捨てられます。
デプロイ全体で半分のインスタンスへのデプロイに成功するとSucceeded
になります。
それ未満の場合、Failed
になります。
Blue/Greenの場合
複製環境へのデプロイはインプレースと同様に行われます。
トラフィックの向き先変更は、一度に最大半分のインスタンスに対して行われます。
全体インスタンスの内、半分以上トラフィック先変更に成功すると全体のデプロイ結果はSucceeded
になります。
それ未満の場合、Failed
になります。
CodeDeployDefault.OneAtATime
インプレースの場合
一度に一つのインスタンスにデプロイを試みます。
複数あるインスタンスの内、最後の1つを除く全インスタンスへのデプロイに成功するとSucceeded
になります。(最後のインスタンスへのデプロイに失敗しても、残りが全て成功すればSucceeded
になります)
最後の1つを除くインスタンスの内1つでもデプロイに失敗した場合、Failed
になります。
Blue/Greenの場合
複製環境へのデプロイはインプレースと同様に行われます。
トラフィックの向き先変更は、一度に一つのインスタンスに対して行われます。
複数あるインスタンスの内、最後の1つを除く全インスタンスへのトラフィック先変更に成功すると全体のデプロイ結果はSucceeded
になります。
最後の1つを除くインスタンスの内1つでも失敗した場合、Failed
になります。