複数のインスタンスタイプと購入オプションを持つ Auto Scaling グループ - Amazon EC2 Auto Scaling (日本語)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

複数のインスタンスタイプと購入オプションを持つ Auto Scaling グループ

1 つの Auto Scaling グループ内で、オンデマンドインスタンスとスポットインスタンスのフリートを起動して自動的にスケーリングできます。スポットインスタンスの使用で割引を受けるだけでなく、リザーブドインスタンスまたはSavings Plan を使用して、通常のオンデマンドインスタンス料金の割引料金を受け取ることができます。これらすべての要素を組み合わせることで、EC2 インスタンスのコスト削減を最適化しながら、アプリケーションに必要な規模とパフォーマンスを確実に得ることができます。

起動テンプレートで一般的な設定パラメータを指定し、Auto Scaling グループを作成するときに選択します。Auto Scaling グループを設定すると、以下のことができます。

  • グループの 1 つ以上のインスタンスタイプを選択します (オプションで、起動テンプレートで指定されたインスタンスタイプを上書きします)。

  • 複数の起動テンプレートを定義して、異なる CPU アーキテクチャ(Arm と x86 など)のインスタンスを同じ Auto Scaling グループで起動できるようにします。

  • 各インスタンスタイプに個別の重みを付けます。これが便利なのは、たとえば、インスタンスタイプ別に異なる vCPU、メモリ、ストレージ、またはネットワーク帯域幅の機能を設定する場合です。

  • Savings Plan またはリザーブドインスタンスの割引料金の恩恵を受けることができるインスタンスタイプの優先順位を設定します。

  • 起動するオンデマンド容量とスポット容量を指定し、オプションのオンデマンドベース部分を指定します。

  • Amazon EC2 Auto Scaling でインスタンスタイプ間でどのようにスポット容量を配分するかを定義します。

  • 容量の再調整を有効にする。キャパシティリバランシングを有効にすると、Amazon EC2 Auto Scaling は、スポットインスタンスが中断の危険性が高いことをAmazon EC2 スポットサービスから通知されるたびに、スポットインスタンスを起動しようとします。新しいインスタンスを起動すると、古いインスタンスを終了します。詳細については、「Amazon EC2 Auto Scaling 容量の再調整」を参照してください。

可用性を高めるには、複数のアベイラビリティーゾーンで実行されている複数のインスタンスタイプ間でアプリケーションをデプロイします。使用できるインスタンスタイプは 1 つだけですが、選択したアベイラビリティーゾーンに十分なインスタンス容量がない場合に Amazon EC2 Auto Scaling が別のインスタンスタイプを起動できるように、いくつかのインスタンスタイプを使用することをお勧めします。スポットインスタンスでは、インスタンス容量が不足している場合、Amazon EC2 Auto Scaling はオンデマンドインスタンスを起動するのではなく、他のスポットインスタンスプール (選択したインスタンスタイプと割り当て戦略によって決まります) を試行し続けるため、スポットインスタンスのコスト削減を活用できます。

配分戦略

次の割り当て戦略は、Auto Scaling グループがオンデマンド容量とスポット容量可能なインスタンスタイプから。

Amazon EC2 Auto Scaling は、まず、指定したアベイラビリティーゾーン間でインスタンスの分散バランスを調整します。次に、指定された配分戦略に従ってインスタンスタイプを起動します。

オンデマンドインスタンス

オンデマンドインスタンスの配分戦略は prioritized です。Amazon EC2 Auto Scaling は、起動テンプレートのリスト内でのインスタンスタイプの優先度を使用して、オンデマンド容量を満たすときに最初に使用するインスタンスタイプを決定します。たとえば、3 つの起動テンプレートの優先度を、指定したとします。c5.largec4.large, およびc3.large。オンデマンドインスタンスが起動されると、Auto Scaling グループは、の順でオンデマンド容量を満たします。c5.large、次にc4.large、次にc3.large

オンデマンドインスタンスの優先順位を管理する場合は、次の点を考慮してください。

