マネージドプラットフォーム更新 - AWS Elastic Beanstalk

マネージドプラットフォーム更新

AWS Elastic Beanstalk は定期的にプラットフォームの更新をリリースし、修正やソフトウェア更新、新機能を提供しています。マネージドプラットフォーム更新機能により、予定済みのメンテナンス期間中に、環境を自動的に最新バージョンのプラットフォームに更新できます。更新プロセス中も、アプリケーションは能力を低減させることなく稼動状態に保たれます。マネージド更新は、単一インスタンス環境とロードバランシング環境の両方で利用できます。

注記

この機能は、バージョン 2 (v2) 以前の Windows Server プラットフォームバージョンでは使用できません。

環境に、自動的にパッチバージョンの更新またはパッチとマイナーバージョンの更新の両方を適用するよう設定できます。マネージドプラットフォームの更新では、プラットフォームブランチ全体にわたる更新 (オペレーティングシステム、ランタイム、Elastic Beanstalk コンポーネントなどのプラットフォームコンポーネントの異なるメジャーバージョンへの更新) はサポートされません。これは、下位互換性のない変更が導入される可能性があるためです。

プラットフォーム更新が利用できない場合でもメンテナンス期間中に環境のすべてのインスタンスを置換するよう Elastic Beanstalk を設定できます。環境にあるすべてのインスタンスを置換することは、アプリケーションを長期的に稼働させる際に際に発生するバグやメモリ問題の解決に有効です。

Elastic Beanstalk コンソールを使用して 2019 年 11 月 25 日以降に作成された環境では、管理アップデートは可能な限りデフォルトで有効になります。管理された更新を有効にするには、拡張ヘルスが必要です。拡張ヘルスは、設定プリセットの 1 つを選択するとデフォルトで有効になり、[Custom configuration (カスタム設定)] を選択すると無効になります。拡張ヘルスをサポートしていない古いバージョンのプラットフォームの場合、または拡張ヘルスが無効になっている場合は、コンソールは管理された更新を有効にできません。コンソールで新しい環境で管理された更新を有効にすると、[Weekly update window (週次更新ウィンドウ)] はランダムな時刻にランダムな曜日に設定されます。[Update level (更新レベル)] が [Minor and patch (マイナーおよびパッチ)] に設定され、[Instance replacement (インスタンスの置き換え)] が無効になります。最終的な環境作成ステップの前に、管理された更新を無効化または再設定できます。

既存の環境の場合は、いつでも Elastic Beanstalk コンソールを使用して、マネージドプラットフォームの更新を設定します。

マネージドプラットフォームの更新を設定するには

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

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

    注記

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

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

  4. [管理された更新] カテゴリで、[編集] を選択します。

  5. [Managed updates (管理された更新)] を無効または有効にします。

  6. 管理された更新が有効になっている場合は、メンテナンスウィンドウを選択し、[Update level (更新レベル)] を選択します。

  7. (オプション) [Instance replacement (インスタンスの置換)] を選択して毎週のインスタンス置換を有効にします。

    
          管理された更新の設定ページの変更
  8. [Apply] を選択します。

マネージドプラットフォーム更新において、アプリケーションが正常でプラットフォーム更新が問題なく実行されたかどうかの判断は、拡張ヘルスレポートに依存しています。手順については、「Elastic Beanstalk 拡張ヘルスレポートの有効化」を参照してください。

マネージドプラットフォーム更新を実行するために必要なアクセス許可

Elastic Beanstalk には、ユーザーに代わりプラットフォーム更新を実行するための権限が必要です。これらのアクセス許可を得るために、Elastic Beanstalk では マネージド更新サービスロールが使用されます。環境に対してデフォルトのサービスロールを使用すると、Elastic Beanstalk コンソールではマネージド更新サービスロールとしても使用されます。コンソールによって、AWSElasticBeanstalkService マネージドポリシーがサービスロールに割り当てられます。このポリシーには、マネージドプラットフォーム更新を実行するために Elastic Beanstalk が必要とするすべてのアクセス許可が含まれています。

マネージド更新サービスロールを設定するその他の方法の詳細については、「Elastic Beanstalk サービスロールを管理する」を参照してください。

注記

追加のリソースを含めるために環境を拡張する設定ファイルを使用している場合は、環境のマネージド更新サービスロールにアクセス許可を追加する必要があります。通常、他のセクションまたはファイルでこれらのリソースを名前で参照する場合、権限を追加する必要があります。

更新に失敗した場合、失敗の理由は [マネージド更新] ページで確認できます。

マネージド更新のメンテナンス期間

AWS が環境のプラットフォームの新しいバージョンをリリースすると、Elastic Beanstalk は次回の毎週のメンテナンス期間中におけるマネージドプラットフォームの更新をスケジュール設定します。メンテナンス期間は 2 時間です。Elastic Beanstalk は、メンテナンス期間中にスケジュールされた更新を開始します。更新はこの期間が終了するまで完了しない場合があります。

注記

ほとんどの場合、Elastic Beanstalk は翌週のメンテナンス期間中に管理された更新が実行されるようスケジュールします。このシステムは、管理された更新のスケジュールにおいて更新の安全性およびサービスの可用性に関するさまざまな側面を考慮します。まれに、初めてのメンテナンス期間には更新がスケジュールされないことがあります。この状態が発生した場合、システムは次のメンテナンス期間中に再度試行します。管理された更新を手動で適用するには、このページの「マネージド更新の管理」で説明するように、[Apply now (今すぐ適用)] を選択します。

マイナーバージョンとパッチバージョンの更新

