VPC 네트워크 피어링 사용

Google Cloud Platform(GCP) 가상 사설 클라우드(VPC) 네트워크 피어링은 두 개의 VPC 네트워크가 동일한 프로젝트 또는 동일한 조직에 속하는지 여부에 관계없이 이 두 네트워크 간에 비공개 RFC 1918 연결을 허용합니다.

VPC 네트워크 피어링에 대한 자세한 내용은 VPC 네트워크 피어링 개요를 참조하세요.

VPC 네트워크 피어링 설정

네트워크는 동일한 조직 노드 내에서 같은 또는 다른 프로젝트의 다른 VPC 네트워크에서 액세스해야 하는 서비스를 호스팅할 수 있습니다.

또는 한 조직에서 다른 조직이 제공하는 서비스에 액세스하려는 경우도 있습니다. 이는 타사 서비스 제공의 사례입니다.

프로젝트 ID는 모든 GCP에서 고유하므로 피어링을 설정할 때 조직을 지정할 필요가 없습니다. GCP는 프로젝트 ID를 기반으로 조직을 인식합니다.

VPC 네트워크 피어링 세션 설정

프로젝트 A의 네트워크 A와 프로젝트 B의 네트워크 B 사이에 VPC 네트워크 피어링을 설정해야 하는 조직 A의 경우를 생각해 보겠습니다. VPC 네트워크 피어링을 성공적으로 설정하려면 네트워크 A와 네트워크 B의 관리자가 개별적으로 피어링 연결을 구성해야 합니다.

1단계: 네트워크 A를 네트워크 B와 피어링

프로젝트 A에서 적절한 IAM 권한이 있는 사용자가 네트워크 A를 구성하여 네트워크 B와 피어링합니다. 예를 들어 roles/editor 또는 roles/compute.networkAdmin 역할이 있는 사용자가 피어링을 구성할 수 있습니다.

네트워크 A에서 네트워크 B로 피어링(확대하려면 클릭)
네트워크 A에서 네트워크 B로 피어링(확대하려면 클릭)

시작하기 전에 피어링할 네트워크의 프로젝트 ID와 네트워크 이름이 필요합니다.

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링 페이지로 이동
  2. 연결 만들기를 클릭합니다.
  3. 계속을 클릭합니다.
  4. 이 연결 측의 peer-ab 이름을 입력합니다.
  5. 내 VPC 네트워크에서 피어링할 네트워크를 선택합니다.
  6. 동일한 프로젝트 내에서 피어링하려는 경우가 아니면 VPC 네트워크 피어링 라디오 버튼을 In another project로 설정합니다.
  7. 다른 프로젝트의 프로젝트 ID를 지정합니다.
  8. 다른 네트워크의 VPC 네트워크 이름을 지정합니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud compute networks peerings create peer-ab \
    --network network-A \
    --peer-project project-B \
    --peer-network network-B \
    --auto-create-routes

이 시점에서 프로젝트 B의 네트워크 B에 일치하는 구성이 없으므로 피어링 상태는 아직 INACTIVE입니다.

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링 페이지로 이동
  2. 상태에 '피어 네트워크 연결 대기 중'이라고 표시됩니다.

gcloud

gcloud compute networks peerings list --network network-A
NAME      NETWORK   PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab   network-A project-B    network-B    True               INACTIVE The peering network has not been configured.

2단계: 네트워크 B를 네트워크 A와 피어링

피어링이 양쪽 모두에서 ACTIVE가 되려면 프로젝트 B의 NetworkAdmin 또는 적절한 IAM 권한이 있는 사용자가 네트워크 B에서 네트워크 A로 일치하는 구성을 설정해야 합니다.

네트워크 B에서 네트워크 A로 피어링(확대하려면 클릭)
네트워크 A에서 네트워크 B로 피어링(확대하려면 클릭)

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링 페이지로 이동
  2. 연결 만들기를 클릭합니다.
  3. 계속을 클릭합니다.
  4. 이 연결 측의 peer-ba 이름을 입력합니다.
  5. 내 VPC 네트워크에서 피어링할 네트워크를 선택합니다.
  6. 동일한 프로젝트 내에서 피어링하려는 경우가 아니면 VPC 네트워크 피어링 라디오 버튼을 In another project로 설정합니다.
  7. 다른 프로젝트의 프로젝트 ID를 지정합니다.
  8. 다른 네트워크의 VPC 네트워크 이름을 지정합니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud compute networks peerings create peer-ba \
     --network network-B \
     --peer-project project-A \
     --peer-network network-A \
     --auto-create-routes

