EBS는 EC2 인스턴스에 연결할 수 있는 네트워크 드라이브입니다.
핵심 특징:
월 30GB의 General Purpose SSD 또는 Magnetic 스토리지 무료 제공
EC2 Instance ←── 네트워크 ──→ EBS Volume
│ │
물리적 서버 네트워크 스토리지
장점:
단점:
❌ 불가능한 연결
us-east-1a의 EBS → us-east-1b의 EC2
✅ 해결 방법
EBS 스냅샷 생성 → 다른 AZ로 복사 → 새 볼륨 생성
EC2 인스턴스 종료 시 EBS 볼륨의 동작을 제어하는 설정:
| 볼륨 타입 | 기본 설정 | 동작 |
|---|---|---|
| Root 볼륨 | 활성화 | 인스턴스 종료 시 함께 삭제 |
| 추가 볼륨 | 비활성화 | 인스턴스 종료 후에도 보존 |
실무 팁: 중요한 데이터가 있는 Root 볼륨은 비활성화로 설정하여 실수로 인한 데이터 손실 방지
특정 시점의 EBS 볼륨 백업본
EBS Volume → Snapshot → 다른 AZ/Region으로 복사 가능
모범 사례:
목적: 비용 절약 (75% 저렴)
일반 스냅샷 → Archive Tier 이동
복원 시간: 24~72시간
사용 사례: 장기 보관용 백업, 규정 준수용 데이터
목적: 실수로 삭제한 스냅샷 복구
설정 옵션:
스냅샷 삭제 → Recycle Bin 이동 → 보존 기간 내 복구 가능
목적: 스냅샷에서 복원한 볼륨의 초기 성능 저하 방지
일반 복원 과정:
스냅샷 → 새 볼륨 생성 → 첫 액세스 시 지연 발생
FSR 적용 시:
스냅샷 → 블록 미리 로딩 → 즉시 최적 성능
핵심 개념:
특징:
단계별 스토리지 관리:
활성 데이터 → EBS Volume
백업 데이터 → Snapshot
장기 보관 → Archive Tier
EBS는 6가지 볼륨 타입을 제공하며, 각각 다른 성능과 비용 특성을 가집니다.
SSD 기반 (부팅 가능):
├── gp2/gp3: 범용 SSD
└── io1/io2: 프로비저닝된 IOPS SSD
HDD 기반 (부팅 불가):
├── st1: 처리량 최적화 HDD
└── sc1: 콜드 HDD
핵심 특성 지표:
사용 사례:
| 구분 | gp3 | gp2 |
|---|---|---|
| 용량 | 1 GiB - 16 TiB | 1 GiB - 16 TiB |
| 기본 IOPS | 3,000 IOPS | 볼륨 크기에 따라 결정 |
| 최대 IOPS | 16,000 IOPS | 16,000 IOPS |
| 기본 처리량 | 125 MiB/s | 볼륨 크기에 따라 결정 |
| 최대 처리량 | 1,000 MiB/s | 250 MiB/s |
| 성능 조정 | IOPS와 처리량 독립 조정 | 볼륨 크기와 연동 |
gp2 IOPS = 볼륨 크기(GB) × 3
최대 IOPS 도달 볼륨 크기 = 16,000 ÷ 3 = 5,334 GB
예시:
- 100 GB → 300 IOPS
- 1,000 GB → 3,000 IOPS
- 5,334 GB → 16,000 IOPS (최대)
gp2 버스트 기능: 작은 볼륨도 일시적으로 3,000 IOPS까지 버스트 가능
사용 사례:
| 구분 | io1 | io2 Block Express |
|---|---|---|
| 용량 | 4 GiB - 16 TiB | 4 GiB - 64 TiB |
| 최대 IOPS | 64,000 (Nitro) / 32,000 (기타) | 256,000 |
| IOPS:GiB 비율 | 50:1 | 1,000:1 |
| 지연시간 | 밀리초 | 서브 밀리초 |
| Multi-Attach | 지원 | 지원 |
32,000 IOPS 이상 필요 시:
EC2 Nitro 인스턴스 + io1/io2 조합 필수
특징:
사용 사례:
특징:
사용 사례:
데이터베이스 → gp3 또는 io1/io2
높은 처리량 → st1
최저 비용 → sc1
범용 용도 → gp3
부팅 볼륨 → gp3 또는 io1/io2 (SSD만 가능)
16,000 IOPS 이하 → gp3
16,000 IOPS 초과 → io1/io2
32,000 IOPS 초과 → Nitro + io1/io2
256,000 IOPS 필요 → io2 Block Express
하나의 EBS 볼륨을 여러 EC2 인스턴스에 동시 연결
지원 볼륨: io1/io2 패밀리만 가능
클러스터링된 Linux 애플리케이션:
┌─────────┐ ┌─────────────┐ ┌─────────┐
│ EC2-1 │────│ EBS io2 │────│ EC2-2 │
└─────────┘ │Multi-Attach │ └─────────┘
└─────────────┘
│
┌─────────┐
│ EC2-3 │
└─────────┘
적용 예시:
⚠️ 주의사항: 애플리케이션에서 동시 쓰기 작업을 직접 관리해야 함
EBS 볼륨 암호화 시 다음이 모두 암호화됩니다:
암호화 적용 범위:
├── 볼륨 내부 저장 데이터 (Data at Rest)
├── 인스턴스-볼륨 간 전송 데이터 (Data in Transit)
├── 모든 스냅샷
└── 스냅샷에서 생성된 모든 볼륨
1. 암호화되지 않은 볼륨의 스냅샷 생성
↓
2. 스냅샷 복사하면서 암호화 적용
↓
3. 암호화된 스냅샷에서 새 볼륨 생성
↓
4. 새 볼륨을 인스턴스에 연결
일반적인 워크로드 → gp3 (비용 효율적)
데이터베이스 → io2 (일관된 성능)
빅데이터 처리 → st1 (높은 처리량)
아카이브 → sc1 (최저 비용)
이러한 EBS 볼륨 타입과 고급 기능들을 이해하고 적절히 활용하면 AWS에서 안정적이고 확장 가능한 스토리지 인프라를 구축할 수 있습니다.