Cert Notes/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
  • Week 1
    • 1.SAP 시험이라는 게임: 시나리오를 분해하는 손기술
    • 2.IAM·STS·Federation: 권한이라는 단어를 여섯 층으로 쪼개기
    • 3.VPC의 해부학: 라우팅 테이블이 진짜로 결정하는 것
    • 4.컴퓨팅 4종의 깊이: Nitro, EBS, ELB, Auto Scaling을 Pro 시야로 다시 보기
    • 5.1주차 통합: IAM·VPC·EC2가 한 시나리오에서 만날 때
  • Week 2
    • 1.AWS Organizations: 멀티 계정이라는 새로운 사고 단위
    • 2.Service Control Policy: 천장(Ceiling)이라는 사고 도구
    • 3.Control Tower와 Landing Zone: 거버넌스의 자동화
    • 4.IAM Identity Center, Permission Set, 통합 결제: 멀티 계정 SSO의 표준
    • 5.2주차 통합: Organizations·SCP·CT·IDC가 한 시나리오에서 만날 때
  • Week 3
    • 1.VPC Peering vs Transit Gateway: 네트워크 토폴로지의 선택
    • 2.Direct Connect 아키텍처와 이중화: 전용선의 물리학
    • 3.Site-to-Site VPN과 Client VPN: IPsec 터널의 모든 것
    • 4.PrivateLink와 VPC Endpoint: 서비스 추상화 네트워킹
    • 5.Week 3 복습: 고급 네트워킹 아키텍처 종합
  • Week 4
    • 1.AWS Outposts, Local Zones, Wavelength: 클라우드 경계의 확장
    • 2.Storage Gateway 4종 비교: 온프레미스 스토리지를 클라우드로 확장하는 방법
    • 3.Snow Family와 대규모 데이터 전송: 물리학이 인터넷을 이기는 순간
    • 4.EKS Anywhere, ECS Anywhere, 하이브리드 컨테이너: 오케스트레이션의 경계 확장
    • 5.Week 4 복습: 하이브리드 클라우드 아키텍처 종합
  • Week 5
    • 1.Multi-Region 아키텍처: 왜 글로벌 분산은 어려운가
    • 2.Route 53 라우팅 정책 7종: DNS가 아키텍처를 결정한다
    • 3.CloudFront 심화: CDN이 단순 캐시가 아닌 이유
    • 4.Route 53 심화: Health Check 알고리즘, DNSSEC, Geoproximity 수학, Resolver 하이브리드 DNS
    • 5.Week 5 복습: 글로벌 아키텍처 통합 시나리오
  • Week 6
    • 1.7R 마이그레이션 전략: 클라우드 이전의 의사결정 언어
    • 2.AWS MGN 심화: 블록 레벨 복제의 물리학, DRS 비교, Migration Hub Orchestrator
    • 3.AWS DMS + SCT: 데이터베이스 마이그레이션의 과학
    • 4.마이그레이션 가속 도구: App2Container, MAP, Migration Hub
    • 5.Week 6 복습: 마이그레이션 전략 통합 시나리오
  • Week 7
    • 1.컨테이너 오케스트레이션의 분기점: ECS, EKS, Fargate 선택의 진짜 기준
    • 2.EKS의 내부 해부 — 노드 그룹, IRSA, Karpenter가 만드는 운영 표준
    • 3.Fargate의 단가 해부 — 서버리스 컨테이너의 진짜 가격표
    • 4.서비스 메시의 해부 — App Mesh, Service Connect, Cloud Map이 갈리는 지점
    • 5.Week 7 종합 — 컨테이너 시나리오 12문항으로 굳히기
  • Week 8
    • 1.Lambda 고급: 동시성, 콜드 스타트, SnapStart의 내부 동작
    • 2.Step Functions: 분산 워크플로우의 상태 모델과 Saga 패턴
    • 3.EventBridge: Event Bus, Pipes, Scheduler의 통합 모델
    • 4.AppSync GraphQL과 SQS/SNS/Kinesis 메시징의 본질
    • 5.Week 8 종합 — 서버리스·이벤트 아키텍처 시나리오 12선
  • Week 9
    • 1.데이터 레이크 아키텍처: S3, Glue, Athena의 내부 동작과 비용 모델
    • 2.Redshift 심화: MPP 내부 동작, RA3 스토리지 분리, Spectrum과 Zero-ETL
    • 3.EMR, Glue, MWAA: 분산 처리 엔진의 내부와 빅데이터 오케스트레이션
    • 4.Lake Formation, 데이터 거버넌스, MSK: 세분화 권한과 실시간 스트림의 내부
    • 5.Week 9 종합 복습: 데이터 아키텍처를 하나의 그림으로
  • Week 10
    • 1.SageMaker 심화: ML 라이프사이클, 추론 엔드포인트 4종, 학습 비용 수학
    • 2.Bedrock 심화: 생성형 AI 아키텍처, RAG 내부 동작, 벡터 검색의 수학
    • 3.Managed AI 서비스 심화: 사전 학습형 AI의 선택 논리와 동기·비동기 패턴
    • 4.MLOps 심화: 드리프트의 과학, Feature Store, 재학습 자동화 파이프라인
    • 5.Week 10 종합 복습: ML/AI 아키텍처 의사결정 + 시나리오 12문항
  • Week 11
    • 1.KMS 심화: 봉투 암호화의 수학, Key Policy의 권한 모델, 멀티 리전 키
    • 2.탐지 3총사: Macie·GuardDuty·Inspector의 내부 동작과 경계
    • 3.통합 관제: Security Hub·Detective·Audit Manager의 역할 분담
    • 4.엣지 보안: WAF·Shield·Firewall Manager와 DDoS 방어의 계층
    • 5.보안 종합: 암호화·탐지·통합 관제·엣지 방어를 한 시나리오로
  • Week 12
    • 1.Savings Plans·RI 전략 — 약정 할인의 수학, 적용 순서의 내부 동작, Organization 공유
    • 2.Compute Optimizer·Rightsizing — ML 기반 권고의 내부 동작, 도구 비교, 자동화 패턴
    • 3.Cost Explorer·Budgets·CUR — 비용 가시성의 계층, 예산 자동 통제, FinOps 데이터 파이프라인
    • 4.숨은 비용의 해부학 — S3 스토리지 계층, 데이터 전송 요금 구조, NAT Gateway의 함정
    • 5.비용 최적화 종합 복습: 약정·Spot의 수학과 숨은 비용의 trade-off
  • Week 13
    • 1.Well-Architected Framework 개요 — 6 기둥의 기원, WA Tool의 내부 동작, Lens의 설계 철학
    • 2.운영 우수성·보안 기둥 심화 — GitOps의 뿌리, 책임 공유 모델의 경계, 추적성 3종의 내부 차이
    • 3.안정성·성능 효율성 기둥 심화 — CAP 정리, 멱등성과 재시도의 수학, HPC 네트워킹의 물리
    • 4.비용·지속 가능성 기둥 심화 — 단위 경제학, 탄소 회계의 규제 뿌리, 두 기둥의 trade-off
    • 5.Well-Architected 종합 복습: 6 기둥을 한 시나리오로 풀어내기
  • Week 14
    • 1.DR 4가지 전략과 RTO/RPO 매핑 — 재해 복구의 역사, 동기·비동기 복제의 물리학, 클라우드 DR의 경제학
    • 2.백업: AWS Backup·Cross-Region Copy — WORM의 법적 기원, Vault Lock의 불가역성, 멀티 계정 백업 거버넌스
    • 3.Resilience Hub·Fault Injection Simulator — 카오스 엔지니어링의 탄생, Stop Condition의 안전 공학, DR 검증 자동화
    • 4.RDS·Aurora·DynamoDB Global의 DR — 동기·비동기 복제의 내부, Aurora 스토리지 아키텍처, Active-Active의 충돌 해결
    • 5.복원력·DR 종합 복습: RTO/RPO를 지키는 4가지 전략과 검증 도구
  • Week 15
    • 1.대기업 글로벌 ERP 마이그레이션 — 멀티 계정 거버넌스의 역사, 7R 마이그레이션의 해부학, 데이터 주권의 법적·기술적 뿌리
    • 2.스타트업 빠른 성장·비용 최적화 — 서버리스의 경제학, 100배 확장의 물리학, Savings Plans 수학
    • 3.금융: 규제·감사·격리·DR — PCI DSS의 역사, HSM과 키 계층의 암호학, 격리 아키텍처의 심층 방어
    • 4.미디어: 글로벌 스트리밍·CDN·실시간 — 스트리밍 프로토콜의 진화, CDN 캐싱의 물리학, DRM의 암호 체계
    • 5.정부·헬스케어 컴플라이언스 종합 — HIPAA의 법적 구조, FedRAMP·GovCloud의 격리, Week 15 케이스 통합
  • Week 16
    • 1.도메인 1 종합: 복잡한 조직 설계 (29%) — 멀티 계정 거버넌스의 역사, 라우팅 이론, 하이브리드 암호화, 격리 경계의 CS 원리
    • 2.도메인 2 종합: 신규 솔루션 설계 (29%) — 컴퓨트 진화사, 데이터 일관성의 CS 이론, 이벤트 아키텍처의 내부 동작
    • 3.도메인 3 종합: 마이그레이션·현대화 (20%) — 7R의 역사, 블록 복제·CDC의 내부 동작, 대역폭 수학, Strangler Fig 패턴
    • 4.도메인 4 종합: 지속적 개선 (25%) — SRE의 역사, SLI/SLO 수학, 관측성 3기둥, 카오스 엔지니어링의 뿌리
    • 5.최종 종합: 시험 채점 메커니즘, 출제 심리, 키워드 디코딩, 시나리오 모의고사 12문항 + D-Day 전략
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기
← SAP-C02/Week 1/Day 3
SAP-C02· ProWeek 1 · Day 3읽기 약 16분

