EC2 배치그룹(Placement Groups)

도은호·2025년 10월 6일
0

AWS SAA

목록 보기
6/46

한 줄 요약: 배치그룹은 “인스턴스를 물리 하드웨어에 어떻게 배치할지”를 제어지연·내결함성·장애 도메인 분리를 설계하는 기능입니다. 세 가지 전략: Cluster / Spread / Partition.


1) 배치그룹이란?

  • EC2 인스턴스를 물리 랙/호스트 단위로 배치네트워크 지연/대역폭 또는 장애 도메인 분리를 최적화하는 기능
  • 테넌시(전용/공유), 구매 옵션(온디멘드/RI/스팟) 과는 독립인 개념

2) 유형별 핵심 비교

유형목적배치 범위장점주의점/제약대표 사용처
Cluster초저지연·고대역폭단일 AZ 내 가깝게 밀집HPC, 대규모 노드 간 통신 최적상관고장↑(동일 랙), 대량 동시 할당 권장(용량)HPC, 분산 트레이닝, 실시간 분석
Spread상관고장 최소화리전 내 다중 AZ 가능, AZ당 7대 제한각 인스턴스가 서로 다른 랙인스턴스 수 제한(보통 AZ당 7)소수 중요 워크로드(프록시, 코어 서비스)
Partition대규모 장애 도메인 분리리전 내 다중 AZ 가능, AZ당 최대 7 파티션파티션 간 물리 분리 보장파티션 설계 필요HDFS, Kafka, Cassandra 등 분산 스토리지/큐

메모:

  • Cluster반드시 단일 AZ.
  • Spread/Partition여러 AZ에 걸쳐 만들 수 있음(장애 분리 강화).
  • Spread: AZ당 7개 인스턴스 제한(요청으로 상향 가능한 경우도 있으나 기본 가이드로 기억).

3) 선택 가이드

  • 초저지연·고대역폭 통신이 최우선 → Cluster

    • 같은 인스턴스 타입/세대 + ENA(향상된 네트워킹) 권장, 동시 배치로 용량 실패 감소
  • 소수의 중요 인스턴스를 서로 다른 랙에 → Spread

    • 예: 3~7대의 핵심 게이트웨이/컨트롤 플레인 인스턴스
  • 수십~수백 노드의 분산 시스템, 랙/파티션 단위 장애 격리 → Partition

    • 예: Kafka 토픽·브로커/레플리카, HDFS 블록·랙 어웨어, Cassandra 링

4) 제약과 베스트 프랙티스

공통 제약

  • 기존 인스턴스도 정지 → 배치 변경(Modify)시작으로 그룹 이동 가능(유형/용량 제약 있음)
  • 대량 배치 시 인스턴스를 한 번에 혹은 짧은 시간에 띄워 용량 불일치/실패(Insufficient Capacity) 최소화
  • 서로 다른 인스턴스 패밀리/세대 혼합은 Cluster의 네트워크 특성을 제한할 수 있음

Cluster 팁

  • 동일 AZ·동일 타입/세대 권장, ENA 활성화, 드라이버/커널 튜닝
  • 수요가 큰 경우 먼저 큰 덩어리로 런치 → 실패 시 AZ 변경 고려

Spread 팁

  • AZ당 7대 제한 감안해 아키텍처를 다중 AZ로 배치
  • 핵심 구성요소(예: NLB 타겟, 컨트롤 노드)를 Spread로 보호

Partition 팁

  • 파티션 수는 장애 도메인 수와 데이터 레플리카 전략을 고려해 설계(예: Kafka 3 or 6 파티션, 각 AZ 균등 분배)
  • ASG 사용 시 파티션 넘버를 지정해 균형 배치(예: 브로커별 파티션 매핑)

5) CLI 예시

# 1) 배치그룹 생성
# Cluster
aws ec2 create-placement-group \
  --group-name pg-cluster-hpc \
  --strategy cluster

# Spread
aws ec2 create-placement-group \
  --group-name pg-spread-core \
  --strategy spread

# Partition (AZ당 3 파티션 예시)
aws ec2 create-placement-group \
  --group-name pg-partition-kafka \
  --strategy partition \
  --partition-count 3

# 2) 배치그룹에 인스턴스 띄우기(Cluster 예)
aws ec2 run-instances \
  --image-id ami-xxxxxxxx \
  --instance-type c7i.2xlarge \
  --count 10 \
  --placement "GroupName=pg-cluster-hpc" \
  --subnet-id subnet-azA-xxxx

# 3) 기존 인스턴스를 배치그룹으로 이동(정지 후)
aws ec2 stop-instances --instance-ids i-0123456789abcdef0
aws ec2 modify-instance-placement \
  --instance-id i-0123456789abcdef0 \
  --group-name pg-spread-core
aws ec2 start-instances --instance-ids i-0123456789abcdef0

6) CloudFormation 스니펫 (간단 예시)

Resources:
  PgPartitionKafka:
    Type: AWS::EC2::PlacementGroup
    Properties:
      Strategy: partition
      PartitionCount: 3

  KafkaAsg:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      VPCZoneIdentifier:
        - subnet-azA
        - subnet-azB
      MinSize: '6'
      MaxSize: '12'
      DesiredCapacity: '6'
      PlacementGroup: !Ref PgPartitionKafka
      # LaunchTemplate/Config 등 생략

7) 자주 헷갈리는 포인트

  • 배치그룹 ≠ 테넌시: 격리 모델(전용/공유)과 별개
  • Cluster는 단일 AZ: 다중 AZ 분산은 Spread/Partition
  • Spread 제한: AZ당 7대(시험 단골)
  • Partition: AZ당 최대 7 파티션, 파티션 간 랙 공유 없음(강한 장애 격리)

8) 짧은 퀴즈

  1. 초저지연 통신이 필요한 20노드 HPC → 어떤 배치?

    • 정답: Cluster
  2. 5대의 코어 서비스 인스턴스서로 다른 랙에 → 어떤 배치?

    • 정답: Spread
  3. 100노드 Kafka에서 브로커 장애가 다른 브로커에 영향 최소화 → 어떤 배치?

    • 정답: Partition
  4. Cluster 배치그룹을 다중 AZ로 만들 수 있다(O/X)?

    • 정답: X (단일 AZ)

결론

  • 지연·대역폭이면 Cluster, 상관고장 최소화(소수 중요 노드)Spread, 대규모 분산 시스템의 장애 도메인 분리Partition.
  • 시험에서는 요구사항 키워드(저지연/고대역폭 vs 장애분리 vs 대규모 분산) 로 유형을 빠르게 매칭하면 정답률이 올라갑니다.
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글