Internet Gateway, NAT Gateway, Routing Table 구축 과정을 정리하였다.
AWS 아키텍처

인터넷 게이트웨이는 Jenkins VPC와 Serivce VPC에 각각 하나씩 총 2개 존재한다.
외부 통신(개발자 접속)을 가능하게 하기 위함이다.
NAT 게이트웨이는 Jenkins VPC와 Service VPC의 퍼블릭 서브넷에 각각 하나씩 총 3개 존재한다.
이는 프라이빗 서브넷 속 리소스의 트래픽을 외부로 전달하기 위함이다.
NAT 인스턴스 역시 같은 기능을 수행 가능하지만 NAT 게이트웨이가 단방향 통신을 지원한다는 점에서 보안성을 더 높게 평가해 채택하였다. (사실 NAT 인스턴스 설정 중 오류가 너무 나서 계획을 변경했다;; 하지만 NAT 게이트웨이 비용이 정말 만만치 않으니 신중히 선택할 필요가 있다..!)
이러한 게이트웨이는 라우팅 테이블을 필수적으로 하기 때문에 Jenkins VPC 퍼블릭 / 프라이빗 서브넷에 각각에 라우팅 테이블을 두고 총 2개를 구성하였다.
Service VPC의 경우 퍼블릭 / 프라이빗 서브넷을 그룹화하여 하나의 라우팅 테이블을 공유하도록 설정하였다.
블루/그린 배포는 두 환경을 동시에 띄우지만, 운영 중인 환경으로만 트래픽이 흐르고, 검증 과정에서만 Green 환경으로 일부 트래픽이 전달된다. Jenkins처럼 외부 트래픽이 많지 않기 때문에 독립적인 라우팅 테이블이 필수적이지 않아 공유 테이블을 채택하였다. 또한 동일한 라우팅 구조를 사용하면 트래픽 전환과 ALB 헬스체크 설정이 단순해지고, 여러 서브넷을 하나의 라우팅 테이블로 묶으면 관리해야 할 라우팅 규칙 수가 줄어들어 운영 효율성과 비용 측면에서 더 유리하다.
인테넷 게이트웨이(Internet Gateway)란?
인터넷 게이트웨이(IGW)는 VPC와 인터넷 통신을 가능하게 하는 구성요소이다.
VPC는 기본적으로 외부와 직접 통신할 수 없지만, 인터넷 게이트웨이를 사용하면 외부 통신이 가능해진다.
즉, 퍼블릭 서브넷 (정확히 말하면 퍼브릭 서브넷이 연결된 라우팅 테이블)에 등록되어 사용된다.
인터넷 게이트웨이는 양방향 통신을 지원하며, 인터넷과 퍼블릭 서브넷 사이의 통신을 가능하게 하는 관문으로 기능한다.
퍼블릭 서브넷가 인터넷과 통신할 때, 외부 사용자가 퍼블릭 리소스에 접속할 때 전부 인터넷 게이트웨이를 거쳐 전달된다.
이때 리소스의 퍼블릭 IP 또는 Elastic IP가 요청의 목적지가 되며, 라우팅 테이블과 보안 그룹 규칙이 외부 트래픽을 허용하도록 설정되면 통신이 정상적으로 이루어진다. 따라서 퍼블릭 서브넷의 라우팅 테이블에는 기본적으로 0.0.0.0/0과 같이 IGW로 향하는 경로가 설정되어 있다.
인테넷 게이트웨이(Internet Gateway) 생성
Jenkins IGW

Service IGW

이름 태그 설정 후 생성한다.
이후 사용하고자 하는 VPC에 연결해주면 끝난다.

NAT 게이트웨이(NAT Gateway)란?
NAT 게이트웨이(NGW)는 프라이빗 서브넷이 외부 인터넷과 통신할 수 있게 해주는 네트워크 서비스이다.
NAT 게이트웨이 역시 인터넷 게이트웨이와 같이 외부 인터넷과 연결하는 관문 역할을 수행한다.
NAT 게이트웨이는 단방향 통신을 지원하며, 기본적으로 아웃바운드 트래픽만 허용한다.
프라이빗 서브넷(정확히는 프라이빗 서브넷 속 인스턴스 등의 리소스가)이 인터넷으로 보내는 트래픽은 NAT 게이트웨이를 거치며 사설 IP가 NAT 공용 IP로 변환된 뒤 통신이 이루어진다.
NAT 게이트웨이(NAT Gateway) 생성
Jenkins ngw

Service ngw 1

Service ngw 2

