SAABlog
스토리지중급

S3 복제 완벽 가이드: CRR vs SRR 언제 무엇을 선택할까?

AWS S3 교차 리전 복제(CRR)와 동일 리전 복제(SRR)의 차이점, 사용 사례, 설정 방법을 비교합니다. 재해 복구와 규정 준수를 위한 선택 가이드입니다.

PHILOLAMB-
S3CRRSRR복제재해복구데이터 보호

관련 시험 도메인

  • Design Resilient Architectures

핵심 요약

**CRR(교차 리전 복제)**는 재해 복구와 지연 시간 단축을 위해 다른 리전으로 복제하고, **SRR(동일 리전 복제)**는 로그 통합, 계정 간 복제, 데이터 주권 준수를 위해 같은 리전 내에서 복제합니다.

시험 팁

시험 빈출: "규정 준수로 데이터가 특정 리전을 떠날 수 없는 경우?" → SRR. "재해 복구를 위해 다른 리전에 데이터 복제?" → CRR. "복제 전 기존 객체도 복제하려면?" → S3 배치 복제.


1. S3 복제 기본 개념

라이브 복제란?

S3 라이브 복제는 소스 버킷에 업로드된 객체를 대상 버킷으로 자동 비동기 복제하는 기능입니다.

┌─────────────────────────────────────────────────────────┐
│                  S3 라이브 복제 개요                       │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   소스 버킷                        대상 버킷              │
│   ┌──────────┐    자동 복제       ┌──────────┐          │
│   │  객체 A  │ ─────────────────▶ │  객체 A  │          │
│   │  객체 B  │     (비동기)       │  객체 B  │          │
│   │  객체 C  │                    │  객체 C  │          │
│   └──────────┘                    └──────────┘          │
│                                                         │
│   복제 유형:                                             │
│   - CRR: 다른 AWS 리전으로 복제                          │
│   - SRR: 같은 AWS 리전 내 복제                           │
└─────────────────────────────────────────────────────────┘

복제 요구 사항

요구 사항설명
버전 관리소스/대상 버킷 모두 버전 관리 활성화 필수
IAM 권한S3가 객체를 복제할 수 있는 IAM 역할 필요
소유권소스 버킷 소유자가 복제 규칙 생성

2. CRR (Cross-Region Replication)

개념

CRR은 서로 다른 AWS 리전의 S3 버킷 간에 객체를 복제합니다. 2015년부터 사용되어 왔습니다.

사용 사례

┌─────────────────────────────────────────────────────────┐
│                   CRR 사용 사례                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  1️⃣ 재해 복구 (DR)                                      │
│     서울 리전 ─────────────────▶ 도쿄 리전              │
│     (Primary)     CRR          (DR 사이트)              │
│                                                         │
│  2️⃣ 지연 시간 최소화                                    │
│     미국 사용자 ◀── 버지니아 리전                        │
│     유럽 사용자 ◀── 프랑크푸르트 리전 (복제본)           │
│                                                         │
│  3️⃣ 규정 준수 (지리적 분산 요구)                         │
│     Primary 데이터와 백업을 멀리 떨어진 리전에 보관       │
│                                                         │
│  4️⃣ 분석 클러스터 운영                                   │
│     두 리전의 EMR 클러스터가 동일 데이터 분석 필요        │
└─────────────────────────────────────────────────────────┘

CRR 설정 예시

# AWS CLI로 CRR 규칙 생성
aws s3api put-bucket-replication \
  --bucket source-bucket-seoul \
  --replication-configuration '{
    "Role": "arn:aws:iam::123456789012:role/S3ReplicationRole",
    "Rules": [{
      "ID": "CRR-to-Tokyo",
      "Status": "Enabled",
      "Priority": 1,
      "Filter": {},
      "Destination": {
        "Bucket": "arn:aws:s3:::destination-bucket-tokyo"
      },
      "DeleteMarkerReplication": {"Status": "Disabled"}
    }]
  }'

3. SRR (Same-Region Replication)

개념

SRR은 같은 AWS 리전 내의 S3 버킷 간에 객체를 복제합니다. 2019년에 출시되었습니다.

사용 사례

