원문: AWS Cloud Practitioner Essentials — Module 4: Networking
출처: AWS E-Learning / Compiled by Kenneth Leung (2020)

한 줄 요약: AWS에서 네트워크를 구성한다는 것은 결국 “누가 들어올 수 있고, 누가 못 들어오는가”를 정하는 일이며, VPC·서브넷·게이트웨이·ACL·보안 그룹·DNS가 이 역할을 나눠 맡는다.


내 네트워크를 갖는다는 것 — Amazon VPC

AWS에는 수백만 고객이 만든 수백만 개의 EC2 인스턴스가 존재한다. 이들 사이에 경계가 없다면 네트워크 트래픽이 아무 제한 없이 오갈 수 있게 된다. 이 문제를 해결하는 서비스가 Amazon VPC(Virtual Private Cloud)다.

VPC는 AWS 클라우드 안에 만드는 나만의 사설 네트워크다. VPC를 만들면 자체 IP 대역을 정의하고, 그 안에 EC2 인스턴스, 로드 밸런서 같은 리소스를 배치할 수 있다. 허가 없이는 아무것도 드나들지 못하는 요새라고 생각하면 된다.

VPC 안의 리소스는 서브넷(subnet)이라는 단위로 묶인다. 서브넷은 VPC 내에서 IP 주소 범위를 나눈 구역이다.

서브넷 유형 역할 예시
퍼블릭 서브넷(Public Subnet) 인터넷과 통신이 필요한 리소스 배치 웹 서버, 고객용 애플리케이션
프라이빗 서브넷(Private Subnet) 외부 접근을 차단해야 하는 리소스 배치 데이터베이스, 백엔드 서비스

커피숍에 비유하면, 캐셔는 손님을 맞아야 하니 퍼블릭 서브넷에, 바리스타는 손님과 직접 접촉할 필요가 없으니 프라이빗 서브넷에 배치하는 셈이다. 같은 VPC 안에 있으므로 캐셔(퍼블릭)와 바리스타(프라이빗) 사이의 통신은 자유롭다.


VPC에 출입구를 다는 세 가지 방법

VPC는 기본적으로 외부와 완전히 격리되어 있다. 트래픽이 드나들려면 게이트웨이가 필요하다.

연결 방식 서비스 특징
인터넷 연결 인터넷 게이트웨이(Internet Gateway, IGW) VPC와 공용 인터넷 사이의 출입문. 이것이 없으면 외부에서 VPC 리소스에 접근할 수 없다
VPN 연결 가상 프라이빗 게이트웨이(Virtual Private Gateway) 온프레미스 네트워크와 VPC를 암호화된 VPN으로 연결. 공용 인터넷을 함께 사용하므로 대역폭을 다른 사용자와 나눈다
전용 회선 AWS Direct Connect 온프레미스 데이터센터와 VPC 사이에 전용 물리 회선을 깔아 연결. 최저 지연, 최고 보안, 대역폭 독점

인터넷 게이트웨이는 커피숍의 정문이다. 누구나 들어올 수 있다. 가상 프라이빗 게이트웨이는 경호원을 대동하고 같은 도로를 이용하는 것과 같다 — 보호는 되지만 교통 체증(대역폭 공유)은 피할 수 없다. AWS Direct Connect는 아파트에서 커피숍까지 전용 복도를 뚫어놓은 것과 같다 — 다른 손님과 길을 공유하지 않으므로 가장 빠르고 안전하다.

하나의 VPC에 여러 종류의 게이트웨이를 동시에 연결할 수 있다. 퍼블릭 서브넷은 인터넷 게이트웨이를, 프라이빗 서브넷은 가상 프라이빗 게이트웨이나 Direct Connect를 통해 접근하는 식이다.


네트워크 보안의 두 겹 — ACL과 보안 그룹

VPC에 들어온 트래픽은 리소스에 도달하기 전에 두 단계의 검문을 거친다.

네트워크 ACL — 서브넷의 출입국 심사관

네트워크 ACL(Access Control List)은 서브넷 경계에서 패킷(네트워크를 통해 전송되는 데이터 단위)의 출입을 검사하는 가상 방화벽이다. 공항의 출입국 심사관이라고 생각하면 된다 — 들어올 때도, 나갈 때도 여권(패킷 정보)을 확인한다.

항목 기본(Default) ACL 커스텀(Custom) ACL
인바운드 트래픽 모두 허용 모두 거부 (규칙 추가 필요)
아웃바운드 트래픽 모두 허용 모두 거부 (규칙 추가 필요)
규칙에 없는 패킷 거부 거부

핵심 특성: 비상태(stateless) 필터링. ACL은 이전에 통과시킨 패킷을 기억하지 않는다. 나갈 때 허용받았더라도 돌아올 때 다시 검사를 받아야 한다. 출국할 때 심사를 통과했다고 해서 입국 심사가 면제되지 않는 것과 같다.

보안 그룹 — EC2 인스턴스의 도어맨

