설명
VPC 피어링 경로에 0.0.0.0/0 또는 ::/0을 지정하면 더 구체적인 경로가 없는 트래픽까지 피어링 연결로 보낼 수 있습니다. 목적지는 상대 VPC의 실제 CIDR 또는 그 안에서 필요한 범위로 명확하게 지정해야 합니다.
피어링은 인터넷 공개나 다른 VPC로의 중계 기능이 아닙니다. 상대 VPC의 인터넷 게이트웨이나 NAT를 공유할 수도 없습니다. 실제 통신에는 활성 피어링, 양쪽 경로와 보안 그룹 등 접근 제어가 필요합니다.
잠재적 영향
- 불필요한 목적지의 트래픽이 잘못된 경로로 전달되어 연결 실패나 라우팅 혼선이 발생할 수 있습니다.
- 통신 대상과 경로가 불명확해져 네트워크 접근 범위의 검토와 장애 분석이 어려워질 수 있습니다.
해결 방법
- 피어링 경로의 목적지를 상대 VPC의 필요한 CIDR, 서브넷 또는 개별 주소로 제한하세요.
- 양쪽 라우트 테이블, 서브넷 연결과 반환 경로를 검토하고 필요한 보안 그룹 규칙만 허용하세요.
- 변경 후 의도한 양방향 통신이 동작하고 다른 목적지의 경로가 영향을 받지 않는지 확인하세요.
예시
참조한 VPC와 피어링 연결을 별도로 구성해야 하는 부분 예제입니다. 두 라우트 테이블의 이름이 다르므로 두 번째 리소스를 추가하는 것만으로 기존 경로가 바뀌지는 않습니다.
변경 전
hcl
resource "aws_route_table" "public_route_table" {
vpc_id = aws_vpc.vpc1.id
route {
cidr_block = "0.0.0.0/0"
vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
}
}
기본 IPv4 경로가 피어링 연결을 가리킵니다. 이 설정이 상대 VPC를 인터넷 게이트웨이로 만들지는 않습니다.
변경 후
hcl
resource "aws_route_table" "private_route_table" {
vpc_id = aws_vpc.vpc1.id
route {
cidr_block = aws_vpc.vpc2.cidr_block
vpc_peering_connection_id = aws_vpc_peering_connection.my_peering.id
}
}
목적지를 상대 VPC인 vpc2의 CIDR로 제한합니다. 실제로 필요한 범위가 더 작다면 그 범위로 좁히고, 해당 테이블의 서브넷 연결과 상대편 반환 경로도 확인하세요.