Savings Plans またはリザーブドインスタンスのいずれかを使用して、オンデマンドインスタンスの大幅な割引を受けるために、使用料を前払いでお支払いいただけます。Savings Plans またはリザーブドインスタンスの詳細については、『Amazon EC2 の料金ページで.

  • リザーブドインスタンスでは、Amazon EC2 Auto Scaling が一致するインスタンスタイプを起動すると、通常のオンデマンドインスタンス料金の割引料金が適用されます。つまり、c4.large の未使用のリザーブドインスタンスがある場合、インスタンスタイプの優先順位を設定して、リザーブドインスタンスの最も高い優先順位を c4.large インスタンスタイプに付与できます。c4.large インスタンスが起動すると、リザーブドインスタンスの料金が発生します。

  • Savings Plans では、Amazon EC2 インスタンスSavings Plans またはCompute Savings Plans 蓄プランを使用する場合、通常のオンデマンドインスタンス料金の割引料金が適用されます。Savings Plans には柔軟性があるため、インスタンスタイプの優先順位付けの柔軟性が高まります。Savings Plan でカバーされているインスタンスタイプを使用する限り、任意の順序で優先順位を設定でき、場合によってはその順序を完全に変更することもできます。また、Savings Plan が提供する割引料金が適用され続けます。Savings Plans の詳細については、Savings Plans ユーザーガイド

スポットインスタンス

Amazon EC2 Auto Scaling には、スポットインスタンスに使用できる以下の配分戦略があります。

capacity-optimized

Amazon EC2 Auto Scaling は、起動するインスタンスの数に最適な容量のスポットインスタンスプールから、インスタンスを割り当てます。この方法でデプロイすると、予備の EC2 容量を最も効率的に活用できます。

スポットインスタンスでは、価格は需要と供給の長期的な傾向に基づいて時間の経過とともに緩やかに変動しますが、容量はリアルタイムで変動します。capacity-optimized 戦略では、リアルタイムの容量データを調べ、可用性の最も高いプールを予測することで、そのプールからスポットインスタンスを自動的に起動します。これは、ビッグデータと分析、画像とメディアレンダリング、機械学習などのワークロードに適しています。また、作業の再開とチェックポイント設定に関連する中断に伴うコストが高くなる可能性がある高パフォーマンスコンピューティングにも適しています。中断の可能性を低くすることにより、capacity-optimized 戦略ではワークロードの全体的なコストを削減できます。

または、[] を使用できます。capacity-optimized-prioritized配分戦略を使用して、起動テンプレートのリスト内でのインスタンスタイプの優先度を、優先度が高いものから最低 (リストの最初から最後) に設定します。Amazon EC2 Auto Scaling は、ベストエフォート方式でインスタンスタイプの優先順位を尊重しますが、最初にキャパシティを最適化します。これは、中断の可能性を最小限に抑える必要がありますが、特定のインスタンスタイプの優先順位も重要であるワークロードに適しています。

lowest-price

Amazon EC2 Auto Scaling は、指定した数 (N 個) のスポットインスタンスプールのうち、容量を満たすときに最低単価のプールからインスタンスを割り当てます。

たとえば、4 つのインスタンスタイプと 4 つのアベイラビリティーゾーンを指定した場合、Auto Scaling グループは、最大 16 個の異なるスポットインスタンスプールからスポット容量を満たすことができます。配分戦略に 2 つのスポットプール (N = 2) を指定した場合、Auto Scaling グループは、最低単価の 8 個以上のスポットプールからスポット容量を満たすことができます。

まずは、capacity-optimized 配分戦略を選択し、アプリケーションに適した少数のインスタンスタイプを指定することをお勧めします。さらに、Amazon EC2 Auto Scaling のアベイラビリティーゾーンの範囲を定義して、インスタンスの起動時に選択することができます。

オプションで、スポットインスタンスの上限価格を指定できます。上限価格を指定しない場合、デフォルトの上限価格はオンデマンド価格ですが、スポットインスタンスによって提供される大幅な割引は引き続き受けられます。これらの割引が可能なのは、新しいスポット料金モデルを使用して適用されるスポット料金が安定しているためです。

スポットインスタンスの配分戦略の詳細については、AWS ブログの「Amazon EC2 スポットインスタンスの容量最適化配分戦略の紹介」を参照してください。

オンデマンドインスタンスの割合のコントロール

Auto Scaling グループで、オンデマンドインスタンスとして起動されるインスタンスの割合を完全にコントロールできます。インスタンス容量を常に確保するために、オンデマンドインスタンスとして起動されるグループのインスタンスの割合を指定できます。また、オプションで、起動されるオンデマンドインスタンスのベース数を指定することもできます。オンデマンドインスタンスのベース容量を指定することにした場合、グループがスケールアウトしたときに、Auto Scaling グループは、確実にこのオンデマンドインスタンスのベース容量を最初に起動します。ベース容量を超える場合、オンデマンドインスタンスの割合を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数が決まります。オンデマンドインスタンスの割合には、0 から 100 までの任意の数を指定できます。

Auto Scaling グループのサイズを増やす際の Auto Scaling グループの動作は以下のようになります。