Day 3 - VPC의 해부학: 라우팅 테이블이 진짜로 결정하는 것

VPC가 SAA에서는 "박스 안에 박스"였다면, Pro에서는 6개의 결정점이 동시에 작동하는 분산 시스템이다. 패킷 하나가 EC2에서 S3까지 흘러갈 때 통과하는 결정점을 모두 적으면 다음과 같다.

[EC2 ENI] → [Security Group OUT] → [NACL OUT (subnet)] → [Route Table]
        → [IGW/NAT GW/VPC Endpoint] → [전송 경로]
        → [목적지의 NACL IN] → [목적지의 SG IN] → [도착]

이 8단계 중 어느 하나에서 막히면 패킷은 사라진다. 그런데 SG는 stateful, NACL은 stateless, Route Table은 가장 긴 prefix가 이긴다(longest prefix match) — 이 모든 규칙을 머릿속에서 동시에 굴려야 한다. 오늘은 SAA 수준의 VPC 그림을 한 번 더 펼치되, Pro 시험의 함정이 어디서 나오는지를 정확히 짚는다.

CIDR 설계: 처음 한 번 잘못 그으면 평생 후회

VPC의 첫 결정은 CIDR 블록이다. AWS는 /16 ~ /28을 지원하고, RFC 1918 사설 IP(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)를 권장한다. 그런데 이걸 잘못 그으면 1년 뒤 다른 VPC와 합칠 때 충돌한다.

