VPC Peering 구성
Note: VPC Peering을 위해서는 두 VPC의 CIDR 블록이 겹치지 않아야 합니다. 본 문서에서는
pista-vpc(10.0.0.0/16)와PIZZA-vpc(172.31+.0.0/16) 간의 피어링을 가정합니다.
목차
구성 프로세스
| 단계 | 작업 | 설명 | 콘솔 경로 |
|---|---|---|---|
| 1 | VPC 생성 | CIDR 10.0.0.0/16 생성함 | VPC > VPC 생성 |
| 2 | 서브넷 생성 | Public 3개, Private 3개 생성함 | VPC > 서브넷 생성 |
| 3 | 인터넷 게이트웨이 | IGW 생성 및 VPC 연결함 | VPC > 인터넷 게이트웨이 |
| 4 | NAT 게이트웨이 | Public 서브넷에 NAT 생성함 (EIP 할당) | VPC > NAT 게이트웨이 |
| 5 | 라우팅 테이블 | Public/Private 라우팅 구성 및 서브넷 연결함 | VPC > 라우팅 테이블 |
| 6 | VPC Peering 생성 | pista-vpc ↔ PIZZA-vpc 요청 및 수락함 | VPC > 피어링 연결 |
| 7 | 라우팅 업데이트 | 양쪽 VPC 라우팅 테이블에 상대방 대역 경로 추가함 | VPC > 라우팅 테이블 |
| 8 | 보안 그룹 설정 | Peering된 VPC IP 대역 허용함 | VPC > 보안 그룹 |
VPC 네트워크 구성
VPC 생성
- 이름:
pista-vpc - CIDR:
10.0.0.0/16 - 설정: DNS 호스트 이름 활성화
서브넷 생성
| 타입 | 이름 | CIDR | AZ |
|---|---|---|---|
| Public | pista-subnet-public1-1a | 10.0.0.0/24 | 2a |
| Public | pista-subnet-public2-1b | 10.0.1.0/24 | 2b |
| Public | pista-subnet-public3-1c | 10.0.2.0/24 | 2c |
| Private | pista-subnet-private1-1a | 10.0.10.0/24 | 2a |
| Private | pista-subnet-private2-1b | 10.0.11.0/24 | 2b |
| Private | pista-subnet-private3-1c | 10.0.12.0/24 | 2c |
인터넷 게이트웨이
| 변수 | 값 | 설명 |
|---|---|---|
| 생성 | pista-igw | IGW 생성 |
| 연결 | pista-vpc | VPC에 연결 |
NAT 게이트웨이
Private 서브넷의 아웃바운드 인터넷 통신을 위해 필요
| 변수 | 값 | 설명 |
|---|---|---|
| 위치 | pista-subnet-public1-1a | NAT Gateway 위치 |
| 연결 | pista-eip-nat | Elastic IP (EIP) 할당 |
라우팅 테이블
1. Public 라우팅 테이블 (pista-rtb-public)
| 대상 (Destination) | 타겟 (Target) | 설명 |
|---|---|---|
10.0.0.0/16 | local | 로컬 통신 |
0.0.0.0/0 | pista-igw | 인터넷 통신 (IGW) |
- 서브넷 연결: Public 서브넷 3개
2. Private 라우팅 테이블 (pista-rtb-private)
| 대상 (Destination) | 타겟 (Target) | 설명 |
|---|---|---|
10.0.0.0/16 | local | 로컬 통신 |
0.0.0.0/0 | pista-nat | 인터넷 통신 (NAT) |
- 서브넷 연결: Private 서브넷 3개
VPC Peering
아키텍처 개요
VPC Peering 생성
-
피어링 연결 요청
- 이름:
pista-peering-PIZZA - 요청자 VPC:
pista-vpc(10.0.0.0/16) - 수락자 VPC:
PIZZA-vpc(172.0.0.0/20)
- 이름:
-
요청 수락
수락 대기 중상태 확인 → 요청 수락
라우팅 테이블 업데이트
양쪽 VPC가 서로 통신할 수 있도록 라우팅을 추가해야 함.
1. pista VPC 라우팅 테이블
| 라우팅 테이블 이름 | ID | 대상 (Destination) | 타겟 (Target) |
|---|---|---|---|
pista-rtb-public | rtb-05d2b79a43b8652fc | 172.0.0.0/20 | pcx-xxxxxxxx |
pista-rtb-private1-ap-southeast-1a | rtb-05df451408d890ea6 | 172.0.0.0/20 | pcx-xxxxxxxx |
pista-rtb-private2-ap-southeast-1b | rtb-06690fa10ee0bb1d1 | 172.0.0.0/20 | pcx-xxxxxxxx |
pista-rtb-private2-ap-southeast-1c | rtb-0b75b2cfaa7ece028 | 172.0.0.0/20 | pcx-xxxxxxxx |
2. PIZZA VPC 라우팅 테이블
| 라우팅 테이블 이름 | ID | 대상 (Destination) | 타겟 (Target) |
|---|---|---|---|
PIZZA-rtb-public | rtb-03a5fe104be63c063 | 10.0.0.0/16 | pcx-xxxxxxxx |
PIZZA-rtb-private1-ap-southeast-1a | rtb-057f11f078a8b8dd6 | 10.0.0.0/16 | pcx-xxxxxxxx |
PIZZA-rtb-private2-ap-southeast-1b | rtb-04c94fca15a21770f | 10.0.0.0/16 | pcx-xxxxxxxx |
PIZZA-rtb-private3-ap-southeast-1c | rtb-052092b60971c20ff | 10.0.0.0/16 | pcx-xxxxxxxx |
보안 그룹 업데이트
기존 보안 그룹에 Peering VPC(172.0.0.0/20)에서의 접근 규칙을 추가합니다.
1. ECS 보안 그룹 (pista-sg-ecs)
| 변수 | 값 | 소스 | 설명 |
|---|---|---|---|
| 보안 그룹 이름 | pista-sg-ecs | - | 기존 그룹 |
| 인바운드 규칙 | TCP 22 | 172.0.0.0/20 (PIZZA VPC) | [추가] Bastion SSH 접속 허용 |
| 인바운드 규칙 | TCP 22 | 관리자 IP | 기존 규칙 |
| 인바운드 규칙 | TCP 32768-65535 | pista-sg-alb | 기존 규칙 (ALB 트래픽) |
2. RDS 보안 그룹 (pista-sg-rds)
| 변수 | 값 | 소스 | 설명 |
|---|---|---|---|
| 보안 그룹 이름 | pista-sg-rds | - | 기존 그룹 |
| 인바운드 규칙 | TCP 3306 | pista-sg-ecs | 기존 규칙 |
3. Bastion 보안 그룹 (PIZZA VPC)
| 변수 | 값 | 소스 | 설명 |
|---|---|---|---|
| 아웃바운드 규칙 | TCP 22 | 10.0.0.0/16 (pista VPC) | [추가] ECS SSH 접속용 |
연결 테스트
# 1. PIZZA VPC Bastion -> ECS 인스턴스 (SSH)
ssh -i <KEY_PAIR.pem> ec2-user@<ECS_INSTANCE_PRIVATE_IP>