3단계: VPC 네트워크 피어링이 ACTIVE가 되고 경로가 교환됨

피어링이 ACTIVE 상태가 되면 바로 트래픽 흐름이 설정됩니다.

  • 피어링된 네트워크의 VM 인스턴스 간: 풀 메시 연결
  • 네트워크의 VM 인스턴스에서 피어링된 네트워크의 내부 부하 분산 엔드포인트로
피어링 ACTIVE(확대하려면 클릭)
피어링 ACTIVE(확대하려면 클릭)

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링 페이지로 이동
  2. 상태에 '연결됨'이라고 표시됩니다.
  3. 다른 프로젝트의 VPC 네트워크 피어링 페이지로 이동하여 마찬가지로 '연결됨' 상태인지 확인합니다.

gcloud

gcloud compute networks peerings list --network network-A
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab  network-A   project-B   network-B    True                ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.
gcloud compute networks peerings list --network network-B
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ba  network-B   project-A    network-A    True               ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.

이제 피어링된 네트워크 CIDR 프리픽스로 가는 경로를 VPC 네트워크 피어 전반에서 볼 수 있습니다. 이러한 경로는 활성 피어링을 위해 생성되는 묵시적 경로입니다. 이 경로에는 해당되는 경로 리소스가 없습니다. 다음 명령어는 프로젝트 A의 모든 VPC 네트워크의 경로를 나열합니다.

콘솔

  1. Google Cloud Platform Console의 경로 페이지로 이동합니다.
    경로 페이지로 이동

gcloud

gcloud compute routes list --project project-A
NAME                              NETWORK    DEST_RANGE     NEXT_HOP                  PRIORITY
default-route-2a865a00fa31d5df    network-A  0.0.0.0/0      default-internet-gateway  1000
default-route-8af4732e693eae27    network-A  10.0.0.0/16                              1000
peering-route-4732ee69e3ecab41    network-A  10.8.0.0/16    peer-ab                   1000

VPC 네트워크 피어링 세션 삭제

양쪽에서 피어링 구성을 제거할 수 있습니다. 이 경우 피어링이 다시 INACTIVE가 되고 피어 네트워크로 가는 모든 경로가 제거됩니다. 이 예에서는 네트워크 A에서 피어링 구성이 제거됩니다.

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 피어링 페이지로 이동합니다.
    VPC 네트워크 피어링 페이지로 이동
  2. 제거할 피어링 옆의 체크박스를 선택합니다.
  3. 삭제를 클릭합니다.

gcloud

gcloud compute networks peerings delete peer-ab --network network-A

네트워크 피어링 세션의 한쪽이 삭제되면 다른 쪽의 피어링은 INACTIVE가 됩니다.

조직 간 VPC 네트워크 피어링

프로젝트 A/네트워크 A의 VM 인스턴스가 두 개의 다른 외부 조직인 SaaS1와 SaaS2의 서비스에 액세스해야 하는 시나리오를 생각해 보겠습니다. RFC 1918 공간을 통해 액세스하려면 네트워크 A는 서비스가 호스팅되는 SaaS1 프로젝트 B/네트워크 B 및 SaaS2 프로젝트 C/네트워크 C와 피어링해야 합니다.

조직 간 피어링(확대하려면 클릭)
조직 간 피어링(확대하려면 클릭)

이 설정을 만들려면 두 개의 다른 피어링 세션을 만들면 됩니다.

제한사항

피어링된 VPC 네트워크 간 서브넷 IP 범위가 겹치면 안 됨

피어링된 VPC 네트워크에서 서브넷 IP 범위가 다른 서브넷 IP 범위와 겹치면 안 됩니다.

VPC 네트워크 피어링 설정에서 확인 수행

피어링 시 GCP는 두 개의 VPC 네트워크 또는 피어링된 네트워크 간에 IP 범위가 겹치는 서브넷이 있는지 여부를 확인합니다. 겹치는 IP 범위가 있는 경우 피어링이 설정되지 않습니다. VM 인스턴스 간에 풀 메시 연결이 만들어지므로 피어링된 VPC 네트워크의 서브넷 IP 범위가 겹치면 안 됩니다. 겹치는 경우 라우팅 문제가 발생할 수 있기 때문입니다.

두 피어 간의 서브넷 IP 범위 겹침(확대하려면 클릭)
두 피어 간의 서브넷 IP 범위 겹침(확대하려면 클릭)

