インスタンスの更新の開始 - Amazon EC2 Auto Scaling

インスタンスの更新の開始

重要

進行中のインスタンスの更新をロールバックし、すべての変更を元に戻すことができます。これが実行されるには、インスタンスの更新を開始する前に、Auto Scaling グループがロールバックを使用するための前提条件を満たす必要があります。詳細については、「ロールバックで変更の取り消し」を参照してください。

以下の手順は、AWS Management Console または AWS CLI を使用してインスタンスの更新を開始するのに役立ちます。

インスタンスの更新の開始 (コンソール)

初めてインスタンスの更新を開始する場合は、コンソールにより、利用できる機能とオプションを理解することができます。

Auto Scaling グループの混合インスタンスポリシーを事前定義していない場合は、次の手順に従います。混合インスタンスポリシーを事前定義している場合は、コンソールでインスタンスの更新を開始する (混合インスタンスグループ) を参照してインスタンスの更新を開始します。

インスタンスの更新をスタートするには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    Auto Scaling グループページの下部に分割ペインが開きます。

  3. [Instance refresh] (インスタンスの更新) タブの [Active instance refresh] (アクティブインスタンスの更新) で、[Start instance refresh] (インスタンスの更新を開始する) を選択します。

  4. [Minimum healthy percentage] (最小正常率) で、インスタンスの更新中に正常な状態を維持する必要がある Auto Scaling グループの割合を入力します。最小正常率を 100% に設定すると、置き換え率が一度に 1 つのインスタンスに制限されます。対照的に、0% に設定するとすべてのインスタンスが同時に置き換えられます。

  5. [インスタンスのウォームアップ] には、新しいインスタンスの状態が InService に変更されてから初期化が完了するまでの秒数を入力します。Amazon EC2 Auto Scaling は、次のインスタンスを置き換える前にこの時間を待機します。

    ウォームアップ中、新しく起動されたインスタンスは Auto Scaling グループの (CPUUtilizationNetworkInNetworkOut など) 集計インスタンスのメトリクスにも計上されません。Auto Scaling グループにスケーリング ポリシーを追加した場合、スケーリングアクティビティは並行して実行されます。インスタンスの更新のウォームアップ期間に長い間隔を設定する場合、新しく起動されたインスタンスがメトリクスに表示されるまでに時間がかかります。このため、適切なウォームアップ期間によって、Amazon EC2 Auto Scaling が古いメトリクスデータに基づいてスケーリングしないようにすることができます。

    Auto Scaling グループにデフォルトのインスタンスのウォームアップを既に正しく定義している場合、インスタンスのウォームアップを変更する必要はありません。ただし、デフォルトをオーバーライドできます。デフォルトのインスタンスのウォームアップにおける設定の詳細については、「Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する」を参照してください。

  6. (オプション) [Checkpoints] (チェックポイント) で [Enable checkpoints] (チェックポイントを有効にする) を選択し、インスタンスの更新に増分または段階的なアプローチを使用するインスタンスを置換します。これにより、置換セット間の検証にさらに時間がかかります。チェックポイントの有効化を選択しない場合、インスタンスはほぼ連続した 1 回のオペレーションで置換されます。

    チェックポイントを有効にする場合は、追加ステップ チェックポイントを有効にする (コンソール) を参照してください。

  7. スキップマッチングを有効または無効にする:

    • 起動テンプレートに既に一致しているインスタンスの置き換えをスキップするには、[スキップマッチングを有効にする] のチェックボックスをオンのままにします。

    • このチェックボックスをオフにしてスキップマッチングを無効にすると、すべてのインスタンスを置換することができます。

    スキップマッチングを有効にすると、既存の起動テンプレートを使用する代わりに、新しい起動テンプレートまたは起動テンプレートの新しいバージョンを設定できます。これは、[インスタンスの更新を開始] ページの [必要な設定] セクションで行います。

    注記

    スキップマッチング機能を使用して、現在起動設定を使用している Auto Scaling グループを更新するには、希望する設定で起動テンプレートを選択する必要があります。起動設定でのスキップマッチングはサポートされていません。

  8. [スタンバイインスタンス] の場合、[無視][終了][待機] のいずれかを選択します。これにより、インスタンスが Standby 状態で見つかった場合の処理が決まります。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。

    [待機] を選択する場合、これらのインスタンスをサービスに戻すために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新がすべての InService インスタンスを置き換えて 1 時間待機します。次に、Standby インスタンスが残っていると、インスタンスの更新は失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して [無視] または [終了] を選択してください。

  9. [スケールインで保護されたインスタンス] の場合、[無視][置換][待機] のいずれかを選択します。これにより、スケールインで保護されたインスタンスが見つかった場合の処理が決まります。詳細については、「インスタンスのスケールイン保護を使用する」を参照してください。

    [待機] を選択する場合、これらのインスタンスからスケールイン保護を解除するために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新は保護されていないすべてのインスタンスを置き換えて 1 時間待機します。次に、スケールインで保護されたインスタンスが残っている場合、インスタンスの更新が失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して [無視] または [置き換え] を選択してください。

  10. (オプション) CloudWatch アラームで、[CloudWatch アラームを有効にする]を選択し、1 つ以上のアラームを選択します。CloudWatch アラームを使用すると、問題を特定し、アラームが ALARM 状態になったときにオペレーションを失敗させることができます。詳細については、「自動ロールバックでインスタンスの更新を開始」を参照してください。

  11. (オプション) [必要な設定] セクションを拡張し、Auto Scaling グループに実行する更新を指定します。

    このステップでは、コンソールインターフェイスで選択する代わりに、JSON または YAML 構文を使用してパラメータ値を編集するように選択できます。このためには、[Use console interface] (コンソールインターフェイスを使用する) の代わりに[Use code editor] (コードエディタを使用する) を選択します。以下の手順では、コンソールインターフェイスを使用して選択する方法について説明します。

    1. 起動テンプレートを更新する場合:

      • Auto Scaling グループの新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成していない場合、このチェックボックスをオンにしないでください。

      • 新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成した場合、このチェックボックスをオンにします。このオプションを選択すると、Amazon EC2 Auto Scaling が現在の起動テンプレートおよび現在の起動テンプレートバージョンを表示します。他の利用可能なバージョンもすべて確認できます。起動テンプレートを選択し、バージョンを選択します。

        バージョンを選択すると、バージョン情報が表示されます。これは、インスタンスの更新の一部としてインスタンスを置換するときに使用される起動テンプレートのバージョンです。インスタンスの更新に成功すると、グループのスケール時など、新しいインスタンスが起動するたびに起動テンプレートのこのバージョンが使用されます。

    2. インスタンスタイプと購入オプションのセットを選択して、起動テンプレートのインスタンスタイプを上書きする場合:

      • 起動テンプレートで指定したインスタンスタイプおよび購入オプションを使用する場合、このチェックボックスをオンにしないでください。

      • 起動テンプレートのインスタンスタイプをオーバーライドまたはスポットインスタンスを実行する場合、このチェックボックスをオンにします。各インスタンスタイプを手動で追加するか、プライマリインスタンスタイプおよび一致する追加のインスタンスタイプを取得する推奨オプションを選択できます。スポットインスタンスを起動する予定がある場合は、いくつかの異なるインスタンスタイプを追加することをお勧めします。そうすることで、選択したアベイラビリティーゾーンに十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は別のインスタンスタイプを起動できます。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ」を参照してください。

        警告

        スポットインスタンスの中断を処理できないアプリケーションにはスポットインスタンスを使用しないでください。Amazon EC2 スポットサービスがキャパシティを回収する必要がある場合、中断が発生する可能性があります。

      このチェックボックスをオンにした場合は、起動テンプレートがまだスポットインスタンスをリクエストしていないことを確認してください。複数のインスタンスタイプを使用し、スポットインスタンスとオンデマンドインスタンスを起動する Auto Scaling グループを作成するため、スポットインスタンスをリクエストする起動テンプレートを使用することはできません。

      注記

      現在起動設定を使用している Auto Scaling グループでこれらのオプションを設定するには、起動テンプレートの更新で起動テンプレートを選択する必要があります。起動設定のインスタンスタイプの上書きはサポートされていません。

  12. (オプション) [ロールバック設定][自動ロールバックを有効にする] を選択すると、インスタンスの更新が失敗した場合に自動的にロールバックされます。

    Auto Scaling グループがロールバックを使用する前提条件を満たしていない場合、この設定は有効にできません。

    詳細については、「ロールバックで変更の取り消し」を参照してください。

  13. すべての選択内容を見直し、正しく設定されていることを確認します。

    現在の設定と提案された変更の違いが、想定外または望ましくない形でアプリケーションに影響を及ぼさないよう、この時点で確認することをお勧めします。インスタンスタイプが起動テンプレートと互換性があることを確認するには、「インスタンスタイプの互換性」を参照してください。

  14. インスタンス更新の選択内容が正しい場合は、[インスタンスの更新の開始]  を選択します。