例: スケーリング動作
Instances distribution Total number of running instances across purchase options
10 20 30 40
例 1
On-Demand base: 10 10 10 10 10
On-Demand percentage above base: 50% 0 5 10 15
Spot percentage: 50% 0 5 10 15
例 2
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 0% 0 0 0 0
Spot percentage: 100% 10 20 30 40
例 3
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 60% 6 12 18 24
Spot percentage: 40% 4 8 12 16
例 4
On-Demand base: 0 0 0 0 0
On-Demand percentage above base: 100% 10 20 30 40
Spot percentage: 0% 0 0 0 0
例 5
On-Demand base: 12 10 12 12 12
On-Demand percentage above base: 0% 0 0 0 0
Spot percentage: 100% 0 8 18 28

スポットインスタンスのベストプラクティス

Auto Scaling グループを作成するには、スポットインスタンスをリクエストする前に、EC2 スポットを利用するうえでのベストプラクティス()Linux インスタンス用 Amazon EC2 ユーザーガイド。リクエストを計画するときにこれらのベストプラクティスを使用して、できるだけ低価格でインスタンスのタイプをプロビジョニングできるようにします。また、次のことをお勧めします。

  • オンデマンド価格であるデフォルトの上限料金を使用します。起動するスポットインスタンスのスポット価格のみを支払います。スポット価格が上限価格以下である場合、リクエストが落札されるかどうかは可用性によります。詳細については、「」を参照してください。料金と削減額()Linux インスタンス用 Amazon EC2 ユーザーガイド

  • 複数のインスタンスタイプを持つ Auto Scaling グループを作成します。キャパシティーはアベイラビリティーゾーンのインスタンスタイプごとに個別に変動するため、インスタンスタイプの柔軟性が高ければ、通常、より多くのコンピューティング性能を得られます。

  • 同様に、最もよく使用されているインスタンスタイプだけに制限しないでください。価格は長期の需要に基づいて調整されます。そのため、よく使用されているインスタンスタイプ (最近開始されたインスタンスファミリーなど) の料金はより調整が大きくなる傾向があります。使用されることが少なくなった旧世代のインスタンスタイプを選択すると、コストが下がり、中断が少なくなる傾向があります。

  • を使用することをお勧めします。capacity-optimized配分戦略。つまり、Amazon EC2 Auto Scaling は、使用可能なスポット容量に基づいて最適に選択されたスポットプールを使用してインスタンスを起動するため、スポット中断の可能性を減らすことができます。

  • [] を選択すると、lowest-price配分戦略で Web サービスを実行する場合は、多数のスポットプール (N=10 など) を指定します。多数のスポットプールを指定すると、いずれかのアベイラビリティーゾーンのプールが一時的に使用不可になったときのスポットインスタンスの中断の影響が抑えられます。バッチ処理や他のミッションクリティカルでないアプリケーションを実行している場合は、スポットプール数をより少なく、たとえば N = 2 に指定できます。これにより、アベイラビリティーゾーンあたりで使用可能な最低価格のスポットプールからのみ、スポットインスタンスを確実にプロビジョニングできます。

上限価格を指定する場合は、AWS CLI または SDK を使用して Auto Scaling グループを作成しますが、注意が必要です。上限価格が、選択したインスタンスタイプのスポット料金より低い場合、スポットインスタンスは起動しません。

Prerequisites

起動テンプレートは、Auto Scaling グループで使用するように設定されています。詳細については、「Auto Scaling グループ用の起動テンプレートの作成」を参照してください。

Auto Scaling グループを作成するには、起動テンプレートを使用してec2:RunInstancesaction. 詳細については、「起動テンプレートのサポート」を参照してください。

スポットインスタンスとオンデマンドインスタンスを使用した Auto Scaling グループの作成 (コンソール)

スケーリング可能なスポットインスタンスとオンデマンドインスタンスのフリートを作成するには、以下の手順に従います。

