네트워크가 왜 중요한가요?
AWS에서 서버를 만들고 데이터베이스를 설치해도, 그것들이 서로 연결되지 않으면 아무 소용이 없습니다. 네트워킹은 AWS의 모든 서비스가 서로 통신하고 외부와 연결되는 방식을 정의합니다.
VPC를 이해하면 "이 서버는 왜 인터넷에 연결이 안 되지?", "이 데이터베이스에 왜 외부에서 접근이 안 되지?" 같은 질문에 답할 수 있게 됩니다.
---
아파트 단지로 비유해보기
AWS 네트워킹을 이해하는 가장 쉬운 방법은 아파트 단지에 비유하는 것입니다.
VPC = 울타리로 둘러싸인 아파트 단지 전체. 내 구역이고 외부와 분리되어 있습니다. 서브넷 = 단지 안의 개별 동(건물). 어떤 동은 외부인이 드나들 수 있고(퍼블릭), 어떤 동은 주민만 출입 가능합니다(프라이빗). 인터넷 게이트웨이 = 단지의 정문. 외부 도로와 단지를 연결하는 유일한 출입구입니다. NAT 게이트웨이 = 프라이빗 동 주민이 외부로 나갈 때 쓰는 뒷문. 나갈 수는 있지만 외부에서 들어올 수는 없습니다. 보안 그룹 = 각 집의 현관 도어락. 허용된 사람만 들어올 수 있습니다. NACL = 동 입구의 출입 통제 게이트. 동 전체에 한 번에 적용됩니다.
---
VPC (Virtual Private Cloud)란?
AWS 클라우드 안에서 나만의 격리된 네트워크 공간입니다. 마치 AWS 데이터센터 안에 내 전용 구역을 만드는 것과 같습니다.
VPC 안에서 IP 주소 범위를 정하고, 서브넷을 만들고, 외부와 연결하는 방법을 설정합니다. 기본적으로 VPC 안은 외부에서 접근할 수 없습니다.
---
퍼블릭 서브넷 vs 프라이빗 서브넷
서브넷은 VPC 안에서 IP 주소 구역을 나눈 것입니다. 두 종류가 있습니다.
퍼블릭 서브넷은 인터넷 게이트웨이와 연결되어 있어 인터넷에서 직접 접근할 수 있습니다. 웹 서버처럼 외부 사용자가 접속해야 하는 서버를 여기에 둡니다.
프라이빗 서브넷은 인터넷 게이트웨이와 연결되어 있지 않아 인터넷에서 직접 접근할 수 없습니다. 데이터베이스처럼 외부에 노출되면 안 되는 서버를 여기에 둡니다.
프라이빗 서브넷에 있는 서버가 소프트웨어를 업데이트하는 것처럼 인터넷에 연결해야 할 때는 NAT 게이트웨이를 사용합니다. NAT 게이트웨이는 나가는 요청은 허용하지만 외부에서 들어오는 연결은 차단합니다.
---
보안 그룹 vs NACL
두 가지 모두 트래픽을 제어하는 방화벽이지만 작동 방식이 다릅니다.
| 비교 항목 | 보안 그룹 (Security Group) | NACL | |---------|--------------------------|------| | 적용 범위 | 개별 EC2 인스턴스 | 서브넷 전체 | | 상태 | 상태 저장 (Stateful) | 상태 비저장 (Stateless) | | 규칙 종류 | 허용 규칙만 설정 가능 | 허용 + 거부 규칙 모두 설정 가능 | | 기본 동작 | 모든 인바운드 트래픽 차단 | 모든 트래픽 허용 |
상태 저장(Stateful)이란 보안 그룹이 인바운드 요청을 허용하면, 그 요청에 대한 응답(아웃바운드)은 자동으로 허용된다는 뜻입니다. 별도로 아웃바운드 규칙을 만들 필요가 없습니다.
상태 비저장(Stateless)인 NACL은 인바운드와 아웃바운드를 각각 따로 설정해야 합니다.
---
시험 핵심 정리
"인스턴스 수준의 방화벽, 허용 규칙만" — 보안 그룹 "서브넷 수준의 방화벽, 허용과 거부 모두" — NACL "상태 저장(Stateful)" — 보안 그룹 "상태 비저장(Stateless)" — NACL "VPC와 인터넷을 연결하는 관문" — 인터넷 게이트웨이 "프라이빗 서브넷이 인터넷에 나갈 수 있도록" — NAT 게이트웨이 "외부에서 직접 접근 가능한 서브넷" — 퍼블릭 서브넷 "데이터베이스처럼 외부에 노출하면 안 되는 서버를 두는 곳" — 프라이빗 서브넷 보안 그룹과 NACL의 차이는 시험에 매우 자주 출제됩니다. 둘 다 방화벽이지만 적용 범위와 상태 관리 방식이 다릅니다.