클라우드 보안 - EBS · VPC · 네트워크 완전 정리
Phase 2 | Cloud Security
EBS · VPC · 네트워크 완전 정리
블록 스토리지 설계 · VPC 구조 · Subnet / Route Table / IGW / NAT Gateway · 3-Tier 아키텍처까지
01
EBS (Elastic Block Store) — 블록 스토리지
EC2에 네트워크로 연결되는 분산 블록 스토리지. 단일 디스크가 아니라 AZ 내 다중 스토리지 노드에 동기 복제되어 저장된다.
동작 원리
- EC2 ↔ EBS : NVMe / ENA 기반 네트워크 I/O
- 데이터는 AZ 내부에서 동기 복제 (multi-node)
- Snapshot → Amazon S3에 증분(incremental) 저장
- AZ 종속 — 다른 AZ EC2에 직접 attach 불가
성능 3요소
- IOPS — 초당 입출력 횟수. DB 워크로드 핵심 지표
- Throughput — 전송량 (MB/s). 대용량 순차 읽기/쓰기
- Latency — 지연시간. 실시간 처리 서비스에 영향
- gp3: IOPS/Throughput 독립 조절 가능 (비용 분리)
볼륨 타입별 선택 기준
gp3
범용 SSD (기본)
기본 3,000 IOPS / 125MB/s. 일반 서버, 웹앱. 성능-비용 분리 구조
gp2
범용 SSD (구형)
IOPS = GB × 3 (연동). Burst Credit 소진 시 성능 급락 주의
io2
Provisioned IOPS
최대 64,000 IOPS. OLTP DB, Oracle, SAP. 99.999% 내구성
st1
처리량 최적화 HDD
순차 읽기 최적화. 로그 수집, ETL, 빅데이터 파이프라인
sc1
Cold HDD
최저 비용. 비정기 접근 백업, 아카이브. 부트 볼륨 불가
핵심 기능
| 기능 | 설명 | 실무 포인트 |
|---|---|---|
| Snapshot | 블록 레벨 증분 백업. S3에 저장. Cross-Region 복제 가능 | DR(Disaster Recovery) 핵심 수단. 주기적 자동화 필수 |
| Encryption | KMS 기반 AES-256. 저장 데이터 + 전송 중 암호화 | AWS 공식: 성능 영향 거의 없음. 보안 요건 시 기본 활성화 |
| Resize (온라인) | 운영 중 볼륨 크기 확장 (Downtime 없음) | OS에서 filesystem 확장 별도 필요 (resize2fs 등) |
| Multi-Attach | 하나의 EBS를 여러 EC2에 동시 attach | io1/io2 전용. 클러스터 파일시스템(GFS2 등) 필요 |
실무 장애 사례
- AZ Mismatch — EBS와 EC2가 다른 AZ에 있으면 attach 실패. EBS는 AZ 종속 자원임을 항상 확인
- Burst Credit 소진 (gp2) — 크레딧 고갈 시 IOPS가 베이스라인(100)으로 급락. gp3 마이그레이션 또는 io2 전환 권장
- Snapshot 미설정 — 볼륨 삭제 또는 장애 시 데이터 복구 불가. AWS Backup으로 자동화 필수
02
VPC (Virtual Private Cloud) — 네트워크 격리 공간
AWS에서 L3 네트워크를 정의하는 논리적 격리 공간. CIDR 블록으로 IP 범위를 정의하고, 내부에 Subnet / Route Table / 보안 정책을 구성한다.
VPC — 10.0.0.0/16
Public Subnet — 10.0.1.0/24
Application Load Balancer
NAT Gateway
Bastion Host
Private Subnet (App) — 10.0.2.0/24
Application Server
Auto Scaling Group
Private Subnet (DB) — 10.0.3.0/24
Database (Multi-AZ)
ElastiCache
설계 핵심 3원칙 | ① CIDR 충분히 크게 — 나중에 줄이는 건 가능하지만 늘리기 어려움 (최소 /16). ② AZ 분산 — 각 AZ에 Public/Private Subnet 쌍으로 배치. ③ Public/Private 분리 — 라우팅 기준으로 명확히 구분.
03
Subnet & Route Table
Public vs Private 판단 기준 | 단순히 IP 주소가 아니라 Route Table에 IGW 경로가 있는지 여부로 결정된다. IGW 경로가 있으면 Public, NAT Gateway 경로만 있으면 Private이다.
| 구분 | Route Table 조건 | 배치 리소스 | 외부 접근 |
|---|---|---|---|
| Public Subnet | 0.0.0.0/0 → IGW |
ALB, NAT GW, Bastion Host | 인바운드/아웃바운드 모두 가능 |
| Private Subnet | 0.0.0.0/0 → NAT GW |
App Server, RDS, ElastiCache | 아웃바운드만 가능 (NAT 경유) |
Route Table 예시
# Public Subnet Route Table
Destination Target
10.0.0.0/16 → local # VPC 내부 통신
0.0.0.0/0 → igw-xxxxxxxx # 인터넷 출입 (IGW)
# Private Subnet Route Table
Destination Target
10.0.0.0/16 → local # VPC 내부 통신
0.0.0.0/0 → nat-xxxxxxxx # 아웃바운드만 (NAT Gateway)
Longest Prefix Match | Route Table은 더 구체적인(긴) prefix를 우선 적용한다.
10.0.0.0/16 → local과 0.0.0.0/0 → IGW가 공존할 때, 10.0.x.x로 가는 트래픽은 local을 선택한다.
04
Internet Gateway & NAT Gateway
Internet Gateway (IGW)
- VPC ↔ 인터넷 간 L3 게이트웨이
- Stateless — 연결 상태 추적 없음
- NAT 기능 없음 — 퍼블릭 IP 필요
- VPC당 1개 연결. 수평 확장 자동
- 인바운드 + 아웃바운드 양방향
NAT Gateway
- Private Subnet → 인터넷 아웃바운드 전용
- Source IP를 EIP로 변환 (SNAT)
- Stateful — 연결 상태 추적 (응답 허용)
- Public Subnet에 위치, EIP 필요
- 시간 + 트래픽 양 기반 과금
트래픽 흐름 비교
Public EC2 — 인터넷 직접 통신
Client인터넷
→
IGW
→
EC2Public IP 보유
Private EC2 — 아웃바운드만 (예: 패키지 업데이트)
Private EC2Private IP
→
NAT GatewayEIP 변환
→
IGW
→
Internet
NAT Gateway vs NAT Instance
| 항목 | NAT Gateway (권장) | NAT Instance |
|---|---|---|
| 관리 방식 | 완전 관리형 AWS 운영 | 직접 관리 OS 패치 필요 |
| 가용성 | AZ 내 자동 이중화 | 단일 인스턴스 — SPOF 위험 |
| 확장성 | 자동 (최대 45Gbps) | 인스턴스 유형에 종속 |
| 비용 | 상대적으로 높음 | 인스턴스 요금만 (저렴) |
| 권장 환경 | 프로덕션 전반 | 비용 극히 중요한 소규모 환경 |
AZ별 NAT Gateway 배치 | NAT Gateway는 AZ 종속 자원이다. AZ-A의 NAT GW 장애 시 AZ-B Private Subnet도 인터넷 단절. 각 AZ마다 별도 NAT Gateway를 배치하고 Route Table도 AZ별로 분리해야 고가용성을 확보할 수 있다.
05
Elastic IP & 보안 구조 (SG / NACL)
Elastic IP (EIP)
- AWS 계정에 고정 할당되는 공인 IP
- EC2 재시작해도 IP 유지 (일반 퍼블릭 IP는 변경됨)
- 인스턴스에서 detach 후 다른 곳에 재사용 가능
- 미사용 시 과금 — 사용하지 않으면 즉시 해제
- 사용 사례: NAT GW, Bastion Host, 외부 고정 API
보안 그룹 vs NACL
- Security Group (SG) — 인스턴스 레벨. Stateful. 허용 규칙만
- NACL — 서브넷 레벨. Stateless. 허용/거부 모두
- SG: 아웃바운드 허용 시 인바운드 응답 자동 허용
- NACL: 인바운드/아웃바운드 규칙 별도 설정 필요
- 실무: SG를 주 방어선, NACL을 2차 방어선으로 사용
| 항목 | Security Group | NACL |
|---|---|---|
| 적용 범위 | 인스턴스(ENI) 레벨 | 서브넷 레벨 |
| 상태 추적 | Stateful (응답 자동 허용) | Stateless (양방향 규칙 필요) |
| 규칙 방향 | 허용 규칙만 존재 | 허용 + 거부 규칙 모두 가능 |
| 규칙 평가 | 모든 규칙 평가 후 결정 | 번호 순서대로 처음 매칭 규칙 적용 |
| 보안 원칙 | 최소 권한, 출처 IP 제한 | 특정 IP 블록 차단 (DDoS 대응) |
06
3-Tier 아키텍처 & 실무 장애 패턴
표준 3-Tier 아키텍처
AWS 표준 3-Tier 구성
┌─────────────────────────────────────────┐
│ VPC (10.0.0.0/16) │
│ │
│ [Public Subnet]
│ ALB (Application Load Balancer) │ ← 인터넷 트래픽 수신
│ NAT Gateway (EIP 연결) │ ← Private 아웃바운드
│ │
│ [Private Subnet - App]
│ EC2 (Auto Scaling Group) │ ← ALB에서 트래픽 수신
│ │
│ [Private Subnet - DB]
│ RDS (Multi-AZ) │ ← App에서만 접근 허용
│ ElastiCache │ ← 캐시 레이어
└─────────────────────────────────────────┘
자주 발생하는 장애 패턴
| 증상 | 원인 | 확인 순서 |
|---|---|---|
| EC2 인터넷 연결 안됨 | Route Table 미설정 / IGW 미연결 / Public IP 없음 | ① Route Table → IGW 경로 확인 ② IGW attach 확인 ③ Public IP / EIP 확인 |
| Private EC2 외부 통신 안됨 | NAT GW 없음 / Route Table이 NAT GW 미지정 | ① NAT GW 상태 확인 ② Private RT에 NAT 경로 확인 ③ NAT GW AZ 확인 |
| 보안 그룹 차단 | 인바운드 규칙 미설정 / 포트 불일치 | ① SG 인바운드 규칙 ② 출처 IP/CIDR ③ NACL 거부 규칙 |
| NAT Gateway 삭제 실패 | Route Table에 NAT GW 참조 남아있음 | ① Route Table에서 NAT GW 경로 먼저 삭제 ② EIP 연결 해제 후 삭제 |
| 비용 과다 청구 | NAT GW 트래픽 과금 / EIP 미사용 과금 | ① NAT GW 데이터 처리량 최소화 ② 미사용 EIP 즉시 해제 |
보안 설계 원칙 | Public 리소스 최소화 — 인터넷에 직접 노출되는 자원은 ALB, NAT GW만. EC2 직접 노출 금지. DB는 반드시 Private — RDS에 퍼블릭 IP 부여 절대 금지. SG 최소 권한 — 0.0.0.0/0 인바운드 규칙은 ALB만 허용, 나머지는 출처 SG 기반 제한.
'보안 공부' 카테고리의 다른 글
| 클라우드 보안 - S3 심화 · ELB · Auto Scaling · 통합 아키텍처 (0) | 2026.06.01 |
|---|---|
| 클라우드 보안 - IAM · S3 완전 정리 (0) | 2026.06.01 |
| 클라우드 보안 - AWS 기초 · EC2 완전 정리 (0) | 2026.06.01 |
| 네트워크 보안 - 사내망 보안 구조 · Snort IDS 완전 정리 (0) | 2026.05.29 |
| 네트워크 보안 - Spoofing · Sniffing · DoS/DDoS · 네트워크 구조 완전 정리 (0) | 2026.05.29 |