보안 그룹(Security Group)은 개별 EC2 인스턴스 수준에서 트래픽을 제어하는 가상 방화벽이다. 아파트 로비의 도어맨이라고 생각하면 된다.

항목 기본 설정
인바운드 트래픽 모두 거부 — 모든 포트, 모든 IP가 차단된다
아웃바운드 트래픽 모두 허용

핵심 특성: 상태 유지(stateful) 필터링. 보안 그룹은 이전 결정을 기억한다. EC2에서 나간 요청에 대한 응답이 돌아오면, 인바운드 규칙과 상관없이 자동으로 통과시킨다. 도어맨이 “이 사람은 아까 나갔다 돌아온 거니까 다시 확인할 필요 없다”고 판단하는 것과 같다.

한눈에 비교

구분 네트워크 ACL 보안 그룹
적용 대상 서브넷 경계 EC2 인스턴스
상태 관리 비상태(Stateless) — 매번 검사 상태 유지(Stateful) — 응답 자동 허용
기본 인바운드 모두 허용 모두 거부
기본 아웃바운드 모두 허용 모두 허용

패킷의 여정 — 인스턴스 A에서 인스턴스 B까지

서로 다른 서브넷에 있는 두 EC2 인스턴스 사이에 패킷이 오가는 과정을 따라가 보면, ACL과 보안 그룹의 역할이 명확해진다.

보내는 쪽 (인스턴스 A → 인스턴스 B):

  1. 인스턴스 A의 보안 그룹: 아웃바운드 트래픽은 기본 허용이므로 통과
  2. 서브넷 1의 네트워크 ACL: 자체 허용 목록을 확인 후 통과
  3. 서브넷 2의 네트워크 ACL: 목적지 서브넷의 허용 목록을 별도로 확인 후 통과
  4. 인스턴스 B의 보안 그룹: 인바운드 규칙을 확인 후 통과

돌아오는 쪽 (인스턴스 B → 인스턴스 A):

  1. 인스턴스 B의 보안 그룹: 아웃바운드 기본 허용 → 통과
  2. 서브넷 2의 네트워크 ACL: 비상태이므로 다시 검사 → 통과
  3. 서브넷 1의 네트워크 ACL: 비상태이므로 다시 검사 → 통과
  4. 인스턴스 A의 보안 그룹: 상태 유지 — 아까 보낸 요청의 응답임을 기억하므로 자동 통과

이 모든 과정은 실제로는 순식간에 일어난다. 좋은 네트워크 보안은 ACL과 보안 그룹을 모두 활용하는 것이다.


주소를 이름으로 바꿔주는 전화번호부 — DNS와 Route 53

사용자가 웹 브라우저에 www.example.com을 입력하면, 컴퓨터는 이 이름을 실제 서버의 IP 주소(예: 192.0.2.0)로 바꿔야 한다. 이 변환 작업을 수행하는 시스템이 DNS(Domain Name System)다. 인터넷의 전화번호부라고 보면 된다.

Amazon Route 53은 AWS의 DNS 웹 서비스다.

기능 설명
DNS 해석 도메인 이름을 IP 주소로 변환
트래픽 라우팅 지연 시간 기반, 지리적 위치 기반, 가중치 기반 등 다양한 정책으로 트래픽을 분배
도메인 등록 Route 53에서 직접 도메인을 구매·관리할 수 있다

Route 53과 CloudFront가 함께 동작하는 흐름

  1. 고객이 웹사이트에 접속한다
  2. Route 53이 도메인의 IP 주소를 알려준다
  3. 요청이 Amazon CloudFront의 가장 가까운 엣지 로케이션으로 전달된다
  4. CloudFront가 Application Load Balancer에 연결하고, 로드 밸런서가 EC2 인스턴스로 트래픽을 보낸다

이 구조 덕분에 시애틀의 사용자는 오리건 리전의 CloudFront 엣지에서, 아일랜드의 사용자는 더블린 리전의 엣지에서 콘텐츠를 받을 수 있다. 같은 콘텐츠를 고객에게 가장 가까운 곳에서 전달하므로 지연 시간이 줄어든다.


마무리

AWS 네트워킹의 핵심은 결국 한 가지 질문으로 귀결된다 — “누가 들어올 수 있고, 누가 못 들어오는가?” VPC로 나만의 네트워크를 만들고, 서브넷으로 리소스를 분리하고, 게이트웨이로 외부와의 연결 방식을 정하고, ACL과 보안 그룹으로 트래픽을 두 겹으로 걸러내고, Route 53으로 사용자를 올바른 목적지로 안내한다.

네트워킹은 예전에는 전문가의 영역이었다. 하지만 클라우드에서는 “누구를 허용하고 누구를 차단할 것인가”라는 질문에 답할 수 있으면 네트워크를 구성할 수 있다. 복잡한 기술을 단순한 의사결정으로 바꿔주는 것, 이것이 클라우드가 네트워킹에 가져온 변화다.