037. VPC — 클라우드 위의 사설 네트워크
VPC(Virtual Private Cloud)는 클라우드 위에 만드는 논리적 사설 네트워크다. 서브넷으로 구역을 나누고, 라우팅 테이블로 트래픽 방향을 제어하고, Internet Gateway로 외부와 연결한다. public/private 서브넷의 차이, 라우팅 테이블이 동작하는 방식, 그리고 실무 VPC 설계 패턴을 설명한다.
VPC(Virtual Private Cloud)는 클라우드 위에 만드는 논리적 사설 네트워크다. 서브넷으로 구역을 나누고, 라우팅 테이블로 트래픽 방향을 제어하고, Internet Gateway로 외부와 연결한다. public/private 서브넷의 차이, 라우팅 테이블이 동작하는 방식, 그리고 실무 VPC 설계 패턴을 설명한다.
private 서브넷의 서버는 인터넷에서 직접 접근할 수 없지만, 외부 API 호출이나 패키지 설치를 위해 아웃바운드 인터넷 접근은 필요하다. NAT Gateway는 이 단방향 출구를 제공한다. 동작 원리, 비용 구조, 고가용성 설계, 그리고 EKS에서의 주의사항을 설명한다.
AWS에는 두 가지 네트워크 접근 제어 메커니즘이 있다. Security Group은 인스턴스 레벨에서 동작하는 stateful 방화벽이고, NACL은 서브넷 레벨에서 동작하는 stateless 방화벽이다. 둘의 결정적인 차이인 stateful vs stateless가 실제로 무엇을 의미하는지, 언제 무엇을 써야 하는지 설명한다.
VPC는 기본적으로 격리된 네트워크다. 여러 VPC를 연결하려면 VPC Peering 또는 Transit Gateway를 쓴다. Peering은 두 VPC를 직접 연결하는 단순한 방식이고, Transit Gateway는 여러 VPC를 허브-스포크 구조로 연결하는 중앙 라우터다. 각각의 동작 방식과 어떤 상황에 무엇을 쓰는지 설명한다.
온프렘 데이터센터와 AWS VPC를 연결할 때 AWS Site-to-Site VPN 또는 AWS Direct Connect를 쓴다. VPN은 인터넷 위에 암호화 터널을 만드는 방식으로 빠르게 설정할 수 있고, Direct Connect는 AWS와 전용 물리 회선을 연결하는 방식으로 안정적인 대역폭과 낮은 레이턴시를 제공한다. 둘의 차이와 선택 기준을 설명한다.
로드밸런서는 들어오는 트래픽을 여러 서버에 분산한다. OSI 모델의 어느 계층에서 동작하느냐에 따라 L4와 L7으로 나뉜다. L4는 TCP/UDP 레벨에서, L7은 HTTP 내용을 보고 라우팅 결정을 내린다. AWS의 NLB와 ALB를 기준으로 각각 언제 쓰는지 설명한다.
로드밸런서는 헬스체크로 서버가 정상인지 확인하고, 비정상 서버로는 트래픽을 보내지 않는다. Connection Draining은 서버를 내릴 때 기존 연결을 끊지 않고 자연스럽게 처리가 끝나길 기다린다. 이 두 메커니즘이 무중단 배포와 자동 장애 복구의 기반이 된다.
Sticky Session은 같은 클라이언트의 요청이 항상 같은 서버로 가도록 로드밸런서가 보장하는 기능이다. 서버가 세션 상태를 메모리에 들고 있는 경우 필요하지만, 부하 불균형과 수평 확장 어려움이라는 근본적인 문제를 가진다. 왜 피해야 하는지, 불가피할 때 어떻게 쓰는지 설명한다.
전통적인 보안 모델은 내부 네트워크를 신뢰했다. 방화벽 안에 들어오면 내부 서비스에 자유롭게 접근할 수 있었다. Zero Trust는 이 전제를 버린다. 위치(IP)가 아니라 아이덴티티를 기반으로 매 요청을 검증한다. 왜 등장했고 어떻게 구현되는지 설명한다.
일반 TLS는 클라이언트가 서버를 인증한다. mTLS(mutual TLS)는 서버도 클라이언트를 인증한다. 마이크로서비스 환경에서 서비스 간 통신이 실제로 신뢰할 수 있는 서비스에서 왔는지 검증하는 데 쓰인다. 동작 원리, SPIFFE/SPIRE 아이덴티티 체계, Istio가 어떻게 자동화하는지 설명한다.