変更不可能な環境の更新 - 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 コンソールを開き、[Regions] (リージョン) リストで AWS リージョンを選択します。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [Rolling updates and deployments (ローリング更新とデプロイ)] 設定カテゴリで [Edit (編集)] を選択します。

  5. [設定の更新] セクションで [ローリング更新のタイプ] を [Immutable (変更不可)] に設定します。

    
            [Modify rolling updates and deployments configuration] ページの [Configuration updates] セクション
  6. ページの最下部で [適用] を選択し変更を保存します。

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 コンソールでは、上記のオプションに推奨値が適用されます。設定ファイルを使用して同じファイルを設定する場合は、これらの設定を削除する必要があります。詳細については、「推奨値」を参照してください。