┌─────────────────────────────────────────────────────────┐
│                   SRR 사용 사례                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  1️⃣ 로그 통합                                           │
│     App-A 로그 ──┐                                      │
│     App-B 로그 ──┼──▶ 중앙 로그 버킷 (분석용)            │
│     App-C 로그 ──┘                                      │
│                                                         │
│  2️⃣ 개발/테스트 환경 복제                                │
│     프로덕션 계정 ────SRR────▶ 개발 계정                 │
│     (실제 데이터)              (테스트용 복사본)          │
│                                                         │
│  3️⃣ 데이터 주권 준수                                    │
│     데이터가 특정 국가/리전을 떠날 수 없는 규정           │
│     같은 리전 내 다른 계정으로 백업                       │
│                                                         │
│  4️⃣ 스토리지 클래스 변환                                 │
│     Standard ────SRR────▶ Glacier (자동 아카이브)       │
└─────────────────────────────────────────────────────────┘

시험 팁

시험 포인트: 데이터 주권 법률로 데이터가 특정 리전을 벗어날 수 없는 경우, SRR을 사용하여 같은 리전 내 다른 계정으로 백업합니다.


4. CRR vs SRR 비교

핵심 비교표

특성CRRSRR
복제 범위다른 AWS 리전같은 AWS 리전
주요 목적재해 복구, 지연 시간 단축로그 통합, 계정 간 복제
데이터 전송 비용리전 간 전송 요금 발생동일 리전 내 전송 (낮음)
지연 시간리전 간 거리에 따라 다름매우 낮음
데이터 주권데이터가 다른 리전으로 이동데이터가 리전 내 유지

선택 기준

질문 1: 데이터가 특정 리전을 떠나면 안 되나요?
├── 예 → SRR
└── 아니오 → 질문 2로

질문 2: 재해 복구가 주요 목적인가요?
├── 예 → CRR
└── 아니오 → 질문 3으로

질문 3: 다른 리전 사용자의 지연 시간을 줄여야 하나요?
├── 예 → CRR
└── 아니오 → SRR (로그 통합, 계정 간 복제 등)

5. 복제 설정 시 주요 옵션

복제 대상 필터링

복제 규칙 필터 옵션:
├── 전체 버킷 복제
├── 접두사 기반 (예: logs/)
└── 태그 기반 (예: Replicate=true)

복제 시간 제어 (RTC)

S3 Replication Time Control은 99.99%의 객체를 15분 이내에 복제하는 SLA를 제공합니다.

옵션설명
일반 복제대부분 15분 이내, SLA 없음
RTC 활성화99.99% 객체 15분 이내 복제 보장

양방향 복제

┌─────────────────────────────────────────────────────────┐
│                   양방향 복제 구성                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   버킷 A (서울)            버킷 B (도쿄)                  │
│   ┌──────────┐            ┌──────────┐                 │
│   │          │ ─────────▶ │          │                 │
│   │          │ ◀───────── │          │                 │
│   └──────────┘            └──────────┘                 │
│                                                         │
│   양방향 복제 = Active-Active 구성                       │
│   - 어느 리전에서든 쓰기 가능                             │
│   - 다중 리전 액세스 포인트와 함께 사용                   │
└─────────────────────────────────────────────────────────┘

6. 복제되지 않는 항목

중요 제한 사항

항목복제 여부설명
기존 객체복제 규칙 생성 전 객체는 자동 복제 안 됨
삭제 마커선택적DeleteMarkerReplication으로 설정
영구 삭제버전 ID 지정 삭제는 복제 안 됨
SSE-C 암호화 객체고객 제공 키 암호화 객체
수명 주기 작업Lifecycle 규칙에 의한 삭제/전환

S3 배치 복제

복제 규칙 설정 전에 존재했던 기존 객체를 복제하려면 S3 배치 복제를 사용합니다.

# 배치 복제 작업 생성
aws s3control create-job \
  --account-id 123456789012 \
  --operation '{"S3ReplicateObject": {}}' \
  --manifest '{...}' \
  --report '{...}' \
  --priority 10 \
  --role-arn arn:aws:iam::123456789012:role/BatchReplicationRole

시험 팁

핵심 암기: 복제 규칙 설정 이전에 존재하던 객체는 자동 복제되지 않습니다. 기존 객체를 복제하려면 S3 배치 복제를 사용해야 합니다.


7. 복제 모니터링

복제 지표 (Replication Metrics)

