スケールアウトイベントの成功率を向上させるために、起動テンプレートの拡張機能を使用して、複数のインスタンスタイプを持つスケーリンググループを設定できます。このトピックでは、起動テンプレートを使用するスケーリンググループで複数のインスタンスタイプを指定する方法を説明します。
背景情報
Elastic Compute Service (ECS) インスタンスの構成情報が起動テンプレートに含まれており、インスタンスを迅速に作成するために使用します。起動テンプレートを使用すると、構成の繰り返しを回避し、インスタンス作成プロセスを簡素化できます。詳細については、「インスタンス起動テンプレートの概要」をご参照ください。
ECS インスタンスのスケーリンググループを設定する際、インスタンス構成ソースとして起動テンプレートを選択できます。スケールアウトイベント中に、Auto Scaling は起動テンプレートの構成を使用して新しい ECS インスタンスを作成します。デフォルトでは、起動テンプレートは単一のインスタンスタイプしか指定できません。その特定のインスタンスタイプに在庫不足がある場合、スケールアウトイベントは失敗します。スケールアウトの成功率を高めるには、起動テンプレートの拡張機能を使用します。この機能を使用すると、複数のインスタンスタイプを指定して、起動テンプレート内の単一のインスタンスタイプを上書きできます。あるインスタンスタイプが在庫不足のため利用できない場合、Auto Scaling は優先順位リストから別のタイプを自動的に試行し、スケールアウトの失敗を防ぎ、事業継続性を確保します。
前提条件
スケーリンググループを作成または設定する前に、ECS コンソールの [起動テンプレート] ページに移動して起動テンプレートを作成するか、既存のテンプレートを使用します。起動テンプレートの作成方法については、「インスタンス起動テンプレートの作成」をご参照ください。
Auto Scaling は、従量課金またはプリエンプティブルインスタンスの課金方法を使用する起動テンプレートをサポートしています。サブスクリプション課金方法を使用する起動テンプレートはサポートされていません。サブスクリプション課金方法の起動テンプレートを使用する場合、Auto Scaling はそれを自動的に従量課金方法に変換します。
このトピックでは、次の起動テンプレートを例とします:
-
課金方法: 従量課金
-
インスタンスタイプ: ecs.g5.large
この起動テンプレートの他の構成には、リージョンが中国 (北京)、イメージが Alibaba Cloud Linux 3.2104 LTS 64-bit、ストレージがインスタンスとともにリリースされる 40 GiB の PL0 ESSD システムディスク、ネットワークタイプが VPC といった設定が含まれます。
操作手順
この手順では、2 つのスケーリンググループを作成し、複数のインスタンスタイプを持つ起動テンプレート の利点を説明します。
-
スケーリンググループ A: 起動テンプレートの拡張機能を使用せず、起動テンプレートのみを使用します。
-
スケーリンググループ B: 起動テンプレートの拡張機能を使用して複数のインスタンスタイプを設定した起動テンプレートを使用します。
-
Auto Scaling コンソールにログインします。
-
スケーリンググループ A を作成します。
-
スケーリンググループ ページで、作成 をクリックします。
-
スケーリンググループを設定し、作成 をクリックします。
このトピックでは、次のパラメーターを例とします:他のパラメーターはデフォルト値のままにします。詳細については、「スケーリンググループの作成」をご参照ください。
パラメーター
例
説明
[スケーリンググループ名]
test-a
スケーリンググループの名前を入力します。形式の要件については、画面の指示をご参照ください。
[タイプ]
ECS
[ECS] を選択して、スケーリンググループが ECS インスタンスを管理するように指定します。
[インスタンス設定ソース]
起動テンプレート
テンプレート名 を選択します。スケールアウトイベント中に、スケーリンググループは指定された起動テンプレートを使用して ECS インスタンスを作成します。
[起動テンプレートの選択]
test
準備した起動テンプレートを選択します。
[テンプレートバージョンの選択]
最新バージョン
使用する起動テンプレートのバージョンを選択します。
[最小インスタンス数]
1
スケーリンググループ内のインスタンスの最小数です。現在のインスタンス数がこの制限を下回ると、Auto Scaling は制限に達するまでインスタンスを自動的に追加します。
[最大インスタンス数]
1
スケーリンググループ内のインスタンスの最大数です。現在のインスタンス数がこの制限を超えると、Auto Scaling は制限に達するまでインスタンスを自動的に削除します。
-
-
スケーリンググループ B を作成します。
スケーリンググループ A の作成手順を繰り返して、スケーリンググループ B (名前は test-b) を作成します。スケーリンググループ A に設定したパラメーターに加えて、次の手順に従ってスケーリンググループ B の起動テンプレートの拡張機能を設定します:
-
起動テンプレートのプロパティの拡張 セクションで、起動テンプレートインスタンスの仕様を上書きする を選択します。
-
vCPU 数を使用してスケーリンググループのキャパシティを計算するかどうかを決定します。
vCPU を使用して、スケーリンググループの容量を計算 を選択した場合、選択中のインスタンスタイプ セクションで、選択した各インスタンスタイプの 重み の値を表示できます。 vCPU キャパシティを設定すると、スケーリンググループの現在のキャパシティが再計算され、新しいスケーリングイベントがトリガーされる場合があります。 また、メモリサイズなど、インスタンスタイプに関連付けられた他のパフォーマンスメトリクスを使用して、Auto Scaling がスケーリンググループのキャパシティを測定する方法をカスタマイズすることもできます。 詳細については、「Auto Scaling の測定単位としてパフォーマンスメトリクスを使用する」をご参照ください。
-
利用可能なインスタンスタイプ セクションで、選択するインスタンスタイプの横にある
アイコンをクリックします。起動テンプレートのインスタンスタイプは、デフォルトで選択中のインスタンスタイプリストに追加されます。すべてのインスタンスタイプを選択、インスタンスタイプに基づく推奨インスタンスタイプ、またはvCPU に基づく推奨インスタンスタイプオプションを使用して、複数のインスタンスタイプを選択できます。
この例では、
ecs.g5ne.largeとecs.g6.largeを追加します。在庫切れのリスクを減らすために、追加のインスタンスタイプを選択することを推奨します。 -
選択中のインスタンスタイプ セクションで、インスタンスタイプの優先順位を調整します。
-
-
スケーリンググループ A とスケーリンググループ B を有効にして、スケールアウトイベントをトリガーします。
最小インスタンス数の設定、期待インスタンス数の設定、またはスケーリングルールの実行によって、スケーリンググループのスケールアウトアクションをトリガーできます。
両方のスケーリンググループの最小インスタンス数は 1 であるため、これらを有効にすると、各グループに 1 つの ECS インスタンスが自動的に作成されます。
結果の比較
各スケーリンググループの ID をクリックして詳細ページを開きます。[インスタンス] タブで ECS インスタンス情報を表示し、インスタンスタイプを比較します。
-
スケーリンググループ A: 起動テンプレートのみを使用します。
起動テンプレートは
ecs.g5.largeを指定しているため、作成される ECS インスタンスのタイプはecs.g5.largeです。ecs.g5.largeインスタンスタイプに在庫不足がある場合、スケールアウトは失敗します。 -
スケーリンググループ 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インスタンスの作成を試みます。
複数のインスタンスタイプを使用することで、単一のタイプを使用するよりもスケーリンググループの回復力が高まります。あるインスタンスタイプに在庫不足がある場合、Auto Scaling は優先順位リスト内の次に利用可能なタイプからインスタンスの作成を自動的に試みます。この方法により、スケールアウトの成功率が大幅に向上し、アプリケーションが需要に応じて確実にスケールできるようになります。