현재 사용 중인 Amazon VPC와 다른 AWS 계정에 연결된 VPC 간에 Amazon Virtual Private Cloud(Amazon VPC) 피어링 연결을 생성하려고 합니다. 하지만, "The connection failed due to incorrect VPC-ID, Account ID, or overlapping CIDR range(잘못된 VPC-ID, 계정 ID 또는 겹치는 CIDR 범위로 인해 연결에 실패했습니다)" 오류가 발생합니다.
해결 방법
Amazon VPC 설정 확인
VPC와 다른 AWS 계정의 VPC 간에 피어링 연결을 생성할 때 반드시 다음 설정을 검토합니다.
- **VPC(수락자)**의 계정 ID를 올바르게 입력했습니다.
- **VPC(수락자)**의 VPC ID를 올바르게 선택했습니다.
- 선택한 VPC(요청자) 및 **VPC(수락자)**에 대한 기본 CIDR 블록 또는 보조 CIDR 블록이 겹치지 않습니다.
참고: VPC에 겹치는 CIDR 블록이 있는 경우, VPC 피어링 연결을 생성할 수 없습니다. 이 경우 VPC를 삭제하고 겹치지 않는 CIDR 블록이 있는 VPC 중 하나를 다시 생성해야 합니다.
겹치는 CIDR 블록에 대한 모범 사례 구현
AWS Transit Gateway를 통해프라이빗 NAT 게이트웨이 및 Application Load Balancer를 사용하여 겹치는 CIDR 블록이 있는 두 VPC 간에 프라이빗 통신을 설정합니다.
다음 단계를 완료합니다.
첫 번째 VPC:
- 동일하지 않은 보조 CIDR을 추가합니다.
- CIDR의 기본 및 보조 블록에 추가 프라이빗 서브넷을 생성합니다.
- 보조 CIDR 서브넷에 프라이빗 NAT 게이트웨이를 생성하여 서브넷 범위에서 프라이빗 IP 주소를 설정합니다.
보조 VPC:
- 겹치는 기본 CIDR에 보조 CIDR을 추가합니다.
- 기본 CIDR에 다른 동일한 프라이빗 서브넷을 생성합니다.
- 새로 생성된 프라이빗 서브넷에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 호스팅하는 애플리케이션을 시작합니다.
- 서로 다른 가용 영역에 프라이빗 서브넷을 2개 더 생성합니다.
- 내부 Application Load Balancer를 생성한 다음 4단계에서 서브넷을 선택합니다.
- Application Load Balancer를 구성하고 시작된 인스턴스를 **Target(대상)**으로 선택하여 인스턴스를 등록합니다. 참고: Application Load Balancer의 대상은 첫 번째 VPC의 워크로드가 액세스해야 하는 기본 CIDR의 프라이빗 서브넷에 있는 워크로드여야 합니다. 또한, 등록된 대상이 정상인지 확인합니다.
Transit Gateway:
- Transit Gateway를 생성하고 기본 라우팅 테이블 전파에 대해 **Disabled(비활성화됨)**를 선택합니다.
- 각 가용 영역에서 적절한 서브넷을 연결하여 각 VPC에 대한 Transit Gateway VPC 연결을 생성합니다.
- Transit Gateway 라우팅 테이블에 경로를 입력하여 대상 CIDR을 VPC 연결 장치로 라우팅합니다.
VPC 라우팅 테이블:
첫 번째 VPC의 경우:
- 프라이빗 서브넷에서 워크로드의 라우팅 테이블을 편집합니다.
- 프라이빗 NAT 게이트웨이를 통해 보조 대상 CIDR에 대한 정적 경로를 추가합니다.
- 프라이빗 NAT 게이트웨이가 시작되는 NAT 서브넷 라우팅 테이블을 생성하거나 수정합니다.
- Transit Gateway를 통해 대상 VPC의 보조 CIDR에 경로 항목을 추가합니다.
두 번째 VPC의 경우:
- Application Load Balancer 서브넷의 라우팅 테이블을 편집합니다.
- Transit Gateway를 통해 첫 번째 VPC의 보조 CIDR 반환 트래픽에 대한 경로를 추가합니다.
연결 확인:
- SSH를 사용하여 첫 번째 VPC의 워크로드 인스턴스에 연결합니다.
- Application Load Balancer를 통해 두 번째 VPC에서 대상 인스턴스의 연결을 테스트합니다.
중요: 가용 영역이나 VPC 연결의 서브넷이 가용 영역 또는 NAT 게이트웨이의 서브넷과 일치하는지 확인하세요.
제한 사항:
- 프라이빗 NAT 게이트웨이 및 다른 VPC로 트래픽을 라우팅하면 온프레미스 네트워크가 단방향으로 설정됩니다. 온프레미스 네트워크가 단방향인 경우 연결의 반대편에 있는 리소스는 NAT 게이트웨이를 사용할 수 없습니다.
- 두 VPC 또는 VPC와 온프레미스 네트워크 간의 아웃바운드 프라이빗 통신에 대해서만 NAT 게이트웨이를 Transit Gateway로 라우팅할 수 있습니다.
- NAT 게이트웨이는 소스 NAT만 수행하기 때문에 이전 설정에서는 소스만 대상 VPC에 대한 연결을 시작할 수 있도록 허용합니다. 겹치는 두 번째 VPC에서 첫 번째 VPC로의 양방향 트래픽이 필요한 경우 설정을 되돌려야 합니다. 두 번째 VPC에 NAT 게이트웨이를 생성하고 Application Load Balancer가 첫 번째 VPC의 인스턴스를 대상으로 하도록 합니다.