混合インスタンスポリシーで Auto Scaling グループを作成した場合は、次の手順に従います。グループに混合インスタンスポリシーをまだ定義していない場合は、コンソールでインスタンスの更新を開始する (基本的な手順) を参照してインスタンスの更新を開始します。

インスタンスの更新をスタートするには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    Auto Scaling グループページの下部に分割ペインが開きます。

  3. [Instance refresh] (インスタンスの更新) タブの [Active instance refresh] (アクティブインスタンスの更新) で、[Start instance refresh] (インスタンスの更新を開始する) を選択します。

  4. [Minimum healthy percentage] (最小正常率) で、インスタンスの更新中に正常な状態を維持する必要がある Auto Scaling グループの割合を入力します。最小正常率を 100% に設定すると、置き換え率が一度に 1 つのインスタンスに制限されます。対照的に、0% に設定するとすべてのインスタンスが同時に置き換えられます。

  5. [インスタンスのウォームアップ] には、新しいインスタンスの状態が InService に変更されてから初期化が完了するまでの秒数を入力します。Amazon EC2 Auto Scaling は、次のインスタンスを置き換える前にこの時間を待機します。

    ウォームアップ中、新しく起動されたインスタンスは Auto Scaling グループの (CPUUtilizationNetworkInNetworkOut など) 集計インスタンスのメトリクスにも計上されません。Auto Scaling グループにスケーリング ポリシーを追加した場合、スケーリングアクティビティは並行して実行されます。インスタンスの更新のウォームアップ期間に長い間隔を設定する場合、新しく起動されたインスタンスがメトリクスに表示されるまでに時間がかかります。このため、適切なウォームアップ期間によって、Amazon EC2 Auto Scaling が古いメトリクスデータに基づいてスケーリングしないようにすることができます。

    Auto Scaling グループのデフォルトのインスタンスウォームアップを既に正しく定義している場合、インスタンスのウォームアップ (デフォルトをオーバーライドする場合を除く) を変更する必要はありません。デフォルトのインスタンスのウォームアップにおける設定の詳細については、「Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する」を参照してください。

  6. (オプション) [Checkpoints] (チェックポイント) で [Enable checkpoints] (チェックポイントを有効にする) を選択し、インスタンスの更新に増分または段階的なアプローチを使用するインスタンスを置換します。これにより、置換セット間の検証にさらに時間がかかります。チェックポイントの有効化を選択しない場合、インスタンスはほぼ連続した 1 回のオペレーションで置換されます。

    チェックポイントを有効にする場合は、追加ステップ チェックポイントを有効にする (コンソール) を参照してください。

  7. スキップマッチングを有効または無効にする:

    • 起動テンプレートと既に一致しているインスタンスの置き換えおよびすべてのインスタンスタイプのオーバーライドをスキップするには、[スキップマッチングを有効にする] チェックボックスをオンのままにします。

    • このチェックボックスをオフにしてスキップマッチングを無効にすると、すべてのインスタンスを置換することができます。

    スキップマッチングを有効にすると、既存の起動テンプレートを使用する代わりに、新しい起動テンプレートまたは起動テンプレートの新しいバージョンを設定できます。これは、[インスタンスの更新を開始] ページの [必要な設定] セクションで行います。

  8. [スタンバイインスタンス] の場合、[無視][終了][待機] のいずれかを選択します。これにより、インスタンスが Standby 状態で見つかった場合の処理が決まります。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。

    [待機] を選択する場合、これらのインスタンスをサービスに戻すために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新はすべての InService インスタンスを置き換えて 1 時間待機します。次に、Standby インスタンスが残っていると、インスタンスの更新は失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して [無視] または [終了] を選択してください。

  9. [スケールインで保護されたインスタンス] の場合、[無視][置換][待機] のいずれかを選択します。これにより、スケールインで保護されたインスタンスが見つかった場合の処理が決まります。詳細については、「インスタンスのスケールイン保護を使用する」を参照してください。

    [待機] を選択する場合、これらのインスタンスからスケールイン保護を解除するために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新は保護されていないすべてのインスタンスを置き換えて 1 時間待機します。次に、スケールインで保護されたインスタンスが残っている場合、インスタンスの更新が失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して [無視] または [置き換え] を選択してください。

  10. (オプション) CloudWatch アラームで、[CloudWatch アラームを有効にする]を選択し、1 つ以上のアラームを選択します。CloudWatch アラームを使用すると、問題を特定し、アラームが ALARM 状態になったときにオペレーションを失敗させることができます。詳細については、「自動ロールバックでインスタンスの更新を開始」を参照してください。

  11. [Desired configuration] (希望する設定) セクションで以下を実行します。

    このステップでは、コンソールインターフェイスで選択する代わりに、JSON または YAML 構文を使用してパラメータ値を編集するように選択できます。このためには、[Use console interface] (コンソールインターフェイスを使用する) の代わりに[Use code editor] (コードエディタを使用する) を選択します。以下の手順では、コンソールインターフェイスを使用して選択する方法について説明します。

    1. 起動テンプレートを更新する場合:

      • Auto Scaling グループの新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成していない場合、このチェックボックスをオンにしないでください。

      • 新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成した場合、このチェックボックスをオンにします。このオプションを選択すると、Amazon EC2 Auto Scaling が現在の起動テンプレートおよび現在の起動テンプレートバージョンを表示します。他の利用可能なバージョンもすべて確認できます。起動テンプレートを選択し、バージョンを選択します。

        バージョンを選択すると、バージョン情報が表示されます。これは、インスタンスの更新の一部としてインスタンスを置換するときに使用される起動テンプレートのバージョンです。インスタンスの更新に成功すると、グループのスケール時など、新しいインスタンスが起動するたびに起動テンプレートのこのバージョンが使用されます。

    2. これらの設定を使用して、起動テンプレートで定義されているインスタンスタイプと購入オプションを上書きする場合:

      デフォルトでは、このチェックボックスはオンになっています。Amazon EC2 Auto Scaling により、現在、Auto Scaling グループの混合インスタンスポリシーで設定されている値が各パラメータに入力されます。変更するパラメータの値のみを更新します。これらの設定に関するガイダンスについては、複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ を参照してください。

      警告

      このチェックボックスはオフにしないことをお勧めします。混合インスタンスポリシーの使用を停止する場合にのみオフにします。インスタンスの更新に成功すると、Amazon EC2 Auto Scaling は希望する設定に一致するようグループを更新します。混合インスタンスポリシーが含まれなくなった場合、Amazon EC2 Auto Scaling は現在実行中のスポットインスタンスを徐々に終了し、オンデマンドインスタンスに置換します。または、起動テンプレートがスポットインスタンスをリクエストした場合、Amazon EC2 Auto Scaling は現在実行中のオンデマンドインスタンスを徐々に終了し、スポットインスタンスに置換します。

  12. (オプション) [ロールバック設定][自動ロールバックを有効にする] を選択すると、何らかの理由でインスタンスの更新が失敗した場合に自動的にロールバックされます。

    Auto Scaling グループがロールバックを使用する前提条件を満たしていない場合、この設定は有効にできません。

    詳細については、「ロールバックで変更の取り消し」を参照してください。

  13. すべての選択内容を見直し、正しく設定されていることを確認します。

    現在の設定と提案された変更の違いが、想定外または望ましくない形でアプリケーションに影響を及ぼさないよう、この時点で確認することをお勧めします。インスタンスタイプが起動テンプレートと互換性があることを確認するには、「インスタンスタイプの互換性」を参照してください。

    インスタンス更新の選択内容が正しい場合は、[インスタンスの更新の開始]  を選択します。

インスタンスの更新 (AWS CLI) の開始

インスタンスの更新をスタートするには

start-instance-refreshコマンドを使用して、AWS CLIからインスタンスの更新をスタートします。JSON 設定ファイルでは、変更する任意の設定を指定できます。設定ファイルを参照するとき、次の例に示すように、ファイルパスおよび名前を指定します。

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json の内容:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 50, "AutoRollback": true, "ScaleInProtectedInstances": Ignore, "StandbyInstances": Terminate } }

設定が指定されない場合、デフォルト値が使用されます。詳細については、「インスタンスの更新のデフォルト値について説明する」を参照してください。

出力例:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }