EC2 인스턴스를 인터넷에 연결하거나 외부 요청을 받아야 하는 상황은 매우 흔하다. 이때 자주 마주치는 개념들이 있다: 퍼블릭 서브넷, 인터넷 게이트웨이(IGW), 퍼블릭 IP, 그리고 로드밸런서(ALB/NLB). 이 글에서는 이 네 가지가 어떻게 작동하고, 어떤 구조로 연결되어야 인터넷 통신이 가능한지 정리해보려 한다.
1. 퍼블릭 서브넷이란?
퍼블릭 서브넷은 VPC 내에서 인터넷과 직접 연결될 수 있는 서브넷이다. 퍼블릭 서브넷이 되기 위한 조건은 다음과 같다:
- 서브넷이 속한 VPC에 인터넷 게이트웨이(IGW) 가 연결되어 있어야 한다.
- 해당 서브넷의 라우팅 테이블에 0.0.0.0/0 → IGW 경로가 있어야 한다.
이 두 가지가 모두 만족되면, 해당 서브넷은 퍼블릭 서브넷이 된다. 단, 이 안에 있는 EC2 인스턴스가 외부와 통신하려면 퍼블릭 IP 또는 Elastic IP가 필요하다.
2. 인터넷 게이트웨이(IGW)의 역할
IGW는 VPC와 외부 인터넷을 연결해주는 가상 라우터다. VPC 단위로 하나만 연결할 수 있으며, 인터넷과의 입출력 통신은 IGW를 통해 이루어진다. 하지만 단순히 IGW만 연결한다고 인터넷이 되는 건 아니다. IGW는 서브넷의 라우팅 테이블 설정과 함께 작동해야 한다.
❗ IGW는 VPC 단위로 연결되지만, 인터넷 연결은 서브넷 라우팅 테이블 설정을 통해 활성화된다.
3. 퍼블릭 IP와 프라이빗 IP
EC2 인스턴스가 외부에서 직접 요청을 받으려면 퍼블릭 IP가 필요하다. 퍼블릭 IP는 다음 두 가지 방식으로 부여할 수 있다:
- EC2 생성 시 자동 할당 (기본 설정일 수도 있음)
- Elastic IP 수동 할당
반대로 프라이빗 IP만 가지고 있는 인스턴스는 인터넷으로부터 직접적인 요청을 받을 수 없다. NAT 게이트웨이나 프록시 등을 통해 나가는 요청만 가능하다.
4. 로드밸런서와 퍼블릭 연결
4.1 로드밸런서는 퍼블릭 서브넷에 있어야 한다
퍼블릭 ALB(Application Load Balancer)나 NLB(Network Load Balancer)는 퍼블릭 IP나 DNS를 통해 외부 요청을 받는다. 이때 ALB가 퍼블릭이 되기 위해선 퍼블릭 서브넷에 연결되어 있어야 한다. 즉, 다음 조건이 필요하다:
- IGW가 연결된 VPC
- 로드밸런서가 연결된 서브넷의 라우팅 테이블에 0.0.0.0/0 → IGW
이런 구조를 통해 ALB는 외부 요청을 받아 내부 EC2 인스턴스로 전달한다.
4.2 인스턴스는 퍼블릭이 아니어도 된다
로드밸런서의 타겟 인스턴스는 퍼블릭 IP가 없어도 된다. 왜냐하면 요청은 ALB → VPC 내부 트래픽 → EC2 인스턴스 순서로 흐르기 때문이다. 이때 인스턴스는 단지 로드밸런서와 통신 가능한 내부 IP만 가지면 된다.
즉, 로드밸런서가 퍼블릭이면 인스턴스는 프라이빗이어도 외부 요청을 정상적으로 받을 수 있다.
AWS의 인터넷 연결 구조는 "어디서 요청을 받고, 어떻게 전달되고, 누가 응답하느냐"를 기준으로 정리하면 어렵지 않다. 단순히 퍼블릭 IP 유무로 인터넷 연결 여부를 판단하기보다, 라우팅 테이블, IGW 연결, 퍼블릭 서브넷 여부를 함께 고려해야 한다.
'AWS' 카테고리의 다른 글
CloudWatch Alarm으로 EC2 인스턴스 자동 복구 (0) | 2025.05.13 |
---|---|
로드밸런서(ALB/NLB)를 이해하기 위한 통신 흐름의 기초 (0) | 2025.05.12 |
VPC 내 서브넷의 인터넷 연결 방식 (0) | 2025.05.10 |
API Gateway 캐싱 구조 정리 (0) | 2025.05.09 |
AWS VPC 구조와 구성요소 이해하기 (0) | 2025.05.08 |