모니터링 가능 항목:
├── ReplicationLatency: 복제 지연 시간
├── BytesPendingReplication: 복제 대기 중인 바이트
├── OperationsPendingReplication: 복제 대기 중인 작업 수
└── OperationsFailedReplication: 실패한 복제 작업 수

EventBridge 알림

복제 실패 시 알림을 받을 수 있습니다:

{
  "source": ["aws.s3"],
  "detail-type": ["Object Replication Failed"],
  "detail": {
    "bucket": {"name": ["source-bucket"]}
  }
}

8. 비용 고려 사항

비용 구성

항목CRRSRR
복제 요청PUT 요청 요금PUT 요청 요금
데이터 전송리전 간 전송 요금없음 (동일 리전)
대상 스토리지대상 리전 스토리지 요금동일 리전 스토리지 요금
RTC 추가 요금있음있음

비용 최적화 팁

1. 필터 사용
   └── 필요한 객체만 복제 (접두사/태그 필터)

2. 스토리지 클래스 지정
   └── 대상 버킷에 저렴한 스토리지 클래스 사용

3. 수명 주기 정책 병행
   └── 복제 후 일정 기간 지나면 Glacier로 전환

시험 출제 포인트

자주 나오는 문제 유형

  1. 시나리오 기반 선택

    • "재해 복구를 위해 다른 리전에 데이터 복제?" → CRR
    • "데이터 주권으로 리전을 벗어날 수 없는 경우?" → SRR
    • "여러 버킷의 로그를 중앙 버킷에 통합?" → SRR
  2. 제한 사항 관련

    • "복제 규칙 설정 전 기존 객체는?" → 자동 복제 안 됨, 배치 복제 필요
    • "버전 관리 필수인가?" → 예, 소스/대상 모두
  3. 삭제 동작

    • "소스에서 객체 삭제 시 대상에서도 삭제되나?" → 기본적으로 아니오 (삭제 마커 복제는 선택적)

시험 팁

핵심 암기:

  • CRR = 다른 리전 (재해 복구, 지연 시간 단축)
  • SRR = 같은 리전 (로그 통합, 데이터 주권)
  • 기존 객체 복제 = S3 배치 복제
  • 버전 관리 = 필수

FAQ

Q1: CRR과 SRR을 동시에 사용할 수 있나요?

예. 하나의 소스 버킷에서 여러 대상 버킷으로 복제할 수 있습니다. 같은 리전 내 버킷(SRR)과 다른 리전 버킷(CRR)에 동시에 복제 규칙을 설정할 수 있습니다.

Q2: 복제된 객체를 다시 복제할 수 있나요?

아니요. 기본적으로 복제된 객체(복제본)는 다시 복제되지 않습니다. 이는 무한 복제 루프를 방지하기 위함입니다. 단, 양방향 복제 구성 시에는 복제본 복제가 활성화됩니다.

Q3: 복제 지연 시간은 얼마나 되나요?

일반적으로 대부분의 객체는 15분 이내에 복제됩니다. SLA가 필요하면 **Replication Time Control(RTC)**을 활성화하여 99.99%의 객체가 15분 이내에 복제되도록 보장할 수 있습니다.

Q4: 삭제가 복제되면 실수로 데이터를 잃을 수 있나요?

기본적으로 삭제 작업은 복제되지 않습니다. DeleteMarkerReplication을 활성화하면 삭제 마커가 복제되지만, 버전 ID를 지정한 영구 삭제는 복제되지 않아 대상 버킷의 데이터는 보존됩니다.

Q5: 다른 AWS 계정의 버킷으로 복제할 수 있나요?

예. 교차 계정 복제가 가능합니다. 대상 버킷에 소스 계정의 복제를 허용하는 버킷 정책을 추가해야 하며, 객체 소유권 설정도 고려해야 합니다.


마무리

S3 복제는 데이터 보호와 가용성을 높이는 핵심 기능입니다:

  • CRR: 재해 복구, 지연 시간 단축, 규정 준수 (지리적 분산)
  • SRR: 로그 통합, 계정 간 복제, 데이터 주권 준수

시험에서는 "다른 리전 복제" → CRR, "같은 리전 내 복제" → SRR, "기존 객체 복제" → S3 배치 복제를 떠올리세요.