VPC CIDR가용 IP 수적합 규모
/1665,536대기업 단일 리전 표준
/204,096중견 기업
/24256소규모 또는 dev/test
/2816시험·실험용

⚠️ 함정: 한 회사가 본사 VPC에 10.0.0.0/16을 쓰고, 해외 지사 VPC에도 10.0.0.0/16을 그어버린다. 나중에 Transit Gateway로 합치려는 순간 CIDR 충돌로 라우팅이 불가능해진다. AWS는 CIDR overlap이 있으면 Peering·TGW Attach 자체를 거부한다. 그래서 Pro 멀티 계정 시나리오에서는 처음부터 **IPAM(IP Address Manager, 2021년 출시)**으로 전사 CIDR 풀을 관리하는 게 정답이다.

🔍 더 깊이: AWS VPC에서 각 서브넷은 5개의 IP를 예약한다. 예를 들어 10.0.1.0/24 서브넷에서 사용 가능한 IP는 256 - 5 = 251개. 예약 IP: 10.0.1.0(네트워크), 10.0.1.1(VPC 라우터), 10.0.1.2(VPC DNS), 10.0.1.3(미래용 예약), 10.0.1.255(브로드캐스트). 이걸 모르고 "/28 서브넷에 16개 EC2 띄울 수 있다"고 계산하면 실제로는 11개만 가능해서 의외의 실패가 난다.