지정된 VPC 네트워크의 피어 간에 IP 범위가 겹치는 서브넷이 있는 경우 라우팅 충돌이 발생합니다. 예를 들어 VPC 네트워크 N1이 이미 VPC 네트워크 N2와 피어링되어 있는 상태에서 VPC 네트워크 N3이 N2와의 피어링을 시도하는 경우를 생각해 보겠습니다. N3에는 IP 범위가 네트워크 N1의 Subnet_1과 겹치는 서브넷 Subnet_5가 있으므로 이는 잘못된 피어링입니다.

3개의 피어와 서브넷 IP 범위가 겹침(확대하려면 클릭)
3개의 피어와 서브넷 IP 범위가 겹침(확대하려면 클릭)

VPC 네트워크 피어링 시나리오에서 서브넷을 만들 때 확인 수행

VPC 서브넷이 만들어질 때 또는 서브넷 IP 범위가 확장될 때 GCP는 새 서브넷 범위가 동일한 VPC 네트워크 또는 직접 피어링된 VPC 네트워크의 서브넷 IP 범위와 겹치지 않는지 확인합니다. 겹치는 경우 만들기 또는 확장 작업이 실패합니다. 예를 들어 다음 그림에서 네트워크 N2에 새 서브넷 subnet_3이 만들어질 때 IP 범위는 직접 피어링된 네트워크 N1에 정의된 IP 범위와 겹치면 안 됩니다.

서브넷 만들기 확인(확대하려면 클릭)
서브넷 만들기 확인(확대하려면 클릭)

또한 GCP는 공통적으로 피어링된 네트워크가 있는 VPC 네트워크 간에 겹치는 서브넷 IP 범위가 허용되지 않았는지 확인합니다. 겹치는 경우 만들기 또는 확장 작업이 실패합니다. 예를 들어 다음 그림에서 N1은 N2와 이미 피어링되어 있으므로 네트워크 N3에 새 서브넷 subnet_5가 만들어질 때 IP 범위는 직접 피어링된 네트워크 N2 또는 네트워크 N1에 정의된 IP 범위와 겹치면 안 됩니다.

피어 3개에서 서브넷 만들기 확인(확대하려면 클릭)
피어 3개에서 서브넷 만들기 확인(확대하려면 클릭)

이전 네트워크는 VPC 네트워크 피어링에서 지원되지 않음

이전 네트워크는 서브넷이 없는 네트워크입니다. 이전 네트워크는 다른 네트워크와 피어링할 수 없으며 VPC 네트워크 피어링에서 지원되지 않습니다.

피어링된 네트워크를 통해 VPN에 도달할 수 없음

피어링된 네트워크에서는 네트워크의 VPN에 도달할 수 없습니다.

프로젝트 간 Compute Engine DNS 없음

피어링된 네트워크에서는 네트워크에 만들어진 Compute Engine 내부 DNS 이름에 액세스할 수 없습니다. 피어링된 네트워크의 VM 인스턴스에 연결하려면 VM의 IP 주소를 사용해야 합니다.

사용자가 구성한 경로는 피어링된 네트워크 간에 반영되지 않음

사용자가 구성한 경로는 피어링된 네트워크 간에 반영되지 않습니다. VPC 네트워크의 대상으로 가는 경로를 네트워크에 구성하는 경우 피어링된 네트워크에서는 그러한 대상에 도달할 수 없습니다.

태그와 서비스 계정은 피어링된 네트워크 간에 사용할 수 없음

피어링된 네트워크의 태그 또는 서비스 계정을 다른 피어링된 네트워크에서 사용할 수 없습니다.

GKE와 VPC 네트워크 피어링

GKE를 사용한 VPC 네트워크 피어링은 IP 별칭과 함께 사용할 경우에 지원됩니다. Kubernetes 서비스(내부 부하 분산을 통해 노출되는 경우) 및 포드 IP는 VPC 네트워크를 통해 도달 가능합니다.

한도

피어링 수 제한

네트워크에 둘 수 있는 직접 피어링된 네트워크의 총 수는 최대 25개입니다. 이 총계에는 활성 피어링과 비활성 피어링이 모두 포함됩니다.

VPC 네트워크 피어링 VM 인스턴스 제한

VPC 네트워크는 자체 네트워크와 직접 피어링된 모든 VPC 네트워크에서 최대 15,500개의 인스턴스를 가질 수 있습니다.

각 네트워크에는 '피어링 인스턴스 제한'이 있습니다. 이 제한은 네트워크 및 직접 피어링된 모든 네트워크에 존재할 수 있는 총 인스턴스 수에 적용됩니다.

VPC 네트워크 피어링 내부 부하 분산 전달 규칙 제한

네트워크당 제한은 50입니다. 즉, 네트워크 및 직접 피어링된 모든 네트워크의 전달 규칙 수는 이 제한을 초과할 수 없습니다.

