スケールアウトイベントの成功率を向上させるには、スケーリンググループの作成時に起動テンプレートの拡張機能を有効にします。 起動テンプレートの拡張機能を使用すると、スケーリンググループに複数のインスタンスタイプを同時に指定できます。 この場合、起動テンプレートを使用して、マルチインスタンスタイプのスケーリンググループを作成できます。 このトピックでは、起動テンプレートをインスタンス構成ソースとして使用して、マルチインスタンスタイプのスケーリンググループを作成する方法について説明します。
背景情報
起動テンプレートには、ECS (Elastic Compute Service) インスタンスの設定情報が含まれており、ECSインスタンスを効率的に作成できます。 起動テンプレートにより、繰り返し設定が不要になり、ECSインスタンスの作成プロセスが簡素化されます。 詳細については、「概要」をご参照ください。
ECSタイプのスケーリンググループを作成する場合、起動テンプレートをインスタンス設定ソースとして使用できます。 スケーリンググループでスケールアウトイベントが発生した場合、Auto scalingは起動テンプレートを使用してECSインスタンスを作成します。 デフォルトでは、起動テンプレートに含まれるインスタンスタイプは1つだけです。 Auto Scalingが起動テンプレートを使用してECSインスタンスを作成する場合、起動テンプレートには1つのインスタンスタイプしか含まれていないため、リソース不足の問題が発生する可能性があります。 スケールアウトイベントの成功率を向上させるには、スケーリンググループの起動テンプレートの拡張機能を有効にします。 起動テンプレートの拡張機能を使用すると、複数のインスタンスタイプを同時に指定できます。 このように、指定されたインスタンスタイプのいずれかに十分なインベントリがない場合、Auto Scalingは、スケールアウトの失敗によるビジネスの中断を防ぐために、スケールアウトイベント中に十分なインベントリを持つ別のインスタンスタイプを使用します。
準備
スケーリンググループを作成または設定する前に、ECSコンソールの起動テンプレートページで起動テンプレートを作成する必要があります。 スケーリンググループを作成または設定するときに、既存の起動テンプレートを選択することもできます。 起動テンプレートの作成方法については、「起動テンプレートの作成」をご参照ください。
起動テンプレートを作成する場合、[課金方法] パラメーターを [従量課金] または [プリエンプティブルインスタンス] にのみ設定できます。 サブスクリプション起動テンプレートは作成できません。 [課金方法] パラメーターを [サブスクリプション] に設定した場合、システムは自動的にパラメーターを [従量課金] に設定します。
このトピックでは、次のサンプル設定を使用します。
課金方法: 従量課金
インスタンスタイプ: ecs.g5.large
手順
このセクションでは、起動テンプレート + 複数のインスタンスタイプの効果を説明するために2つのスケーリンググループが作成されます。
スケーリンググループA: 起動テンプレートのみが使用されます。
スケーリンググループB: 起動テンプレートは、複数のインスタンスタイプを指定するために起動テンプレートの拡張機能とともに使用されます。
Auto Scaling コンソール にログインします。
スケーリンググループAを作成します。
スケーリンググループ ページで [スケーリンググループの作成] をクリックします。
パラメーターを設定してスケーリンググループを作成し、[作成] をクリックします。
この例で使用するパラメーター設定を次の表に示します。 テーブルに含まれていないパラメーターについては、デフォルト値を使用します。 詳細については、「スケーリンググループの管理」をご参照ください。
パラメーター
例
説明
スケーリンググループ名
テスト-a
スケーリンググループの名前を入力します。 名前は、UIに表示されるフォーマット要件を満たす必要があります。
データ型
ECS
[ECS] を選択します。スケーリンググループにECSインスタンスが含まれることを指定します。
インスタンス設定ソース
起動テンプレート
[起動テンプレート] を選択します。これは、Auto Scalingがスケールアウトイベント中に指定された起動テンプレートを使用してECSインスタンスを作成することを指定します。
起動テンプレートの選択
test
準備した起動テンプレートを選択します。
Select Template Version
最新バージョン
使用する起動テンプレートのバージョンを指定します。
最小インスタンス数
1
スケーリンググループ内のインスタンス数の下限を指定します。 スケーリンググループ内のECSインスタンスの数がこのパラメーターの値より小さい場合、Auto scalingは、スケーリンググループ内のECSインスタンスの数が下限に達するまで、ECSインスタンスをスケーリンググループに追加します。
最大インスタンス数
1
スケーリンググループ内のインスタンス数の上限を指定します。 スケーリンググループ内のECSインスタンスの数がこのパラメーターの値より大きい場合、Auto scalingは、スケーリンググループ内のECSインスタンスの数が上限を超えなくなるまで、スケーリンググループからECSインスタンスを削除します。
スケーリンググループBを作成します。
上記の手順を繰り返して、スケーリンググループBを作成します (test-b) 。 スケーリンググループAの同じ設定を使用することに加えて、スケーリンググループBの起動テンプレートの拡張機能も有効にする必要があります。次の手順を実行する必要があります。
[起動テンプレートの拡張] セクションで、[起動テンプレートのインスタンスタイプの上書き] を選択します。
ビジネス要件に基づいて、[vCPUを使用してスケーリンググループの容量を計算する] を選択します。
[vCPUを使用してスケーリンググループの容量を計算する] を選択した場合、[選択したインスタンスタイプ] セクションで、指定したインスタンスタイプの [Weight] パラメーターの値を表示できます。 vCPUの数をリセットした場合、Auto Scalingは新しいvCPUの数に基づいてスケーリンググループの容量を再計算します。これにより、スケーリングイベントがトリガーされる可能性があります。 さらに、メモリサイズなどの他のインスタンスパフォーマンスメトリックを使用して、スケーリンググループの容量を計算するためのカスタムメソッドを作成できます。 詳細については、「パフォーマンス指標を使用したAuto Scalingの測定」をご参照ください。
[利用可能なインスタンスタイプ] セクションで、選択するインスタンスタイプの横にあるアイコンをクリックします。
デフォルトでは、起動テンプレートのインスタンスタイプが [選択したインスタンスタイプ] セクションに追加されます。 複数のインスタンスタイプを指定するには、[すべてのインスタンスタイプを選択] 、[インスタンスタイプで推奨] 、または [vCPUで推奨] を選択します。
この例では、追加のインスタンスタイプはecs.g5ne.largeとecs.g6.largeです。 リソースの不足を防ぐため、複数のインスタンスタイプを指定することを推奨します。
[選択したインスタンスタイプ] セクションで、ビジネス要件に基づいてインスタンスタイプの優先順位を調整します。
スケーリンググループAとスケーリンググループBを有効にして、スケールアウトイベントをトリガーします。
スケーリンググループでスケールアウトイベントをトリガーするには、最小インスタンス数の設定、予想されるインスタンス数の設定、スケーリングルールの実行などの方法を使用できます。
この例では、両方のスケーリンググループの [最小インスタンス数] パラメーターを1に設定します。 スケーリンググループを有効にすると、Auto scalingは各スケーリンググループに1つのECSインスタンスを自動的に作成します。
効果を比較する
各スケーリンググループのIDをクリックすると、スケーリンググループの詳細ページにリダイレクトされます。 [インスタンス] タブで、ECSインスタンスに関する情報を表示し、インスタンスタイプ間の違いを比較できます。
スケーリンググループA: 起動テンプレートのみが使用されます。
ecs.g5.largeインスタンスタイプは、起動テンプレートで指定されています。 この場合、自動的に作成されるECSインスタンスのインスタンスタイプはecs.g5.largeです。 ecs.g5.largeインスタンスタイプに十分なインベントリがない場合、ECSインスタンスを作成できません。
スケーリンググループB: 起動テンプレートは、複数のインスタンスタイプを指定するために起動テンプレートの拡張機能とともに使用されます。
起動テンプレートのecs.g5.largeインスタンスタイプに加えて、ecs.g5ne.largeおよびecs.g6.largeインスタンスタイプも利用できます。 この例では、ecs.g6.largeインスタンスタイプが最も高い優先度を持ちます。 その結果、自動的に作成されるECSインスタンスのインスタンスタイプはecs.g6.largeになります。 ecs.g6.largeインスタンスタイプに十分なインベントリがない場合、Auto ScalingはECS. g5.largeまたはecs.g5ne.largeインスタンスタイプのecsインスタンスを作成します。
スケーリンググループAと比較して、スケーリンググループBは、インスタンスのスケーリングとスケールアウトの成功に関して、実際のビジネスシナリオでより柔軟で適応性があります。 この優位性は、起動テンプレートと複数のインスタンスタイプの組み合わせに起因します。 複数のインスタンスタイプを指定すると、インスタンスタイプの1つに十分なインベントリがない場合、ECSインスタンスを作成するために十分なインベントリを持つ別のインスタンスタイプが自動的に使用されます。