スポットインスタンスとオンデマンドインスタンスを使用して Auto Scaling グループを作成するには

  1. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2autoscaling/

  2. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS リージョンを選択します。

  3. [Auto Scaling グループの作成] を選択します。

  4. Choose launch template or configuration のページで、以下を実行します。

    1. を使用する場合Auto Scaling グループ名[Auto Scaling グループの名前を入力します。

    2. [起動テンプレート] で、既存の起動テンプレートを選択します。

    3. を使用する場合起動テンプレートのバージョンAuto Scaling グループで、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

    4. 起動テンプレートが、使用する予定のすべてのオプションをサポートしていることを確認し、[次へ] を選択します。

  5. リポジトリの []設定の構成ページで [] を選択します。インスタンス購入オプション] で、[購入オプションとインスタンスタイプの組み合わせ

  6. [Instances distribution (インスタンスの分散)] で、次の手順を実行します。

    デフォルト設定をそのまま使用する場合は、次の手順を省略できます。

    1. を使用する場合オンデマンドベース容量Auto Scaling グループの最初の容量となるインスタンス数を指定します。オンデマンドインスタンスが満たす必要がある Auto Scaling グループのインスタンス数を指定します。

    2. [On-Demand Percentage Above Base (ベースを超える場合のオンデマンドの割合)] で、オプションのオンデマンドベース数を超える場合の追加容量となるオンデマンドインスタンスとスポットインスタンスの割合を指定します。

    3. アベイラビリティーゾーンごとのスポット配分戦略では、容量の最適化 のデフォルト設定を維持することをお勧めします。デフォルトを維持しない場合は、[Lowest price (最低価格)] を選択し、最低価格のスポットインスタンスプールの数を入場し、多様化します。

    4. (オプション)インスタンスタイプの優先順位付け[] チェックボックスをオンにしてから、[]インスタンスタイプセクションを希望の優先順位で設定します。

    5. を使用する場合容量の再調整[容量の再調整] を有効にするか無効にするかを選択します。詳細については、「Amazon EC2 Auto Scaling 容量の再調整」を参照してください。

  7. [インスタンスタイプ] では、開始点として、推奨事項をもとに、起動できるインスタンスのタイプを選択します。それ以外の場合は、インスタンスタイプを削除し、必要に応じ、後で追加します。

  8. (オプション) インスタンスタイプの順序を変更するには、矢印を使用します。インスタンスタイプを設定した順序によって、オンデマンドインスタンスの優先度が設定されます。Auto Scaling グループでオンデマンドキャパシティが起動された場合、リストの一番上にあるインスタンスタイプの優先順位が最も高くなります。

  9. (オプション)インスタンスの分量指定では、各インスタンスタイプに、Auto Scaling グループの容量に対してカウントされるインスタンスの量に対応する重みを付けます。

  10. [ネットワーク] の [VPC] で、起動テンプレートで指定したセキュリティグループの VPC を選択します。複数のインスタンスタイプおよび購入オプションを使用するインスタンスの起動は、EC2-Classic ではサポートされていません。

  11. [サブネット] で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。Amazon EC2 Auto Scaling を使用した高可用性の詳細については、アベイラビリティーゾーン間でのインスタンスの分散

  12. [Next] を選択します。

    または、残りはデフォルトのままにして、[Skip to Review (確認をスキップ)] を選択できます。

  13. [詳細オプションの設定] ページで、次のオプションを設定し、[次へ] を選択します。

    1. (オプション) EC2 インスタンスを Elastic Load Balancing (ELB) ロードバランサーを使用するには、既存のロードバランサーを選択するか、新しいロードバランサーを作成します。詳細については、「Elastic Load Balancing と Amazon EC2 Auto Scaling」を参照してください。新しいロードバランサーを作成するには、」新しいApplication Load Balancer またはNetwork Load Balancer の作成および

    2. (オプション)ELB[Health Checkヘルスチェック] で、[ELB[]ヘルスチェックタイプ

    3. (オプション) [Health チェックの猶予期間に、Amazon EC2 Auto Scaling がインスタンスの状態を確認するまでの時間を入力します。この目的は、Amazon EC2 Auto Scaling がインスタンスを正常でないとマークし、時間が来る前にインスタンスを終了するのを防ぐためです。デフォルトは 300 秒です。

  14. Configure group size and scaling policies ページで、次のオプションを設定し、[次へ] を選択します。

    1. (オプション) [希望する容量] に、起動するインスタンスの初期数を入力します。この数値を最小容量または最大容量制限の範囲外の値に変更する場合は、[最小容量] または [最大容量] の値を更新する必要があります。詳細については、「Auto Scaling グループの容量制限の設定」を参照してください。

    2. (オプション) Auto Scaling グループのサイズを自動的に拡大縮小するには、ターゲット追跡スケーリングポリシーに移動して、指示に従います。詳細については、「ターゲット追跡スケーリングポリシー」を参照してください。

    3. (オプション) [Instance scale-in protection (インスタンスのスケールイン保護)] で、インスタンスのスケールイン保護を有効にするかどうかを選択します。詳細については、「インスタンスのスケールイン保護」を参照してください。

  15. (オプション) 通知を受け取るには、[通知の追加] を選択し、通知を設定してから [次へ] を選択します。詳細については、「Auto Scaling グループのスケーリング時の Amazon SNS 通知の取得」を参照してください。

  16. (オプション) タグを追加するには、[タグの追加] を選択し、各タグのタグキーと値を指定し、[次へ] を選択します。詳細については、「Auto Scaling グループとインスタンスにタグを付けるには」を参照してください。

  17. リポジトリの []確認ページで [] を選択します。Auto Scaling グループを作成する

スポット割り当て戦略の設定 (AWS CLI)

以下の設定例では、さまざまなスポット割り当て戦略を使用してスポットインスタンスを起動する方法を示しています。

注記

以下の例では、JSON または YAML でフォーマットされた設定ファイルの使用方法を示します。AWS CLI バージョン 1 を使用する場合は、JSON 形式の設定ファイルを指定する必要があります。AWS CLI バージョン 2 を使用する場合は、YAML または JSON でフォーマットされた設定ファイルを指定できます。

例 1: スポットインスタンスを起動するcapacity-optimized配分戦略

以下のようになりますcreate-auto-scaling-groupコマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (0) とオンデマンドインスタンスの初期のベース数 (1)

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

  • 起動テンプレート (my-launch-template) とそのバージョン ($Default)

Amazon EC2 Auto Scaling がオンデマンド容量を満たそうとするとき、Amazon EC2 Auto Scaling はc5.largeインスタンスタイプを最初に作成します。スポットインスタンスは、スポットインスタンスの容量に基づいて、各アベイラビリティーゾーンの最適なスポットプールから取得されます。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

または、以下のcreate-auto-scaling-groupコマンドを使用して Auto Scaling グループを作成し、JSON ファイルではなく Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

次は、config.yaml ファイルの例です。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

例 2: スポットインスタンスを起動するcapacity-optimized-prioritized配分戦略

以下のようになりますcreate-auto-scaling-groupコマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (0) とオンデマンドインスタンスの初期のベース数 (1)

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

  • 起動テンプレート (my-launch-template) とそのバージョン ($Latest)

Amazon EC2 Auto Scaling がオンデマンド容量を満たそうとするとき、Amazon EC2 Auto Scaling はc5.largeインスタンスタイプを最初に作成します。Amazon EC2 Auto Scaling がスポット容量を満たそうとする場合、インスタンスタイプの優先順位はベストエフォート方式で尊重されますが、最初に容量を最適化します。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized-prioritized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

または、以下のcreate-auto-scaling-groupコマンドを使用して Auto Scaling グループを作成し、JSON ファイルではなく Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

次は、config.yaml ファイルの例です。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized-prioritized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

例 3: スポットインスタンスを起動するlowest-price2 つのプール間での配分戦略

以下のようになりますcreate-auto-scaling-groupコマンドは、以下を指定する Auto Scaling グループを作成します。

  • オンデマンドインスタンスとして起動するグループの割合 (50)。オンデマンドインスタンスの初期のベース数は指定しない

  • 優先度に従って起動するインスタンスタイプ (c5.largec5a.largem5.largem5a.largec4.largem4.largec3.largem3.large)

  • インスタンスを起動するサブネット (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

  • 起動テンプレート (my-launch-template) とそのバージョン ($Latest)

Amazon EC2 Auto Scaling がオンデマンド容量を満たそうとするとき、Amazon EC2 Auto Scaling はc5.largeインスタンスタイプを最初に作成します。スポット容量について、Amazon EC2 Auto Scaling は各アベイラビリティーゾーンで最低価格の 2 つのプールのスポットインスタンスを均等に起動しようとします。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "lowest-price", "SpotInstancePools": 2 } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

または、以下のcreate-auto-scaling-groupコマンドを使用して Auto Scaling グループを作成し、JSON ファイルではなく Auto Scaling グループの唯一のパラメータとして YAML ファイルを参照します。

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

次は、config.yaml ファイルの例です。

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: lowest-price SpotInstancePools: 2 MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Auto Scaling グループが正しく設定されているかどうか、およびグループがインスタンスを起動していることの確認(AWS CLI)

Auto Scaling グループが正しく設定されているかどうか、およびインスタンスが起動されているかどうかを確認するには、describe-auto-scaling-groupsコマンド。混合インスタンスのポリシーとサブネットのリストが存在し、正しく構成されていることを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。インスタンスの起動によるスケーリングアクティビティを表示するには、describe-scaling-activitiesコマンド。進行中で、最近完了したスケーリングアクティビティを監視できます。