Secondary CIDR과 Egress-Only IGW

VPC는 추가로 secondary CIDR을 최대 4개까지 붙일 수 있다(2017년 추가). 단 secondary는 primary와 같은 RFC 1918 범위에서만 가능하고, 보통 부족해진 IP를 늘릴 때 쓴다.

IPv6는 별도 트랙이다. AWS는 모든 VPC에 /56 IPv6 블록을 무료 할당하지만, IPv6 트래픽은 NAT Gateway를 거치지 않고 Egress-Only Internet Gateway를 거친다(NAT가 본래 IPv4 주소 부족 해결 메커니즘이므로 IPv6에서는 불필요).

서브넷의 진짜 정체: AZ 종속과 라우팅 테이블 1:1 매핑

서브넷은 하나의 AZ에 종속되고, 하나의 라우팅 테이블이 붙는다. 같은 라우팅 테이블을 여러 서브넷이 공유할 수는 있지만, 한 서브넷이 두 라우팅 테이블을 가질 수는 없다.

VPC (10.0.0.0/16)
├── ap-northeast-2a
│   ├── Public Subnet  10.0.1.0/24  → Route Table: PublicRT
│   └── Private Subnet 10.0.11.0/24 → Route Table: PrivateRT-A
├── ap-northeast-2b
│   ├── Public Subnet  10.0.2.0/24  → Route Table: PublicRT
│   └── Private Subnet 10.0.12.0/24 → Route Table: PrivateRT-B
└── ap-northeast-2c
    ├── Public Subnet  10.0.3.0/24  → Route Table: PublicRT
    └── Private Subnet 10.0.13.0/24 → Route Table: PrivateRT-C

Public Subnet과 Private Subnet의 구별은 콘솔에 별도 토글이 있는 게 아니라 라우팅 테이블이 IGW로 가는지 NAT GW로 가는지의 차이일 뿐이다.

종류정의사용처
Public라우팅 테이블에 0.0.0.0/0 → IGWELB, NAT GW, Bastion
Private0.0.0.0/0 → NAT GW 또는 라우트 없음EC2 App, DB
Isolated외부 라우트 없음 (VPC 내부만)더 엄격한 DB, ML training

💡 관련 이론: 라우팅 테이블은 longest prefix match 알고리즘으로 동작한다. 같은 패킷의 목적지에 두 라우트가 있으면, 더 구체적인 prefix(긴 마스크)가 이긴다. 예: 10.0.0.0/16 → VPC local + 10.0.5.0/24 → TGW가 있으면 10.0.5.10은 TGW로 간다. 이게 BGP·IS-IS 같은 인터넷 라우팅 프로토콜의 기본 원리이고, AWS 라우팅 테이블도 같은 원칙을 따른다.

가용 영역 단위 분리: NAT Gateway는 AZ-local

흔히 놓치는 함정. NAT Gateway는 AZ-local 리소스라, 한 AZ에 하나씩 두는 게 정공이다. 모든 Private Subnet을 단일 AZ의 NAT Gateway로 라우팅하면, 그 AZ가 죽을 때 모든 outbound가 끊긴다.

✗ 잘못된 설계:
   Private Subnet A → NAT GW (AZ-a)
   Private Subnet B → NAT GW (AZ-a)  ← AZ-a 죽으면 B도 outbound 끊김
   Private Subnet C → NAT GW (AZ-a)

✓ 올바른 설계:
   Private Subnet A → NAT GW (AZ-a)
   Private Subnet B → NAT GW (AZ-b)
   Private Subnet C → NAT GW (AZ-c)

