AWS에서 멀티 VPC 아키텍처 구축
발행: (2026년 5월 2일 PM 04:37 GMT+9)
5 분 소요
원문: Dev.to
Source: Dev.to
소개
클라우드 네트워킹을 배우기 시작하면 대부분 단일 VPC부터 시작합니다.
조직에서는 워크로드를 다음과 같이 분리합니다:
- 보안
- 확장성
- 팀 격리
- 환경 구분(개발, 스테이징, 프로덕션)
그럼 자연스럽게 떠오르는 질문이 있습니다: 이렇게 격리된 네트워크들이 어떻게 안전하게 서로 통신할 수 있을까?
이 실습 프로젝트는 그 질문에 답합니다.
이 가이드에서는 다음을 수행합니다:
- 두 개의 별도 VPC 생성
- 각 VPC에 퍼블릭 및 프라이빗 서브넷 설계
- VPC 피어링 연결 설정
- 라우팅 테이블을 구성하여 통신 가능하게 만들기
완료하면 실제 프로덕션 환경에서 사용되는 기본적인 멀티‑VPC 아키텍처를 갖추게 됩니다.
다루는 핵심 네트워킹 개념
- 네트워크 격리
- CIDR 블록 설계
- 네트워크 간 라우팅
- 인터넷 없이 이루어지는 프라이빗 통신
이러한 기술은 클라우드 엔지니어, DevOps 엔지니어, 솔루션 아키텍트에게 필수적입니다.
아키텍처 개요
VPC-A (10.10.0.0/16) VPC-B (10.20.0.0/16)
---------------------- ----------------------
Public Subnet Public Subnet
Private Subnet Private Subnet
| |
-------- VPC Peering -------
인터넷 게이트웨이나 NAT 게이트웨이는 필요하지 않으며, 순수히 내부 통신만을 위한 구성입니다.
단계별 구현
1. VPC‑A 생성
- 이름: VPC‑A
- CIDR 블록:
10.10.0.0/16
2. VPC‑A에 서브넷 생성
| 서브넷 유형 | CIDR 블록 |
|---|---|
| 퍼블릭 | 10.10.1.0/24 |
| 프라이빗 | 10.10.2.0/24 |
3. VPC‑B 생성
- 이름: VPC‑B
- CIDR 블록:
10.20.0.0/16
4. VPC‑B에 서브넷 생성
| 서브넷 유형 | CIDR 블록 |
|---|---|
| 퍼블릭 | 10.20.1.0/24 |
| 프라이빗 | 10.20.2.0/24 |
5. VPC 피어링 연결 생성
- VPC 대시보드 → 피어링 연결 로 이동합니다.
- Create Peering Connection 을 클릭합니다.
- 요청자(requester)로 VPC‑A, 수락자(accepter)로 VPC‑B를 선택합니다.
- 연결을 생성한 뒤 요청을 수락합니다.
6. 라우팅 테이블 구성
VPC‑A 라우팅 테이블
| 목적지 | 대상 |
|---|---|
10.20.0.0/16 | VPC Peering Connection |
VPC‑B 라우팅 테이블
| 목적지 | 대상 |
|---|---|
10.10.0.0/16 | VPC Peering Connection |
이러한 라우트가 없으면 피어링 연결이 존재하더라도 트래픽이 흐르지 않습니다.
7. 연결성 검증
- 각 VPC의 프라이빗 서브넷에 EC2 인스턴스를 실행합니다.
- 한 인스턴스에서 다른 인스턴스의 프라이빗 IP를 ping 합니다.
올바르게 구성되었다면 인스턴스 간에 성공적으로 통신이 이루어집니다.
중요한 고려 사항
- 전이 라우팅 미지원: A → B → C 형태는 자동으로 작동하지 않으며, 각 피어링 관계를 명시적으로 정의해야 합니다.
- CIDR 블록이 겹치면 안 됩니다.
- 원하는 트래픽 흐름을 위해 각 라우트를 수동으로 설정해야 합니다.
이 프로젝트를 통해 배우는 내용
- 실제 환경에서 아키텍처가 어떻게 분할되는지 이해
- 클라우드 네트워킹과 전통적인 네트워킹의 차이점 파악
- 라우팅을 통해 격리된 네트워크 간 통신을 구현하는 방법
- 안전하고 격리된 시스템 설계 방법
실제 활용 사례
- 개발 환경과 프로덕션 환경 연결
- 애플리케이션 계층 분리(예: 웹 계층 vs 데이터베이스 계층)
- 각 팀이 자체 VPC를 소유하는 멀티‑팀 아키텍처
- VPC 간 마이크로서비스 통신