AWS Elastic Beanstalk
開発者ガイド

変更不可能な環境の更新

変更不可能な更新はローリング更新の代替手段です。変更不可能な環境の更新により、インスタンスの置換を必要とする構成変更が効率的かつ安全に適用されます。変更不可能な環境の更新に失敗した場合のロールバックプロセスは、Auto Scaling グループの終了のみです。しかし、ローリーング更新に失敗した場合は、追加のローリング更新を実行して変更を元に戻さなければなりません。

変更不可能な環境の更新を実行するには、Elastic Beanstalk で環境のロードバランサーの背後に 2 つ目の (一時的な) Auto Scaling グループを作成し、新しいインスタンスを含有させます。これにより、Elastic Beanstalk は新しいグループ内の新規設定で単一のインスタンスを起動します。このインスタンスは、以前の設定を実行している元の Auto Scaling グループの全インスタンスと共にトラフィックを処理します。

最初のインスタンスがヘルスチェックに合格すると、Elastic Beanstalk は元の Auto Scalingグループで実行しているインスタンスの数に一致する新しい設定で、追加のインスタンスを起動します。新しいインスタンスがすべてヘルスチェックに合格した場合、Elastic Beanstalk はこれらのインスタンスを元の Auto Scalingグループに転送し、一時 Auto Scaling グループと古いインスタンスを削除します。

注記

変更不可能な環境の更新中、新しい Auto Scaling グループ内のインスタンスがリクエスト処理を開始してから、元の Auto Scaling グループのインスタンスが削除されるまでの短い間、環境の容量が倍増します。環境内に多くのインスタンスがある場合、あるいはオンデマンド制限が低いインスタンスが存在する場合は、変更不可能な環境の更新を実行する上で必要な容量が十分あることを確認してください。オンデマンド制限の下限に近い場合は、代わりにローリング更新を行うことをお勧めします。

変更不可能な更新では、更新中に環境の状態を評価する拡張ヘルスレポートが必要となります。拡張ヘルスレポートは、ロードバランサーの標準ヘルスチェックと組み合わせることで、新しい設定を実行しているインスタンスがリクエスト処理を正しく実行していることを確認します。

また、ローリングデプロイを実行する代わりに、変更不可能な更新で新しいアプリケーションのバージョンをデプロイすることも可能です。変更不可能な更新でアプリケーションのデプロイを実行するよう Elastic Beanstalk を設定すると、新しいアプリケーションのバージョンをデプロイするたびに環境内にあるすべてのインスタンスが置き換えられます。変更不可能なアプリケーションの更新に失敗すると、Elastic Beanstalk は新しい Auto Scaling グループを終了して直ちに変更を元に戻します。これは、部分的なフリートのデプロイを防止するためです。部分的なフリートのデプロイは、一部のバッチしか終了していない状態でローリングデプロイに失敗すると発生します。

警告

インスタンスの置き換えが有効になっているマネージドプラットフォームの更新、変更不可能な更新、および変更不可能な更新が有効になっているデプロイの間、すべてのインスタンスが置き換えられます。これにより、累積したすべての Amazon EC2 バーストバランスが失われます。

変更不可能な更新に失敗した場合、Elastic Beanstalk がインスタンスを終了する前に、新しいインスタンスによりバンドルログが Amazon S3 にアップロードされます。Elastic Beanstalk では、失敗した更新のログを Amazon S3 に 1 時間保管してから削除します (バンドルログやログ末尾の場合は標準の 15 分)。

注記

変更不可能な更新で設定を適用せずにアプリケーションバージョンをデプロイした場合、ローリング更新をトリガーする設定の変更(インスタンスタイプの変更設定など)を含むアプリケーションバージョンをデプロイしようとするとエラーが生じる可能性があります。こうしたエラーを防ぐには、別の更新で設定を変更するか、デプロイと設定変更の両方に対して変更不可能な更新を設定します。

変更不可能な更新は、リソースの設定変更と共に実行することはできません。たとえば、他の設定を更新している間はインスタンス置換を必要とする設定を変更したり、設定やソースコード内の追加リソースを変更する設定ファイルと共に変更不可能なデプロイを実行することはできません。リソース設定(ロードバランサーの設定など)を変更し、変更不可能な更新を同時に実行すると、Elastic Beanstalk によりエラーが返されます。

ソースコードやインスタンス設定の変更に依存しないリソース設定の変更については、2 回に分けて更新します。依存する場合は、青/緑のデプロイを実行してください。

変更不可能な更新を設定する

変更不可能な更新は、Elastic Beanstalk コンソールで有効化、設定できます。

変更不可能な更新を有効にする(コンソール)

  1. Elastic Beanstalk コンソール を開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [Rolling updates and deployments] 設定カードで [Modify] を選択します。

  5. [Configuration Updates] セクションで [Rolling update type] を [Immutable] に設定します。

    
            [Modify rolling updates and deployments configuration] ページの [Configuration updates] セクション
  6. [Apply] を選択します。

aws:autoscaling:updatepolicy:rollingupdate 名前空間

aws:autoscaling:updatepolicy:rollingupdate名前空間にあるオプションを使用して変更不可能な更新を設定することも可能です。次の設定ファイルは、設定変更に対する変更不可能な更新を有効にします。

例 .ebextensions/immutable-updates.config

option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable

次の例は、設定変更とデプロイの両方に対する変更不可能な更新を有効にします。

例 .ebextensions/immutable-all.config

option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateType: Immutable aws:elasticbeanstalk:command: DeploymentPolicy: Immutable

EB CLI および Elastic Beanstalk コンソール は、上記のオプションの推奨値を適用します。設定ファイルを使用して同じファイルを設定する場合は、これらの設定を削除する必要があります。詳細については、「推奨値」を参照してください。