AWSのプレイスメントグループ(Placement Group)は、EC2インスタンスを物理的にどのように配置するかを制御するための機能です。要件に応じて、以下の3種類の戦略があります。
🧩 1. クラスタープレイスメントグループ(Cluster Placement Group)
🔹 特徴
- 同じアベイラビリティゾーン内の近接したハードウェアにインスタンスを配置。
- 超低レイテンシー・高帯域通信が可能。
- HPC(ハイパフォーマンスコンピューティング)用途に最適。
✅ 使うべきケース
- 大量のデータを高速でやり取りする必要があるアプリケーション。
- MPIなどの分散処理、科学計算、金融モデリングなど。
⚠ 注意点
- インスタンス起動に失敗することがある(キャパシティ不足)。
- スケールアウトよりスケールアップに向く。
🧩 2. パーティションプレイスメントグループ(Partition Placement Group)
🔹 特徴
- 1グループ内に最大7つのパーティション(ラック単位の分離)を持つ。
- 各パーティションは物理的に独立(電源、ネットワーク等が異なる)。
- 各パーティションに複数のEC2を配置できる。
✅ 使うべきケース
- 大規模な分散システム(例:Hadoop、Cassandra、Kafka)。
- 1つのラック障害で全体停止しないようにしたいとき。
- 高可用性+スケーラビリティの両立が必要なケース。
⚠ 注意点
- AZは1つに限定(AZをまたがない)。
- 各パーティション間の通信レイテンシはやや高め。
🧩 3. スプレッドプレイスメントグループ(Spread Placement Group)
🔹 特徴
- 1つの物理ホストやラックに1つのインスタンスのみ配置。
- 最大7インスタンスまでAZ単位で分離される。
- ハードウェア障害の影響を最小化。
✅ 使うべきケース
- インスタンス数は少なくて良いが、高可用性が最重要な場合。
- 各インスタンスが重要なシステム(例:マスター/リーダー)で、同時障害を避けたい。
⚠ 注意点
- スケールに制限がある(同一AZ内で7台まで)。
- コストは高めになる(分散配置されるため)。
📊 比較表
| 項目 | クラスター | パーティション | スプレッド |
|---|---|---|---|
| 目的 | 高速通信 | 高可用・分散 | 高可用・分離 |
| 物理配置 | 近接 | パーティション単位で分離 | ホスト/ラック単位で完全分離 |
| 通信レイテンシ | 最小 | やや高い | 高い(距離が遠い) |
| スケーラビリティ | 中程度 | 高 | 低(最大7台) |
| 耐障害性 | 低 | 中〜高 | 高 |
| 代表ユースケース | HPC, 分散処理 | HDFS, Kafka, Cassandra | マスター系の冗長化構成 |
🧠 使い分けまとめ
- 🔧 高速通信が必要 → クラスター
- 🏗 分散処理&ラック障害に備えたい → パーティション
- 🧷 インスタンス1台ずつが重要 → スプレッド