EC2 배치 그룹: Cluster vs Spread vs Partition 언제 사용할까?
AWS EC2 배치 그룹의 세 가지 유형(Cluster, Spread, Partition)의 차이점과 사용 사례를 설명합니다. HPC, 고가용성, 분산 시스템에 적합한 전략을 선택하세요.
관련 시험 도메인
- Design High-Performing Architectures
- Design Resilient Architectures
핵심 요약
Cluster는 낮은 지연 시간이 필요한 HPC에, Spread는 개별 인스턴스 장애 격리가 필요한 중요 애플리케이션에, Partition은 대규모 분산 시스템(Hadoop, Kafka)에 사용합니다. 배치 그룹 사용에 추가 비용은 없습니다.
시험 팁
시험 빈출: "HPC/빅데이터 분석에 낮은 지연 시간 필요?" → Cluster. "고가용성, 장애 격리?" → Spread. "Hadoop, Cassandra, Kafka?" → Partition.
1. 배치 그룹이란?
개념
**배치 그룹(Placement Group)**은 EC2 인스턴스의 물리적 배치를 제어하여 워크로드 요구사항에 맞게 최적화하는 기능입니다.
┌─────────────────────────────────────────────────────────┐
│ 배치 그룹의 목적 │
├─────────────────────────────────────────────────────────┤
│ │
│ 기본 배치 (배치 그룹 없음): │
│ AWS가 가용 자원에 따라 임의로 인스턴스 배치 │
│ │
│ 배치 그룹 사용: │
│ ├── Cluster: 같은 랙에 밀집 → 낮은 지연 │
│ ├── Spread: 다른 하드웨어에 분산 → 장애 격리 │
│ └── Partition: 파티션별 분리 → 대규모 분산 시스템 │
│ │
│ 비용: 무료 (추가 비용 없음) │
└─────────────────────────────────────────────────────────┘
제약 사항
| 제약 | 설명 |
|---|---|
| 생성 시점 | 인스턴스 시작 시 배치 그룹 지정 필수 |
| 이동 불가 | 실행 중인 인스턴스를 배치 그룹으로 이동 불가 |
| 인스턴스 유형 | 동일 인스턴스 유형 권장 (Cluster) |
| 리전/AZ | Cluster는 단일 AZ, Spread/Partition은 다중 AZ 가능 |
2. Cluster 배치 그룹
개념
Cluster 배치 그룹은 인스턴스를 동일한 가용 영역의 같은 랙에 밀집 배치하여 최소 지연 시간과 최대 네트워크 처리량을 제공합니다.
┌─────────────────────────────────────────────────────────┐
│ Cluster 배치 그룹 │
├─────────────────────────────────────────────────────────┤
│ │
│ 단일 AZ / 단일 랙 │
│ ┌─────────────────────────────────────────┐ │
│ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │
│ │ │EC2 │ │EC2 │ │EC2 │ │EC2 │ │EC2 │ │ │
│ │ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │ 5 │ │ │
│ │ └────┘ └────┘ └────┘ └────┘ └────┘ │ │
│ │ 동일한 랙에 밀집 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 장점: 10Gbps ~ 100Gbps 네트워크, 마이크로초 지연 │
│ 단점: 랙 장애 시 모든 인스턴스 영향 │
└─────────────────────────────────────────────────────────┘
사용 사례
| 사용 사례 | 이유 |
|---|---|
| HPC (고성능 컴퓨팅) | 노드 간 빠른 통신 필요 |
| 빅데이터 분석 | 대용량 데이터 처리 |
| MPI 작업 | 메시지 전달 지연 최소화 |
| 금융 거래 시스템 | 마이크로초 단위 지연 중요 |
제한 사항
- 단일 AZ만 지원
- 인스턴스 수 제한 없지만, 용량 부족 발생 가능
- 동일 인스턴스 유형 사용 권장
시험 팁
시험 포인트: Cluster 배치 그룹은 단일 AZ에서만 작동합니다. 고가용성이 필요하면 Spread 또는 Partition을 선택하세요.
3. Spread 배치 그룹
개념
Spread 배치 그룹은 인스턴스를 **서로 다른 하드웨어(랙)**에 분산 배치하여 개별 인스턴스의 장애를 격리합니다.
┌─────────────────────────────────────────────────────────┐
│ Spread 배치 그룹 │
├─────────────────────────────────────────────────────────┤
│ │
│ AZ-a AZ-b AZ-c │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Rack1│ │Rack3│ │Rack5│ │
│ │┌───┐│ │┌───┐│ │┌───┐│ │
│ ││EC2││ ││EC2││ ││EC2││ │
│ │└───┘│ │└───┘│ │└───┘│ │
│ └─────┘ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Rack2│ │Rack4│ │Rack6│ │
│ │┌───┐│ │┌───┐│ │┌───┐│ │
│ ││EC2││ ││EC2││ ││EC2││ │
│ │└───┘│ │└───┘│ │└───┘│ │
│ └─────┘ └─────┘ └─────┘ │
│ │
│ 특징: 각 인스턴스가 다른 랙에 배치 │
│ 제한: AZ당 최대 7개 인스턴스 │
└─────────────────────────────────────────────────────────┘
제한 사항
| 제한 | 설명 |
|---|---|
| AZ당 인스턴스 | 최대 7개 |
| 총 인스턴스 | AZ 수 × 7개 (예: 4 AZ = 28개) |
사용 사례
| 사용 사례 | 이유 |
|---|---|
| 중요 애플리케이션 | 개별 인스턴스 장애 격리 |
| 소규모 고가용성 | 동시 장애 최소화 |
| 데이터베이스 복제 | 마스터/슬레이브 분리 |
Spread vs Multi-AZ
┌─────────────────────────────────────────────────────────┐
│ Spread 배치 그룹 vs Multi-AZ 배포 │
├─────────────────────────────────────────────────────────┤
│ │
│ Multi-AZ만 사용: │
│ - AZ 수준 장애 격리 │
│ - 같은 AZ 내 인스턴스는 동일 랙일 수 있음 │
│ │
│ Spread + Multi-AZ: │
│ - AZ 수준 + 랙 수준 장애 격리 │
│ - 같은 AZ 내에서도 다른 랙에 배치 │
│ │
│ 결론: Spread는 더 세밀한 장애 격리 제공 │
└─────────────────────────────────────────────────────────┘
4. Partition 배치 그룹
개념
Partition 배치 그룹은 인스턴스를 논리적 파티션으로 나누고, 각 파티션은 서로 다른 랙에 배치됩니다. 대규모 분산 워크로드에 적합합니다.
┌─────────────────────────────────────────────────────────┐
│ Partition 배치 그룹 │
├─────────────────────────────────────────────────────────┤
│ │
│ AZ-a │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Partition 1 │ │ Partition 2 │ │
│ │ (Rack A) │ │ (Rack B) │ │
│ │ ┌───┐ ┌───┐ │ │ ┌───┐ ┌───┐ │ │
│ │ │EC2│ │EC2│ │ │ │EC2│ │EC2│ │ │
│ │ └───┘ └───┘ │ │ └───┘ └───┘ │ │
│ │ ┌───┐ ┌───┐ │ │ ┌───┐ ┌───┐ │ │
│ │ │EC2│ │EC2│ │ │ │EC2│ │EC2│ │ │
│ │ └───┘ └───┘ │ │ └───┘ └───┘ │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ 특징: │
│ - 파티션 간 랙 공유 없음 │
│ - 파티션 내 여러 인스턴스 가능 │
│ - AZ당 최대 7개 파티션 │
│ - 최대 100개 인스턴스 │
└─────────────────────────────────────────────────────────┘
제한 사항
| 제한 | 설명 |
|---|---|
| AZ당 파티션 | 최대 7개 |
| 총 인스턴스 | 최대 100개 |
| 파티션당 인스턴스 | 제한 없음 |
사용 사례
| 사용 사례 | 이유 |
|---|---|
| Hadoop/HDFS | 데이터 블록을 파티션별 복제 |
| Cassandra | 링 구조의 노드 분산 |
| Kafka | 브로커 파티션 분리 |
| HBase | RegionServer 분리 |
파티션 정보 활용
Partition 배치 그룹은 메타데이터 서비스를 통해 인스턴스의 파티션 정보를 제공합니다:
# 인스턴스가 속한 파티션 번호 확인
curl http://169.254.169.254/latest/meta-data/placement/partition-number
애플리케이션에서 이 정보를 활용하여 **랙 인식 복제(Rack-Aware Replication)**를 구현할 수 있습니다.
5. Cluster vs Spread vs Partition 비교
핵심 비교표
| 특성 | Cluster | Spread | Partition |
|---|---|---|---|
| 목적 | 낮은 지연 시간 | 장애 격리 | 대규모 분산 |
| AZ 지원 | 단일 AZ | 다중 AZ | 다중 AZ |
| 인스턴스 제한 | 없음 (용량 허용 시) | AZ당 7개 | 최대 100개 |
| 랙 배치 | 같은 랙 | 모두 다른 랙 | 파티션별 다른 랙 |
| 장애 범위 | 전체 영향 | 1개만 영향 | 파티션 단위 |
| 비용 | 무료 | 무료 | 무료 |
선택 기준
┌─────────────────────────────────────────────────────────┐
│ 배치 그룹 선택 가이드 │
├─────────────────────────────────────────────────────────┤
│ │
│ Q1: 네트워크 성능이 가장 중요한가요? │
│ (HPC, 빅데이터, 금융) │
│ └── 예 → Cluster │
│ │
│ Q2: 소규모이고 개별 인스턴스 장애 격리가 필요한가요? │
│ (중요 애플리케이션, 7개 이하) │
│ └── 예 → Spread │
│ │
│ Q3: 대규모 분산 시스템인가요? │
│ (Hadoop, Cassandra, Kafka) │
│ └── 예 → Partition │
│ │
│ Q4: 특별한 요구사항이 없나요? │
│ └── 배치 그룹 사용 불필요 │
└─────────────────────────────────────────────────────────┘
6. 배치 그룹 생성 및 사용
CLI로 배치 그룹 생성
# Cluster 배치 그룹 생성
aws ec2 create-placement-group \
--group-name my-cluster-pg \
--strategy cluster
# Spread 배치 그룹 생성
aws ec2 create-placement-group \
--group-name my-spread-pg \
--strategy spread
# Partition 배치 그룹 생성 (7개 파티션)
aws ec2 create-placement-group \
--group-name my-partition-pg \
--strategy partition \
--partition-count 7
인스턴스 시작 시 배치 그룹 지정
# 배치 그룹에 인스턴스 시작
aws ec2 run-instances \
--image-id ami-12345678 \
--instance-type c5n.18xlarge \
--placement "GroupName=my-cluster-pg"
# Partition 배치 그룹에 특정 파티션 지정
aws ec2 run-instances \
--image-id ami-12345678 \
--instance-type r5.large \
--placement "GroupName=my-partition-pg,PartitionNumber=1"
7. 주의사항 및 모범 사례
Cluster 배치 그룹
✅ 권장사항:
- 동일한 인스턴스 유형 사용
- 한 번에 필요한 모든 인스턴스 시작 (용량 확보)
- Enhanced Networking 지원 인스턴스 사용
⚠️ 주의사항:
- 용량 부족 오류 가능 (InsufficientInstanceCapacity)
- 인스턴스 중지 후 재시작 시 실패 가능
Spread 배치 그룹
✅ 권장사항:
- 소규모 중요 워크로드에 사용
- 다중 AZ로 가용성 극대화
⚠️ 주의사항:
- AZ당 7개 제한 주의
- 대규모 확장 시 Partition 고려
Partition 배치 그룹
✅ 권장사항:
- 분산 시스템의 토폴로지와 매핑
- 파티션 정보를 애플리케이션에서 활용
⚠️ 주의사항:
- 100개 인스턴스 제한
- 파티션 정보 API 활용 필요
시험 출제 포인트
자주 나오는 문제 유형
-
시나리오 기반 선택
- "HPC 클러스터에 적합한 배치 전략?" → Cluster
- "소규모 고가용성 애플리케이션?" → Spread
- "Hadoop 클러스터 배포?" → Partition
-
제한 사항
- "Spread 배치 그룹 AZ당 최대 인스턴스?" → 7개
- "Cluster 배치 그룹 AZ 제한?" → 단일 AZ만
-
특징 비교
- "장애 격리 가장 강한 배치 그룹?" → Spread
- "네트워크 성능 가장 좋은 배치 그룹?" → Cluster
시험 팁
핵심 암기:
- Cluster = 단일 AZ, 최저 지연, HPC
- Spread = 다중 AZ 가능, AZ당 7개, 장애 격리
- Partition = 다중 AZ 가능, 최대 100개, Hadoop/Kafka
- 비용 = 모두 무료
FAQ
Q1: 배치 그룹을 사용하면 추가 비용이 있나요?
아니요. 배치 그룹 사용에 추가 비용은 없습니다. 일반 EC2 인스턴스 비용만 발생합니다.
Q2: 실행 중인 인스턴스를 배치 그룹으로 이동할 수 있나요?
직접 이동은 불가능합니다. 인스턴스를 중지 → AMI 생성 → 새 인스턴스를 배치 그룹에 시작하는 방식으로 마이그레이션해야 합니다.
Q3: Cluster 배치 그룹에서 용량 부족 오류가 발생하면?
- 인스턴스 중지 후 재시작 시도
- 다른 인스턴스 유형으로 변경
- 새 Cluster 배치 그룹 생성 후 인스턴스 시작
- AWS Support에 용량 예약 요청
Q4: Spread와 Partition 중 어떤 것을 선택해야 하나요?
- 7개 이하 인스턴스 + 개별 장애 격리 필요 → Spread
- 대규모 + 그룹 단위 장애 격리 → Partition
Q5: Partition 배치 그룹에서 특정 파티션을 지정하지 않으면?
AWS가 자동으로 파티션을 할당합니다. 특정 파티션에 인스턴스를 배치하려면 PartitionNumber 파라미터를 지정하세요.
마무리
EC2 배치 그룹 선택 요약:
| 요구사항 | 배치 그룹 |
|---|---|
| 최저 지연, HPC | Cluster |
| 개별 장애 격리, 소규모 | Spread |
| 대규모 분산 시스템 | Partition |
시험에서는 "HPC/빅데이터" → Cluster, "고가용성/장애 격리" → Spread, "Hadoop/Kafka" → Partition을 떠올리세요.