클라우드 보안 - 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
ALB Application Load Balancer
NAT NAT Gateway
EC2 Bastion Host
Private Subnet (App) — 10.0.2.0/24
EC2 Application Server
EC2 Auto Scaling Group
Private Subnet (DB) — 10.0.3.0/24
RDS Database (Multi-AZ)
ELS 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 → local0.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 GroupNACL
적용 범위인스턴스(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 기반 제한.