📚 사례: 2017년 한 핀테크 스타트업이 production에서 단일 AZ NAT Gateway만 두고 운영하다가, 새벽에 AZ-a 정전으로 NAT Gateway가 죽으면서 모든 Private Subnet의 외부 API 호출(Stripe·Twilio 등)이 끊겼다. 같은 AZ의 EC2들도 자동 페일오버되지 못해 30분 다운타임. 이후 AZ별 NAT Gateway + Multi-AZ ASG로 전환. 운영 비용은 시간당 $0.045 × 3 AZ = $97.2/월 추가됐지만, 다운타임 비용 대비 무시할 수준.

Security Group vs NACL: 가장 자주 헷갈리는 두 가지

항목Security GroupNACL (Network ACL)
적용 단위ENI (인스턴스)서브넷
상태Stateful (return 자동 허용)Stateless (양방향 명시)
평가모든 규칙 평가, allow만번호 순서, allow/deny
기본 동작inbound deny, outbound allowinbound deny, outbound deny
규칙 수60 inbound + 60 outbound (확장 가능)20 in + 20 out (소프트 제한 40까지)

가장 자주 헷갈리는 건 stateful vs stateless. SG가 stateful이라는 건, inbound로 들어온 패킷의 return은 outbound 규칙을 검사하지 않고 자동 허용한다는 뜻이다. 반대로 NACL은 stateless라, return 트래픽도 명시적으로 outbound 규칙에 허용해야 한다.

[Client] → TCP SYN  → [EC2:80]
[Client] ← TCP SYN-ACK ← [EC2:80]   ← SG: 자동 허용, NACL: outbound 1024-65535 명시 필요
[Client] → TCP ACK  → [EC2:80]

🔍 더 깊이: NACL의 return port range는 ephemeral port 범위다. Linux는 3276860999, Windows는 4915265535이지만 AWS는 안전하게 1024-65535 전체를 권장한다. 만약 NACL outbound가 80·443만 허용되어 있다면, return SYN-ACK가 ephemeral port로 오므로 차단된다 — 이게 "SG는 멀쩡한데 패킷이 안 가는" 현상의 흔한 원인.

💡 관련 이론: stateful 방화벽은 1992년 Check Point가 FireWall-1에서 처음 상용화한 개념이다. 기존 stateless packet filter는 모든 패킷을 개별로 검사해야 했지만, stateful은 TCP 5-tuple(src IP, src port, dst IP, dst port, protocol)로 connection table을 유지해 return 패킷을 자동 매칭한다. AWS SG도 같은 원리. 단 connection table은 메모리를 쓰므로 한 EC2가 동시에 유지할 수 있는 연결 수에 한계가 있다(보통 수십만).

🎯 시나리오: "Custom AMI로 만든 EC2가 외부에서 ping이 안 된다. SG에는 ICMP All Allow가 있다. 무엇이 문제인가?" — 답은 보통 (1) NACL이 ICMP 차단, (2) OS 방화벽(iptables/firewalld)이 차단, (3) 인스턴스 메타데이터로 가는 169.254.169.254가 ICMP를 거부(보안 기능). NACL 누락이 가장 흔하다.

VPC Endpoint: 사설 트래픽의 두 갈래

EC2에서 S3로 갈 때 기본적으로 인터넷(IGW)을 거친다. 같은 리전의 S3인데도 IGW를 거치면 (1) 비용 발생, (2) 보안 위험, (3) latency 증가. 그래서 VPC Endpoint로 사설 경로를 만든다.

종류통신 방식지원 서비스비용
Gateway Endpoint라우팅 테이블 항목S3, DynamoDB만무료
Interface EndpointENI + DNS100+ AWS 서비스$0.01/시간 + 데이터
Gateway Load Balancer EndpointGLB + ENI보안 어플라이언스$0.0125/시간 + 데이터

