🥦

AWS Elastic BeanstalkのDeployment Policy

2022/08/27に公開

Beanstalk のデプロイ方式が多いので特徴を整理する。

各方式

  • All At Once
    • ダウンタイムが発生する
      • これ以外はしない
    • デプロイが一回なのでトータルでかかる時間は短い
  • Rolling
    • ダウンタイムはない
    • 更新中はインスタンス数が減る
  • RollingWithAdditionalBatch
    • 更新中にインスタンスを減らさないように同じ数が追加される
  • Immutable
    • 新しいバージョンが新しいインスタンスで動く
  • TrafficSplitting(2020 から)
    • Canary テストができる
    • あたらしい AutoScaling グループを作成する
    • Immutable に近い
    • 決められた割合のトラフィックを ELB から分割して本番での動作確認を行うのが違い

おまけ

  • Blue/Green デプロイ
    • 設定として存在するわけではない
    • 環境のクローンを作成し、 URL の Swap 機能を用いて切り替える
    • 新旧バージョンが混在する瞬間がない
    • 環境に互換性がないときに必要

参考

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
https://dev.classmethod.jp/articles/elastic-beanstalk-deploy-policy/
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html
https://zenn.dev/kenryo/scraps/a4aa0a9d872f1e
https://aws.amazon.com/jp/about-aws/whats-new/2020/05/aws-elastic-beanstalk-traffic-splitting-deployment-policy/

Discussion