VPC 피어링
- VPC 간에는 기본적으로 네트워크 통신이 되지 않음
- VPC 피어링은 두 VPC 간에 트래픽을 라우팅할 수 있도록 하기 위한 두 VPC 사이의 네트워킹 연결
- VPC 피어링 트래픽은 퍼블릭 인터넷을 통과하지 않고 프라이빗 IP 주소를 사용하여 서로 통신
- VPC 피어링은 같은 리전 내에, 다른 리전 간, 다른 AWS 계정간 가능
VPC Peering 구성과정
- 요청자가 다른 VPC와 피어링하기 위한 요청을 생성
- 수락자 VPC의 소유자가 VPC 요청을 수락하여 피어링을 활성화
- 라우팅 테이블에 피어링 연결을 추가
A VPC와 B VPC가 있다고 가정한다면 두 VPC를 VPC Peering으로 서로 통신하기 위해서는 A VPC의 라우팅 테이블에 B VPC의 CIDR 블록을 대상으로 설정하고 반대로 B VPC에서는 A VPC의 CIDR 블록을 대상으로 설정한다. 대상은 두 VPC 모두 동일하게 Peering Connection(pcx-11112222)을 타겟으로 한다.
지원되지 않은 VPC Peering 구성
CIDR Overlapping (CIDR 중첩)
- 일치하거나 중첩되는 IPv4 CIDR 블록이 있는 VPC 간에는 VPC 피어링 연결을 만들 수 없음
Transitive Peering (전이적 피어링)
- VPC B 또는 VPC C가 VPC A를 통해 서로 라 우팅할 수 없음
- VPC Peering은 1:1 연결만 가능
VPC Peering DNS Resolution
피어 VPC의 인스턴스가 쿼리를 보낼 때 VPC가 퍼블릭 IPv4 DNS 호스트 이름을 프라이빗 IPv4 주소로 확인하도록 설정
VPC Peering DNS Resolution을 비활성화시
EC2 인스턴스의 퍼블릭 IPv4 DNS 주소를 nslookup 명령을 통해 확인을 해보면 퍼블릭 IPv4 주소를 리턴한다.
- EC2 Public 호스트 이름이 Public IP 주소 반환
- 인터넷으로 트래픽 흐름
VPC Peering DNS Resolution을 활성화시
EC2 인스턴스의 퍼블릭 IPv4 DNS 주소를 nslookup 명령을 통해 확인을 해보면 프라이빗 IPv4 주소를 리턴한다.
- EC2 Public 호스트 이름이 Private IP 주소 반환
- VPC내에서 트래픽 흐름
- VPC의 DNS 호스트 이름(DNS Hostname)과 DNS 확인(DNS Resolution)에 대해 두 VPC가 모두 활성화되어 있어야 함.
Shared Services VPC (공유 VPC)
- 여러 AWS 계정에서 Amazon EC2 인스턴스, Amazon Relational Database Service (RDS) 데이터베이스, Amazon Redshift 클러스터, AWS Lambda 함수 같은 애플리케이션 리소스를 중앙 관리형 공유 Virtual Private Cloud (VPC)로 생성
- VPC(소유자)를 소유하는 계정은 동일한 조직에 속한 다른 계정(참여자)과 한 개 또는 여러 개의 서브넷을 공유
- 서브넷을 공유한 후 참여자는 공유된 서브넷의 해당 애플리케이션 리소스를 보고, 생성하고, 수정하고, 삭제할 수 있음
- 리소스를 공유하기 위해서 인터넷을 통하지 않고 내부 네트워크를 통해 접근하므로 비용 절감
VPC 실습 (동일 리전)
- 같은 리전 안에 존재하는 다른 CIDR 블록을 가지는 A VPC, B VPC 생성
- 두 VPC 모두 퍼블릭 서브넷을 가지고 있으며 퍼블릭 서브넷과 연결된 라우팅 테이블은 인터넷 게이트웨이와 연결되어 인터넷으로 트래픽 송수신이 가능한 상태
- A VPC와 B VPC 피어링 연결 생성
요청 - 작업 - 요청 수락 - 피어링 활성화
- 요청자: A VPC
- 수락자: B VPC
- 각 VPC에서 라우팅 테이블 수정
라우트 테이블
- A VPC: B VPC CIDR을 Destination으로 설정, 타겟은 피어링 연결
- B VPC: A VPC CIDR을 Destination으로 설정, 타겟은 피어링 연결
- A VPC, B VPC 퍼블릭 서브넷 EC2 생성(Windows)
Security Group (보안그룹)
- A VPC SG: RDP (3389), 내 IP만 허용
- B VPC SG: 모든 트래픽 허용
- RDP를 통해 A VPC 퍼블릭 서브넷에 있는 EC2 접속 (Client -> A VPC)
- A EC2에서 RDP로 B EC2 접속 (
내 컴퓨터
->A EC2
->B EC2
)
A VPC와 B VPC가 피어링 연결이 되어 있기 때문에 프라이빗 네트워크로 통신이 가능하며 A VPC에서 B VPC의 프라이빗 IP 주소를 통해 RDP 연결로 접속합니다.
- VPC 피어링 트래픽은 퍼블릭 인터넷을 통과하지 않고 프라이빗 IP 주소를 사용하여 서로 통신
- nslookup 질의를 통해 VPC Peering DNS Resolution 설정 전과 후의 반환 결과 비교
- VPC Peering DNS Resolution 편집: VPC - 피어링 연결 - 작업 - DNS 설정 편집
VPC Peering DNS Resolution 설정 전
- nslookup 명령어로 DNS 서버에 프라이빗 DNS 질의시 프라이빗 IP 반환, 퍼블릭 DNS 질의시 퍼블릭 IP 반환
VPC Peering DNS Resolution 설정 후
- nslookup 명령어로 프라이빗 DNS와 퍼블릭 DNS 질의시 모두 프라이빗 IP 주소만을 반환
DNS 설정 편집
- 수락자 VPC가 프라이빗 IP에 대한 요청자 VPC 호스트의 DNS를 확인하도록 허용합니다.
활성화되면 요청자 VPC에 있는 인스턴스의 DNS 호스트 이름은 수락자 VPC의 인스턴스에서 쿼리될 때 해당 프라이빗 IP 주소로 확인됩니다.
- 요청자 VPC가 프라이빗 IP에 대한 수락자 VPC 호스트의 DNS를 확인하도록 허용합니다.
활성화되면 수락자 VPC에 있는 인스턴스의 DNS 호스트 이름은 요청자 VPC의 인스턴스에서 쿼리될 때 해당 프라이빗 IP 주소로 확인됩니다.
VPC 피어링 제한
다른 VPC와의 VPC 피어링 연결이 이루어지도록 하려면 다음 제한과 규 칙을 인지해야 합니다.
- 일치하거나 중첩되는 IPv4 또는 IPv6 CIDR 블록이 있는 VPC 간에는 VPC 피어링 연결을 생성할 수 없습니다. Amazon은 항상 VPC에 고유한 IPv6 CIDR 블록을 할당합니다. IPv6 CIDR 블록이 고유하지만 IPv4 블록은 고유하지 않은 경우, 피어링 연결을 생성할 수 없습니다.
- VPC당 보유할 수 있는 활성 및 보류중인 VPC 피어링 연결 수에는 할당량이 있습니다.
- VPC 피어링은 전이적 피어링 관계를 지원하지 않습니다. VPC 피어링 연결에서 VPC는 피어 VPC가 피어링될 수 있는 다른 VPC에 액세스할 수 없습니다. 이 경우 자체 AWS 계정 내에서 전적으로 설정되는 VPC 피어링 연결이 포함됩니다.
- 동일한 두 VPC 간에 둘 이상의 VPC 피어 연결을 동시에 사용할 수 없습니다.
- VPC 피어링 연결에서의 유니캐스트 역경로 전송은 지원되지 않습니다.
- VPC 피어링 연결의 어느 한 쪽에 있는 리소스가 IPv6를 통해 서로 통신하도록 할 수 있습니다. 그러나 IPv6 통신은 자동 실행되지 않습니다. IPv6 CIDR 블록을 각 VPC와 연결하고, IPv6 통신을 위해 VPC의 인스턴스를 활성화하며 피어 VPC를 위한 IPv6 트래픽을 VPC 피어링 연결로 라우팅하는 라우팅 테이블에 경로를 추가해야 합니다.
- VPC 피어링 연결에 대해 생성한 모든 태그는 태그를 생성한 계정 또는 리전에서만 적용됩니다.
- VPC 피어링 연결에서 VPC의 IPv4 CIDR 블록이 RFC 1918에 의해 지정된 프라이빗 IPv4 주소 범위를 벗어나는 경우, 해당 VPC의 프라이빗 DNS 호스트 이름을 프라이빗 IP 주소로 확인할 수 없습니다. 프라이빗 DNS 호스트 이름을 프라이빗 IP 주소로 확인하려면 VPC 피어링 연결에 대한 DNS 확인 지원을 활성화할 수 있습니다.
- 피어 VPC에서는 Amazon DNS 서버에 연결하거나 쿼리할 수 없습니다.
리전 간 VPC 피어링 연결에는 추가 제한 사항이 있습니다.
- 피어 VPC 보안그룹을 참조하는 보안그룹을 생성할 수 없습니다.
- 피어 VPC와 통신하도록 ClassicLink를 통해 VPC와 연결된 EC2-Classic 인스턴스에 대한 지원을 활성화할 수 없습니다.
- VPC 피어링 연결 간의 최대 전송 단위(MTU)는 1500바이트입니다. (점보 프레임은 지원되지 않음)
- VPC에 대한 IPv4 CIDR이 RFC 1918에서 지정한 프라이빗 IPv4 주소 범위에 포함되더라도, VPC 피어링 연결에 대해 DNS 확인 지원을 활성화하여 피어링된 VPC의 프라이빗 DNS 호스트 이름을 프라이빗 IP 주소로 확인해야 합니다.