각 네트워크에는 '피어링 내부 부하 분산 전달 규칙 제한'이 있습니다. 이 제한은 네트워크 및 직접 피어링된 모든 네트워크에 존재할 수 있는 총 내부 부하 분산 전달 규칙 수에 적용됩니다.

문제해결

Q: 피어링 연결을 설정했지만 피어 VM 또는 내부 부하 분산기에 도달할 수 없습니다.

피어링 연결이 ACTIVE가 된 후 피어링된 VPC 네트워크 간의 모든 트래픽 흐름이 설정될 때까지 최대 1분이 걸릴 수 있습니다. 이 시간은 피어링하는 VPC 네트워크의 크기에 따라 다릅니다. 방금 피어링 연결을 설정했다면 최대 1분 동안 기다린 후 다시 시도하세요. 또한 피어 VPC 네트워크 서브넷 CIDR의 액세스를 차단하는 방화벽 규칙이 없는지 확인하세요.

Q: 피어링 연결을 설정하려고 시도할 때 다른 피어링 작업이 진행 중이라는 오류가 표시됩니다.

라우팅 업데이트 등과의 경합을 피하기 위해 GCP는 피어링된 네트워크 전역에서 한 번에 하나의 피어링 관련 활동만 허용합니다. 예를 들어 한 네트워크와 피어링을 설정한 후 즉시 다른 피어링을 설정하려는 경우 첫 번째 피어링의 모든 작업이 아직 완료되지 않은 상태일 수 있습니다. 모든 작업이 완료될 때까지 최대 1분이 소요될 수 있습니다. 또는 기존 네트워크 피어가 내부 부하 분산기 또는 VM을 추가하면서 네트워크 간에 도달 가능한 항목에 영향을 미치는 경우도 있습니다. 대부분의 경우 1~2분 정도 기다린 후 피어링 연결을 다시 시도해야 합니다.

Q: ACTIVE 피어링이 있는 VPC 네트워크를 삭제하려고 시도하면 오류가 표시됩니다.

여러분 측의 피어링 연결을 삭제한 다음 다시 시도하세요.

Q: 피어링하려는 VPC 네트워크에 겹치는 서브넷 CIDR이 있습니다. 이 피어링이 작동하도록 할 방법이 있나요?

없습니다. 서브넷 CIDR이 겹치지 않도록 VPC 네트워크를 변경해야 합니다.

Q: 다른 네트워크와 피어링된 VPC 네트워크가 있습니다. 내 VPC 네트워크에 서브넷을 만들려고 합니다. 피어 VPC 네트워크와 겹치지 않도록 이 서브넷을 만들려면 어떻게 해야 하나요?

피어 VPC 네트워크를 다음 홉으로 가리키는 피어링 경로를 확인하세요. 이러한 경로는 피어 VPC 네트워크의 서브넷 CIDR 목록을 나타냅니다. 기존 서브넷 CIDR 및 피어 VPC 네트워크의 서브넷 CIDR과 겹치지 않는 CIDR을 선택하세요.

Q: 다른 VPC 네트워크와 피어링된 VPC 네트워크가 있습니다. 내 VPC 네트워크에 서브넷을 만들려고 합니다. 피어의 피어 VPC 네트워크와 겹치지 않도록 이 서브넷을 만들려면 어떻게 해야 하나요?

현재 여기에 도움이 되는 명령어는 없습니다. 피어링된 네트워크의 관리자에게 문의하여 이미 네트워크에 있는 서브넷 경로를 확인하세요.

Q: VPC 피어링에 보안 또는 개인정보 보호와 관련된 우려 사항이 있나요?

피어링 설정 후 각 VPC 네트워크는 다른 네트워크의 서브넷 범위를 압니다. 또한 각 피어 VPC 네트워크는 방화벽 규칙을 통해 금지되지 않는 한 다른 네트워크의 모든 VM과 트래픽을 주고받을 수 있습니다. 그 외의 다른 부분은 피어링된 네트워크 상호 볼 수 없습니다.

Q: 내 네트워크를 대상으로 한 다른 VPC 네트워크의 VPC 피어링 요청이 있는지 여부를 볼 수 있나요?

아니요. VPC 피어링은 양방향으로 작동합니다. 여러분의 여러분 측의 피어링을 설정하고 피어는 그쪽을 설정합니다. 자신이 설정한 VPC 피어링 요청만 볼 수 있습니다.

다음 단계

  • 경로 개요에서 VPC 라우팅에 대한 자세한 내용을 확인하세요.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...