翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
混合インスタンスグループを作成するためのセットアップの概要
このトピックでは、Auto Scaling 混合インスタンスグループを作成するための概要とベストプラクティスについて説明します。
概要
混合インスタンスグループを作成するには、次の 2 つのオプションがあります。
-
属性ベースのインスタンスタイプの選択 – コンピューティング要件を定義して、特定のインスタンス属性に基づいてインスタンスタイプを自動的に選択します。
-
手動インスタンスタイプの選択 — ワークロードに適したインスタンスタイプを手動で選択します。
インスタンスタイプの柔軟性
可用性を高めるには、複数のインスタンスタイプにアプリケーションをデプロイします。キャパシティ要件を満たすために複数のインスタンスタイプを使用するのがベストプラクティスです。そうすることで、選択したアベイラビリティーゾーンに十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は別のインスタンスタイプを起動できます。
スポットインスタンスで十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は他のスポットインスタンスプールからの起動を試みようとし続けます。(使用するプールは、インスタンスタイプと配分戦略の選択によって決まります)。Amazon EC2 Auto Scaling では、オンデマンドインスタンスの代わりにスポットインスタンスを起動することで、スポットインスタンスのコスト削減効果を活用できます。
ワークロードごとに少なくとも 10 個のインスタンスを使用して柔軟性を持たせることをお勧めします。インスタンスタイプを選択する際には、最も人気のある新しいインスタンスタイプに限定しないでください。旧世代のインスタンスタイプを選択すると、オンデマンドの顧客からの需要が少ないため、スポット中断が少なくなる傾向があります。
アベイラビリティーゾーンの柔軟性
Auto Scaling グループが複数のアベイラビリティーゾーンにまたがるようにすることを強くお勧めします。複数のアベイラビリティーゾーンを使用すると、ゾーン間で自動的にフェイルオーバーして回復力を高めるアプリケーションを設計できます。
追加のメリットとして、単一のアベイラビリティーゾーン内のグループと比較して、より深い Amazon EC2 キャパシティプールにアクセスできます。キャパシティは各アベイラビリティーゾーンのインスタンスタイプごとに個別に変動するため、多くの場合、より多くのコンピューティングキャパシティを得ることができ、インスタンスタイプとアベイラビリティーゾーンの両方を柔軟に選択できます。
複数のアベイラビリティーゾーンの使用の詳細については、「例: 複数のアベイラビリティーゾーン全体にインスタンスを分散させる」を参照してください。
最大スポット料金
AWS CLI または SDK を使用して Auto Scaling グループを作成する場合、 SpotMaxPrice
パラメータを指定できます。SpotMaxPrice
パラメータは、お客様がスポットインスタンス時間について支払ってもよいと考える最大料金を決定します。
オーバーライド (またはグループレベルで "DesiredCapacityType": "vcpu"
もしくは "DesiredCapacityType":
"memory-mib"
) で WeightedCapacity
パラメータを指定すると、最大料金はインスタンス全体の最大料金ではなく、最大単価を表します。
最大料金を指定しないことを強くお勧めします。低すぎる上限価格が設定されるなどの理由で、スポットインスタンスを取得できない場合には、アプリケーションが実行されないことがあります。上限料金を指定しない場合、デフォルトの上限料金はオンデマンド価格となります。 起動するスポットインスタンスのスポット価格のみを支払います。スポットインスタンスによって提供される大幅な割引は、そのまま受けることができます。これらの割引を実現できるのは、スポット料金モデル
プロアクティブなキャパシティの再調整
ユースケースで可能な場合は、キャパシティの再調整をお勧めします。容量の再調整は、実行中のスポットインスタンスが 2 分間のスポットインスタンス中断通知を受け取る前に、新しいスポットインスタンスでフリートを事前に拡張することにより、ワークロードの可用性を維持するのに役立ちます。
キャパシティの再調整が有効になっている場合、Amazon EC2 Auto Scaling は、再調整に関するレコメンデーションを受け取ったスポットインスタンスをプロアクティブに置き換えようとします。これは、中断のリスクが低い新しいスポットインスタンスにワークロードを再調整する機会を提供します。
詳細については、「キャパシティの再調整を使用して Amazon EC2 スポットの中断に対処する」を参照してください。
スケーリングの動作
混合インスタンスグループを作成すると、デフォルトでオンデマンドインスタンスが使用されます。スポットインスタンスを使用するには、オンデマンドインスタンスとして起動されるグループの割合を変更する必要があります。オンデマンドインスタンスの割合には、0 から 100 までの任意の数を指定できます。
オプションで、開始時のオンデマンドインスタンスのベース数を指定することもできます。その場合、Amazon EC2 Auto Scaling は、グループがスケールアウトする際にオンデマンドインスタンスのベースキャパシティが起動された後までは、スポットインスタンスの起動を待機します。ベースキャパシティーを超える場合、オンデマンドインスタンスの割合を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数が決まります。
Amazon EC2 Auto Scaling は、その割合を同等のインスタンス数に変換します。結果が小数になる場合、オンデマンドインスタンスを優先して次の整数に切り上げられます。
次の表は、サイズが増減した場合における Auto Scaling グループの動作について示しています。
購入オプション | 各購入オプションのグループのサイズと実行中のインスタンスの数 | |||
---|---|---|---|---|
10 | 20 | 30 | 40 | |
例 1: 10 を基準、50/50% オンデマンド/スポット |
||||
オンデマンドインスタンス (ベース量) | 10 | 10 | 10 | 10 |
オンデマンドインスタンス | 0 | 5 | 10 | 15 |
スポットインスタンス | 0 | 5 | 10 | 15 |
例 2: 0 を基準、0/100% オンデマンド/スポット |
||||
オンデマンドインスタンス (ベース量) | 0 | 0 | 0 | 0 |
オンデマンドインスタンス | 0 | 0 | 0 | 0 |
スポットインスタンス | 10 | 20 | 30 | 40 |
例 3: 0 を基準、60/40% オンデマンド/スポット |
||||
オンデマンドインスタンス (ベース量) | 0 | 0 | 0 | 0 |
オンデマンドインスタンス | 6 | 12 | 18 | 24 |
スポットインスタンス | 4 | 8 | 12 | 16 |
例 4: 0 を基準、100/0% オンデマンド/スポット |
||||
オンデマンドインスタンス (ベース量) | 0 | 0 | 0 | 0 |
オンデマンドインスタンス | 10 | 20 | 30 | 40 |
スポットインスタンス | 0 | 0 | 0 | 0 |
例 5: 12 を基準、0/100% オンデマンド/スポット |
||||
オンデマンドインスタンス (ベース量) | 10 | 12 | 12 | 12 |
オンデマンドインスタンス | 0 | 0 | 0 | 0 |
スポットインスタンス | 0 | 8 | 18 | 28 |
グループのサイズが大きくなると、Amazon EC2 Auto Scaling は、指定されたアベイラビリティーゾーン全体でキャパシティのバランスを均等にすることを試みます。次に、指定された配分戦略に従ってインスタンスタイプを起動します。
グループのサイズが小さくなると、Amazon EC2 Auto Scaling は、まず 2 つのタイプ (スポットまたはオンデマンド) のどちらを終了する必要があるかを特定します。その後、指定されたアベイラビリティーゾーン全体でバランスの取れた方法でインスタンスを終了することを試みます。また、優先的に、割り当て戦略に近い方法でインスタンスを終了します。終了ポリシーの詳細については、「Amazon EC2 Auto Scaling の終了ポリシーを設定する」を参照してください。
リージョン別のインスタンスタイプの可用性
EC2 インスタンスタイプの可用性は、 によって異なります AWS リージョン。例えば、最新世代のインスタンスタイプは、特定のリージョンではまだ利用できない可能性があります。リージョンによってインスタンスの可用性が異なるため、オーバーライドする複数のインスタンスタイプをリージョンで利用できない場合、プログラムでリクエストを行う際に問題が発生する可能性があります。リージョンで利用できない複数のインスタンスタイプを使用すると、リクエストが完全に失敗する可能性があります。この問題を解決するには、異なるインスタンスタイプでリクエストを再試行し、各インスタンスタイプがリージョンで利用可能であることを確認してください。ロケーションによって提供されるインスタンスタイプを検索するには、 describe-instance-type-offerings コマンドを使用します。詳細については、Amazon EC2 ユーザーガイド」の「Amazon EC2 インスタンスタイプの検索」を参照してください。 Amazon EC2
関連リソース
スポットインスタンスのベストプラクティスの詳細については、「Amazon EC2 ユーザーガイド」の「EC2 スポットのベストプラクティス」を参照してください。 Amazon EC2
制限事項
混合インスタンスポリシー を使用して Auto Scaling グループにオーバーライドを追加した後、UpdateAutoScalingGroup
API コールでオーバーライドを更新できますが、削除することはできません。 https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.htmlオーバーライドを完全に削除するには、まず Auto Scaling グループを切り替えて、混合インスタンスポリシーではなく起動テンプレートまたは起動設定を使用する必要があります。その後、オーバーライドなしで混合インスタンスポリシーを再度追加できます。