🔍 더 깊이: Gateway Endpoint는 prefix list라는 특수 라우팅 항목을 라우팅 테이블에 추가한다. pl-12345처럼 표현되며, 내부적으로 S3·DynamoDB의 모든 IP 범위를 자동 추적·업데이트한다. Interface Endpoint는 그와 달리 PrivateLink 메커니즘으로 ENI를 VPC에 직접 생성하고, AWS가 Route 53 Private Hosted Zone으로 DNS를 자동 hijack한다(s3.ap-northeast-2.amazonaws.com을 ENI IP로 응답).

📚 사례: 한 금융사가 EC2 → S3 트래픽이 모두 IGW를 통해 나가는 걸 발견했다. 월 데이터 전송 비용이 $30,000을 넘었다. Gateway Endpoint를 추가한 후 같은 트래픽이 무료가 됐다. 또한 보안팀이 "S3 트래픽이 인터넷을 거쳤다"는 이유로 PCI-DSS 감사에서 지적받던 문제도 해소됐다. 트레이드오프: Interface Endpoint(100+ 서비스)는 시간당 비용이 있어, 트래픽이 적으면 IGW + NAT가 더 저렴할 수 있다. 손익분기점은 보통 월 100-200GB.

PrivateLink와 VPC Endpoint Service

PrivateLink는 "내가 만든 서비스를 다른 VPC에 노출"하는 기능이다. NLB 뒤에 서비스를 두고 Endpoint Service로 등록하면, 다른 계정·VPC가 Interface Endpoint로 접근할 수 있다. SaaS 회사가 자기 서비스를 고객 VPC 안에서 사용 가능하게 만드는 표준이다.

[Provider VPC]              [Consumer VPC]
  NLB → Service              Interface Endpoint
   ↑                              ↓
   └── PrivateLink ──────────────┘

Snowflake, Datadog, MongoDB Atlas가 모두 PrivateLink로 고객 VPC에 연결한다.

DNS와 hostname: VPC 내부의 이름 해석

VPC는 두 가지 DNS 옵션이 있다.

  • enableDnsSupport (기본 true): VPC 내부에서 AWS DNS 서버(x.x.x.2) 사용 가능
  • enableDnsHostnames (기본 true for default VPC): EC2에 ec2-1-2-3-4.ap-northeast-2.compute.amazonaws.com 같은 public DNS 부여

⚠️ 함정: Custom VPC를 만들 때 enableDnsHostnames가 기본 false다. 이걸 안 켜면 Private Hosted Zone(Route 53)이 작동하지 않거나, Interface Endpoint의 자동 DNS hijack이 작동하지 않는다. Pro 시나리오에서 "Endpoint를 만들었는데 EC2가 여전히 public DNS로 응답받는다"는 문제의 절반은 이 토글이다.

Flow Logs: 보이지 않는 패킷을 보이게

VPC Flow Logs는 ENI를 통과하는 모든 패킷의 5-tuple과 결과(ACCEPT/REJECT)를 기록한다. CloudWatch Logs 또는 S3로 전송 가능.

2 123456789012 eni-abc 10.0.1.5 192.168.1.10 8080 443 6 20 4500 1612345678 1612345738 ACCEPT OK
^             ^         ^         ^            ^    ^   ^ ^  ^    ^          ^          ^      ^
version       account   src       dst          spt  dpt p pkt byte start      end       action status

🔍 더 깊이: Flow Logs는 샘플링이 아니라 모든 트래픽을 기록한다. 단 패킷 내용(payload)은 캡처하지 않고 메타데이터만. 또한 1분 단위 aggregation이라 실시간 모니터링이 아니다. 보안 사고 사후 분석·트래픽 패턴 분석에 적합. GuardDuty가 Flow Logs를 분석해 비정상 트래픽을 탐지하는 게 대표 활용.

🎯 시나리오: "한 회사가 production VPC에서 비정상적인 outbound traffic을 의심한다. 어떻게 진단할까?" — 답: Flow Logs 활성화 → Athena/CloudWatch Insights로 분석 → GuardDuty가 자동 패턴 매칭. 직접 tcpdump로 EC2에서 캡처하면 100개 인스턴스 일일이 봐야 해서 운영 부담 큼.

SG 참조와 Cross-VPC 통신