이름 설정 후 가용성 모드는 영역별로 선택한다.
서브넷은 다음과 같이 설정했다.
ngw - Jenkins ← bastion subnet
ngw - 1 ← public subnet 1
ngw - 2 ← public subnet 2
탄력적 IP 할당을 선택한다.
라우팅 테이블(Routing Table)란?
라우팅 테이블(Routing Table)은 네트워크에서 패킷이 목적지까지 도달할 수 있도록 경로를 결정할 때 사용한다.
각 테이블에는 목적지 CIDR 블록, 다음 홉 등의 라우트 규칙이 포함되어 있다.
AWS에서는 서브넷과 라우팅 테이블을 연결하여 네트워크 트래픽을 관리할 수 있다
라우팅 테이블은 기본 라우팅 테이블과 사용자 지정 라우팅 테이블로 구분된다.
- 기본 라우팅 테이블 : VPC를 생성하면 자동으로 생성되는 테이블
기본 테이블에는 VPC 내부 트래픽(CIDR 범위)에 대한 경로가 설정되어 있어, 서브넷을 연결하면 바로 내부 통신이 가능하다.
필요하다면 인터넷 게이트웨이나 NAT 게이트웨이 등 추가 경로를 설정하여 그대로 사용할 수 있다.
- 사용자 지정 라우팅 테이블 : 기본 테이블 외에 사용자가 직접 생성한 테이블
특정 서브넷이나 용도별로 독립적인 트래픽 경로를 관리하고자 할 때는 사용자가 직접 생성해야 한다.
본 프로젝트가 이에 해당하는 경우로, 서브넷 마다 각 용도가 존재하기 때문에 이를 구분해 관리해야 한다.
Jenkins VPC를 기준으로 설명하자면 퍼블릭 서브넷은 인터넷 게이트웨이와 연결되어야 하며, 프라이빗 서브넷은 NAT 게이트웨이를 통해 외부와 접속 가능하도록 설계하여 각 서브넷이 필요로 하는 트래픽 경로를 독립적으로 관리한다.
라우팅 규칙
네트워크에서 패킷이 목적지까지 도달하기 위해 따라야 할 경로를 지정한 규칙
각 라우팅 테이블에는 목적(Destination)과 대상(Target)이 포함된다.
| 라우트 종류 | 목적지(Destination) | 대상(Target) | 설명 | 사용 서브넷/환경 |
| 로컬 (Local) ] | VPC CIDR | local | 같은 VPC 내 인스턴스 간 통신 허용 | 모든 서브넷 |
| 인터넷 게이트웨이 (IGW) |
0.0.0.0/0 | igw-xxxxxxxx | 외부 인터넷과 연결 | 퍼블릭 서브넷 |
| NAT 게이트웨이 (NAT Gateway) |
0.0.0.0/0 | nat-xxxxxxxx | 프라이빗 서브넷 인스턴스가 인터넷 접근 가능, 외부 직접 접근 차단 | 프라이빗 서브넷 |
| VPC 피어링 (VPC Peering) |
연결된 VPC CIDR | pcx-xxxxxxxx | 서로 다른 VPC 간 통신 가능, 다른 계정 VPC 연결 가능 | VPC 간 통신 |
| VPN / Direct Connect | 온프레미스 네트워크 | vgw-xxxxxxxx | 온프레미스 네트워크와 VPC 연결 | 온프레미스 연동 |
라우팅 테이블(Routing Table) 생성
Jnkins public/private RT


Service public/private RT


라우팅 테이블 이름을 설정 후 생성한다.
(Daeogok-public/private-table-Jenkins, Daegok-public/private-table-1)
이후 해당 라우팅 테이블에 subnet을 연결한다.
Daegok-public-table-Jenkins ← Daegok-public-subnet-Jenkins
Daegok-private-table -Jenkins ← Daegok-private-subnet-Jenkins
Daegok-public-table-1 ← Daegok-public-subnet-1 / 2
Daegok-private-table-1 ← Daegok-private-subnet-1 / 2




이어서 igw / ngw 연결한다.
Daegok-public-Jenkins ← igw
Daegok-private-Jenkins ← ngw
Daegok-public-table-1 ← igw
Daegok-private-table-1 ← ngw



'Project > Cloud' 카테고리의 다른 글
| DevSecOps CI/CD 파이프라인 프로젝트 - ECR + ECS + ALB + Jenkins 설정 (6) (0) | 2026.02.02 |
|---|---|
| DevSecOps CI/CD 파이프라인 프로젝트 - Bastion EC2 + Jenkins EC2 (4) (0) | 2026.02.02 |