マネージドプラットフォーム更新がパッチバージョンの更新のみ、またはマイナーバージョンとパッチバージョンの更新の両方に適用されるよう設定できます。パッチバージョンの更新には、バグ修正およびパフォーマンスの改善点をはじめ、インスタンス上のソフトウェアやスクリプト、設定オプションに対するマイナーな変更点も含まれる可能性があります。マイナーバージョンの更新では、Elastic Beanstalk の新機能へのサポートを提供します。マネージドプラットフォーム更新で、後方互換性のない変更を行うメジャーバージョンの更新を適用することはできません。

プラットフォームのバージョン番号で、2 番目の数はマイナーバージョンの更新、3 番目の数はパッチバージョンの更新を意味します。たとえば、バージョン 2.0.7 プラットフォームの場合、マイナーバージョンは 0、パッチバージョンは 7 です。

変更不可能な環境の更新

マネージドプラットフォーム更新は、変更不可能な環境の更新を実行し、環境を新しいプラットフォームバージョンにアップグレードします。変更不可能な更新によって、新しいバージョンを実行しているインスタンスがヘルスチェックにパスしたかどうかを確認する前に、インスタンスをサービス停止状態にしたり、変更を加えることもなく環境を更新します。

変更不可能な更新では、Elastic Beanstalk は新しいプラットフォームバージョンで現在実行しているインスタンスと同数のインスタンスをデプロイします。新しいインスタンスは、古いバージョンを起動しているインスタンスとともにリクエスト取得を開始します。新しいインスタンスセットがすべてのヘルスチェックに合格すると、Elastic Beanstalk は新しいバージョンのインスタンスのみを残して、古いインスタンスセットを終了させます。

マネージドプラットフォーム更新は、メンテナンス期間外に適用したとしても、常に変更不可能な更新を実行します。[ダッシュボード] からプラットフォームのバージョンを変更すると、Elastic Beanstalk は設定更新のために選択した更新ポリシーを適用します。

警告

一部のポリシーでは、デプロイ時または更新時にすべてのインスタンスが置き換えられます。これにより、累積したすべての Amazon EC2 バーストバランスが失われます。次の場合に発生します。

  • インスタンスの置換を有効にしたマネージドプラットフォームの更新

  • イミュータブルな更新

  • イミュータブルな更新またはトラフィック分割を有効にしたデプロイ

マネージド更新の管理

Elastic Beanstalk コンソールには、[管理された更新の概要] ページの管理された更新に関する詳細情報が表示されます。

マネージド更新(コンソール)に関する情報を表示するには

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

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

    注記

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

  3. [管理された更新] を選択します。

[マネージド更新の概要] セクションは、予定済みおよび保留中のマネージド更新に関する情報を提供します。[History] セクションには、成功および失敗した更新がリストされます。

予定済みの更新を、メンテナンス期間を待つことなく、即座に適用する選択が可能です。

マネージドプラットフォーム更新(コンソール)を即座に適用するには

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

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

    注記

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

  3. [管理された更新] を選択します。

  4. [Apply] を選択します。

  5. 更新の詳細を確認し、[適用] を選択します。

マネージドプラットフォーム更新をメンテナンス期間外に適用すると、Elastic Beanstalk は変更不可能な更新を実行します。環境のプラットフォームをダッシュボードまたは他のクライアントを使って更新すると、Elastic Beanstalk は設定の変更のために選択した更新タイプを使用します。

予定されたマネージド更新がない場合は、環境がすでに最新バージョンを実行している可能性があります。予定された更新がないその他の理由は、次のとおりです。

  • マイナーバージョン更新が利用可能であるが、環境は自動的にパッチバージョン更新のみを適用するよう設定されている。

  • 環境が更新のリリース以後、スキャンされていない。Elastic Beanstalk は通常、1 時間ごとに更新を確認する。

  • 更新が保留中またはすでに進行中である。

メンテナンス期間が開始されている、または [今すぐ適用] が選択されており、予定された更新が実行前に保留状態になっている。

マネージドアクションオプションの名前空間

aws:elasticbeanstalk:managedactions および aws:elasticbeanstalk:managedactions:platformupdate 名前空間にある設定オプションを使って、マネージドプラットフォーム更新を有効化し、設定できます。

ManagedActionsEnabled オプションは、マネージドプラットフォーム更新をオンにします。このオプションを true に設定するとマネージドプラットフォーム更新が有効になり、他のオプションを使用すると更新動作を設定できます。

PreferredStartTime を使用して毎週のメンテナンス期間の開始時刻を、:時間:形式で設定します。

UpdateLevelminor または patch に設定すると、マイナーおよびパッチバージョン更新の両方、あるいはパッチバージョンの更新のみを適用するようそれぞれ設定できます。

マネージドプラットフォーム更新を有効にしている場合、InstanceRefreshEnabled オプションを true に設定することでインスタンス置換も有効にできます。この設定が有効になっている場合、プラットフォームの新しいバージョンが利用可能かどうかに関係なく、Elastic Beanstalk は毎週環境に対する変更不可能な更新を実行します。

次の例は、毎週火曜日の午前 9 時 (UTC) にメンテナンス期間が開始され、パッチバージョン更新がマネージドプラットフォーム更新で有効化されることを示す、設定ファイルです。

例 .ebextensions/managed-platform-update.config

option_settings: aws:elasticbeanstalk:managedactions: ManagedActionsEnabled: true PreferredStartTime: "Tue:09:00" aws:elasticbeanstalk:managedactions:platformupdate: UpdateLevel: patch InstanceRefreshEnabled: true