SG의 inbound·outbound 규칙에서 source/destination을 CIDR이 아니라 다른 SG ID로 지정할 수 있다.

SG-Web (ALB가 붙음): inbound 80/443 from 0.0.0.0/0
SG-App (EC2가 붙음): inbound 8080 from sg-web   ← CIDR 대신 SG ID 참조
SG-DB  (RDS가 붙음): inbound 3306 from sg-app   ← chained SG reference

이 패턴이 3-tier 아키텍처의 표준이다. EC2가 늘어나도 SG-Web에 속한 모든 ENI가 자동으로 8080 접근 허용되므로 IP 관리가 필요 없다.

📚 사례: 한 회사가 ALB → EC2 → RDS 구조를 CIDR 기반 SG로 운영하다가, Auto Scaling으로 EC2 IP가 바뀔 때마다 SG를 업데이트해야 했다. SG ID 참조로 바꾸자 운영 부담이 사라졌다. 단 SG ID 참조는 같은 리전·같은 VPC 또는 Peered VPC 안에서만 작동하고, TGW를 거치는 경우 동작하지 않는다(2022년 일부 시나리오에서 가능해졌지만 제약 있음).

정리하며

VPC는 "박스 안에 박스"가 아니라 8개 결정점의 협력이다. 패킷 한 통이 흐르려면 SG·NACL·Route Table·IGW/NAT/Endpoint·DNS가 모두 동의해야 한다. CIDR을 처음 그을 때 IPAM으로 전사 관리, NAT GW는 AZ별로, S3·DynamoDB는 Gateway Endpoint로, 그 외 100+ 서비스는 Interface Endpoint로, SG는 ID 참조로 — 이 다섯 가지 원칙이 Pro 시험의 VPC 시나리오 80%를 커버한다.

다음 글에서는 이 네트워크 위에서 실제로 컴퓨팅을 하는 EC2·EBS·ELB·Auto Scaling을 Pro 깊이로 본다. 특히 Auto Scaling의 스케일링 정책 4종은 거의 매 회 출제되니 미리 머리에 박아두자.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

한 회사가 Multi-AZ에 Private Subnet 3개를 두고 외부 API를 호출한다. 비용을 최소화하면서 가용성을 확보하려면 NAT Gateway를 어떻게 배치하는가?

문제 2

EC2가 같은 VPC 내 RDS에 연결되지 않는다. SG에는 RDS에서 3306 inbound 허용. 무엇을 추가로 확인해야 하는가?

문제 3

한 회사가 S3 트래픽이 NAT Gateway를 거쳐 비용이 발생한다. 가장 효율적인 해결책은?

문제 4

한 SaaS가 자기 서비스를 고객 VPC 안에서 사설 IP로 사용 가능하게 하려면?

문제 5

한 회사가 200개 계정 환경에서 CIDR 충돌을 방지하려고 한다. 가장 효율적인 방법은?

문제 6

한 회사가 production VPC의 outbound 트래픽이 의심된다. 모든 패킷을 추적·분석하려면?

문제 7

SG ID 참조와 CIDR 참조의 차이는?

이전IAM·STS·Federation: 권한이라는 단어를 여섯 층으로 쪼개기Week 1 · Day 2다음 컴퓨팅 4종의 깊이: Nitro, EBS, ELB, Auto Scaling을 Pro 시야로 다시 보기Week 1 · Day 4

이 페이지

  • CIDR 설계: 처음 한 번 잘못 그으면 평생 후회
  • Secondary CIDR과 Egress-Only IGW
  • 서브넷의 진짜 정체: AZ 종속과 라우팅 테이블 1:1 매핑
  • 가용 영역 단위 분리: NAT Gateway는 AZ-local
  • Security Group vs NACL: 가장 자주 헷갈리는 두 가지
  • VPC Endpoint: 사설 트래픽의 두 갈래
  • PrivateLink와 VPC Endpoint Service
  • DNS와 hostname: VPC 내부의 이름 해석
  • Flow Logs: 보이지 않는 패킷을 보이게
  • SG 참조와 Cross-VPC 통신
  • 정리하며
  • 연습 문제