プレイスメントグループのプレイスメント戦略
EC2 インスタンスのプレイスメントグループは、次のいずれかのプレイスメント戦略を使用して作成できます。
クラスタープレイスメントグループ
クラスタープレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化したものです。インスタンスは単一ラックに分離されるものではありません。クラスタープレイスメントグループは、同じリージョン内の複数のピア接続 VPC にまたがることができます。同じクラスタープレイスメントグループ内のインスタンスは、TCP/IP トラフィックのフローあたりのスループット上限が高くなり、ネットワークの二分帯域幅の広い同じセグメントに配置されます。
次の図は、クラスタープレイスメントグループに配置されたインスタンスを示しています。
低いネットワークレイテンシー、高いネットワークスループット、またはその両方からメリットを受けるアプリケーションの場合は、クラスタープレイスメントグループの使用をお勧めします。また、ネットワークトラフィックの大部分がグループ内のインスタンス間で発生している場合にもお勧めします。プレイスメントグループで、最も低いレイテンシーと最も高いネットワークパフォーマンス (1 秒あたりパケット数) を実現するためには、拡張ネットワーキングをサポートするインスタンスタイプを選択します。詳細については、拡張ネットワーキングを参照してください。
クラスタープレイスメントグループの作成時に親精度タイムプレイスメントグループを指定することで、クラスタープレイスメントグループで起動されたインスタンスが精度時間機能を持つハードウェアに配置できるようにします。クラスタープレイスメントグループを作成するときに --parent-group-id パラメータを使用して、この関係を確立します。
インスタンスは、次の方法で起動することをお勧めします。
-
プレイスメントグループ内で必要な数のインスタンスを起動するには、1 つの起動リクエストを使用します。
-
プレイスメントグループ内のすべてのインスタンスに同じインスタンスタイプを使用します。
後でプレイスメントグループにさらにインスタンスを追加しようとした場合、またはプレイスメントグループ内で複数のインスタンスタイプを起動しようとした場合、容量不足エラーが発生する可能性が高くなります。
プレイスメントグループ内のインスタンスを停止して再起動しても、そのインスタンスは同じプレイスメントグループ内で実行されます。ただし、インスタンスに対して十分な容量がない場合、起動は失敗します。
既にインスタンスを実行中のプレイスメントグループ内のインスタンスを起動するときに容量エラーを受け取った場合は、プレイスメントグループ内のすべてのインスタンスを停止して開始し、もう一度起動を試みてください。インスタンスを起動すると、リクエストされたインスタンスのすべてに対応できるキャパシティを備えたハードウェアにインスタンスが移行される場合があります。
ルールと制限
クラスタープレイスメントグループには、以下のルールが適用されます。
-
以下のインスタンスタイプがサポートされています。
-
現行世代のインスタンス。バーストパフォーマンスインスタンス (T2 など)、Mac1 インスタンス、M7i-flex インスタンスを除く。
-
以下は旧世代のインスタンスです: A1、C3、C4、I2、M4、R3、R4。
-
-
クラスタープレイスメントグループを、複数のアベイラビリティーゾーンで設定することはできません。
-
クラスタープレイスメントグループの 2 つのインスタンス間のトラフィックの最大ネットワークスループット速度は、2 つのインスタンスのうち遅い方に制限されます。高スループットの要件があるアプリケーションの場合、要件に適合するネットワーク接続を備えたインスタンスタイプを選択します。
-
拡張ネットワーキングに対して有効になっているインスタンスには、以下のルールが適用されます。
-
クラスタープレイスメントグループ内のインスタンス間では、シングルフロートラフィックに最大 10 Gbps を使用できます。クラスタープレイスメントグループ内にないインスタンスは、シングルフロートラフィックに最大 5 Gbps を使用できます。
-
同じリージョン内でのインスタンスと Amazon S3 バケットとの間では、パブリック IP アドレス空間または VPC エンドポイントを介したトラフィックに、使用可能なすべてのインスタンスの集計帯域幅を使用できます。
-
-
複数のインスタンスタイプをクラスタープレイスメントグループに起動できます。ただし、これにより起動に成功するために必要な容量が使用可能になる可能性が低くなります。クラスタープレイスメントグループ内ですべてのインスタンスで同じインスタンスタイプを使用することをお勧めします。
-
クラスタープレイスメントグループ内にオンデマンドキャパシティ予約を作成することで、クラスタープレイスメントグループでキャパシティを明示的に予約することをお勧めします。ゾーンリザーブドインスタンスを使用してキャパシティを予約することはできないので注意してください。これは、ゾーンリザーブドインスタンスでは、プレイスメントグループでキャパシティを明示的に予約できないためです。
-
キャパシティブロックはプレイスメントグループをサポートしません。詳細については、「機械学習用のキャパシティブロック」を参照してください。
-
インターネットへのネットワークトラフィックとオンプレミスリソースへの Direct Connect 接続は、クラスタープレイスメントグループに対して 5 Gbps に制限されます。
パーティションプレイスメントグループ
パーティションプレイスメントグループは、アプリケーションに関連するハードウェア障害の頻度を軽減するために役立ちます。パーティションプレイスメントグループを使用する場合、Amazon EC2 は各グループをパーティションと呼ばれる論理的なセグメントに分割します。Amazon EC2 では、プレイスメントグループ内の各パーティションにそれぞれ一連のラックがあります。各ラックには独自のネットワークおよび電源があります。プレイスメントグループ内のパーティションどうしが同じラックを共有することはありません。これにより、アプリケーション内でのハードウェア障害による影響を隔離できます。
次のイメージは、単一のアベイラビリティーゾーン内のパーティションプレイスメントグループのシンプルな描写を示しています。ここでは、3 つのパーティション (パーティション 1、パーティション 2、パーティション 3) があるパーティションプレイスメントグループに配置されたインスタンスを示しています。各パーティションは複数のインスタンスで構成されています。各パーティション内のインスタンスは、他のパーティション内のラックを共有しないため、単一のハードウェア障害の影響は関連付けられたパーティションのみに留まります。
パーティションプレイスメントグループは、HDFS、HBase、Cassandra などの大規模な分散および複製ワークロードを異なるラック間でデプロイするために使用できます。インスタンスをパーティションプレイスメントグループに起動すると、Amazon EC2 は、指定したパーティション数全体にインスタンスを均等に分散しようとします。インスタンスを特定のパーティションに起動して、インスタンスの配置場所をより細かく制御することもできます。
パーティションプレイスメントグループは、同じリージョン内の複数のアベイラビリティーゾーンにパーティションを持つことができます。パーティションプレイスメントグループは、アベイラビリティーゾーンごとに最大 7 つのパーティションを持つことができます。パーティションプレイスメントグループで起動できるインスタンス数の制限は、アカウントの制限のみです。
また、パーティションプレイスメントグループでは各パーティションが可視化されるため、どのインスタンスがどのパーティション内にあるかを確認できます。この情報は、HDFS、HBase、Cassandra などトポロジー対応アプリケーションと共有できます。これらのアプリケーションはこの情報を利用してインテリジェントなデータレプリケーションの決定を行い、データの可用性と耐久性を向上します。
パーティションプレイスメントグループでインスタンスを開始または起動し、リクエストを実行するための固有のハードウェアが不足している場合、そのリクエストは失敗します。Amazon EC2 では、時間の経過とともに、より明確なハードウェアを利用できるようになるため、後でリクエストを再試行できます。
ルールと制限
パーティションプレイスメントグループには、以下のルールが適用されます。
-
パーティションプレイスメントグループは、アベイラビリティーゾーンごとに最大 7 つのパーティションをサポートします。パーティションプレイスメントグループで起動できるインスタンス数の制限は、アカウントの制限のみです。
-
インスタンスをパーティションプレイスメントグループに起動すると、Amazon EC2 は、すべてのパーティションにインスタンスを均等に分散しようとします。Amazon EC2 では、すべてのパーティションにインスタンスが均等に分散されるとは限りません。
-
ハードウェア専有インスタンス を持つパーティションプレイスメントグループは、最大 2 つのパーティションを持つことができます。
-
[Capacity Reservations] (キャパシティー予約) を使用して、パーティションプレイスメントグループでキャパシティを予約することはできません。
スプレッドプレイスメントグループ
スプレッドプレイスメントグループは、それぞれ異なるハードウェアに配置されるインスタンスのグループです。
スプレッドプレイスメントグループは、少数の重要なインスタンスが互いに分離して保持される必要があるアプリケーションに推奨されます。スプレッドプレイスメントグループでインスタンスを起動すると、インスタンスが同じ機器を共有するときに発生し得る同時障害のリスクが軽減されます。スプレッドプレイスメントグループは個別のハードウェアへのアクセスを提供するので、異なるインスタンスタイプの組み合わせや、段階的なインスタンスの起動に適しています。
スプレッドプレイスメントグループでインスタンスを開始または起動し、リクエストを実行するための固有のハードウェアが不足している場合、そのリクエストは失敗します。Amazon EC2 では、時間の経過とともに、より明確なハードウェアを利用できるようになるため、後でリクエストを再試行できます。
スプレッドプレイスメントグループは、ラックまたはホスト全体にインスタンスを分散できます。詳細については、「AWS Outposts のプレイスメントグループ」を参照してください。
次の図は、単一のアベイラビリティーゾーン内にあるスプレッドプレイスメントグループに配置された 7 個のインスタンスを示しています。各インスタンスが異なるラックに配置され、各ラックに独自のネットワークと電源が備わっています。
ルールと制限
スプレッドプレイスメントグループには、以下のルールが適用されます。
-
ラックレベルのスプレッドプレイスメントグループは、AWS リージョンおよび AWS Outposts でサポートされています。
-
ホストレベルのスプレッドプレイスメントグループは、AWS Outposts のみでサポートされています。
-
ラックレベルのスプレッドプレイスメントグループは同じリージョン内の複数のアベイラビリティーゾーン全体に設定できますが、各アベイラビリティーゾーンでグループがサポートする実行中のインスタンスの最大数は 7 個です。
例えば、3 つのアベイラビリティーゾーンがあるリージョンでは、アベイラビリティーゾーンごとにインスタンス 7 個として、合計 21 個のインスタンスをスプレッドプレイスメントグループ内で実行できます。7 個のインスタンスが既に存在しているアベイラビリティーゾーンで 8 個目のインスタンスを起動しようとしても、そのインスタンスは起動しません。
アベイラビリティーゾーンに 7 個を超えるインスタンスが必要な場合は、複数のスプレッドプレイスメントグループを使用することをお勧めします。複数のプレイスメントグループを使用してもグループ全体にインスタンスが分散されるとは限りませんが、各グループ内でインスタンスが分散されることは確実になるため、特定の障害クラスによる影響は抑えられます。
-
AWS Outposts では、ラックレベルのスプレッドプレイスメントグループが Outpost デプロイのラック数と同じ数のインスタンスを保持でき、ホストレベルのスプレッドプレイスメントグループはホスト数と同じ数のインスタンスを保持できます。
-
ハードウェア専有インスタンス では、スプレッドプレイスメントグループはサポートされていません。
-
[Capacity Reservations] (キャパシティー予約) を使用して、スプレッドプレイスメントグループでキャパシティを予約することはできません。
精度タイムプレイスメントグループ
精度タイムプレイスメントグループは、AWS インフラストラクチャの高精度のタイムソースに直接アクセス可能でサポートされているハードウェアにインスタンスを配置します。精度タイムプレイスメントグループで起動されたインスタンスは、拡張 Amazon Time Sync Service にアクセスできます。これにより、すべての Amazon EC2 インスタンスで利用可能な標準のローカル NTP エンドポイントと比較して、より正確なローカルタイムソースが提供されます。
精度タイムプレイスメントグループは、マイクロ秒単位の正確なクロック同期を必要とするアプリケーション (トランザクションの順序付けと整合性を必要とする分散データベース、正確なタイムスタンプを必要とする金融サービス、ローカルクロック読み取りを使用してイベントを順序付けする分散システムなど) に推奨されます。
精度タイムプレイスメントグループのインスタンスには、次の利点があります。
-
精度が向上した拡張ローカル NTP タイムソースは、追加の設定なしでサポートされているすべてのオペレーティングシステムに利用できます。
-
マイクロ秒精度同期の PTP ハードウェアクロック (PHC) デバイスへのアクセス (Linux インスタンスのみ)。
-
ナノ秒分解能のネットワーク測定値のハードウェアパケットタイムスタンプ (Linux インスタンスのみ)。
拡張タイムソースを使用するようにインスタンスを設定する方法については、「EC2 インスタンスのタイムリファレンスを、ローカル Amazon Time Sync Service を使用するように設定します。」を参照してください。
精度タイムプレイスメントグループには、次のルールが適用されます。
ルールと制限
-
サポートされているインスタンスファミリーの現在のリストについては、「EC2 インスタンスのタイムリファレンスを、ローカル Amazon Time Sync Service を使用するように設定します。」を参照してください。
-
精度タイムプレイスメントグループでインスタンスを開始または起動し、拡張 Amazon Time Sync Service へのアクセスを提供するハードウェアが不足している場合、リクエストは失敗します。後でもう一度やり直すか、別のアベイラビリティーゾーンで試してください。
-
クラスタープレイスメントグループの親である精度タイムプレイスメントグループを削除することはできません。
-
精度タイムプレイスメントグループの使用には、追加料金はかかりません。