Private Service Connect 64

1. 소개

Private Service Connect는 조직이 Google Cloud 생태계 내에서 서비스를 소비하는 방식을 혁신하여 IPv4와 함께 IPv6 주소 지정을 완벽하게 지원합니다. 향상된 보안, 간소화된 연결, 개선된 성능, 중앙 집중식 관리를 결합한 이 솔루션은 미래의 네트워킹에 대비할 수 있는 강력하고 안정적이며 효율적인 서비스 소비 모델을 찾는 비즈니스에 이상적입니다. 하이브리드 클라우드를 구축하거나, 조직 전반에서 서비스를 공유하거나, 서드 파티 서비스에 액세스하는 경우에도 PSC를 사용하면 IPv6의 이점을 누리면서 Google Cloud의 모든 잠재력을 활용할 수 있는 원활하고 안전한 경로를 이용할 수 있습니다.

학습할 내용

  • PSC 64의 주요 이점
  • Private Service Connect 64 지원 번역
  • 이중 스택 ULA 개요
  • 네트워크 요구사항
  • Private Service Connect 프로듀서 서비스 만들기
  • Private Service Connect 엔드포인트 만들기
  • IPv4 VM에서 Private Service Connect 엔드포인트로 연결 설정
  • 듀얼 스택 VM에서 Private Service Connect 엔드포인트로 연결 설정

필요한 항목

  • 소유자 권한이 있는 Google Cloud 프로젝트

2. 빌드할 항목

Private Service Connect (PSC)를 통해 Apache 웹 서버를 게시된 서비스로 배포할 제작자 네트워크를 설정합니다. 게시되면 다음 작업을 실행하여 제작자 서비스에 대한 액세스 권한을 확인합니다.

  • 소비자 VPC의 IPv4 GCE 인스턴스에서 IPv4 PSC 엔드포인트를 타겟팅하여 프로듀서 서비스에 도달합니다.
  • 소비자 VPC의 이중 스택 GCE 인스턴스에서 IPv6 PSC 엔드포인트를 타겟팅하여 프로듀서 서비스에 도달합니다.

PSC 64의 주요 이점

  • 원활한 통합: PSC는 IPv6용으로 구성된 VPC 네트워크와 원활하게 통합되므로 서비스 연결에 IPv6 주소 지정의 이점을 활용할 수 있습니다.
  • 이중 스택 지원: PSC는 이중 스택 구성을 지원하므로 동일한 VPC 내에서 IPv4와 IPv6를 동시에 사용할 수 있어 네트워크의 유연성과 미래 지향성을 보장합니다.
  • 간소화된 전환: PSC를 사용하면 기존 IPv4 인프라와 함께 IPv6를 점진적으로 도입하여 IPv6로의 전환을 간소화할 수 있습니다.
  • 프로듀서 지원: 프로듀서는 이중 스택을 채택할 필요가 없으며 대신 소비자는 IPv4 또는 IPv6 PSC 엔드포인트를 배포할 수 있습니다.

3. Private Service Connect 64 및 66 지원 번역

소비자 고려사항

엔드포인트의 IP 버전은 IPv4 또는 IPv6 중 하나일 수 있습니다(둘 다일 수 없음). 주소의 서브넷이 단일 스택인 경우 소비자는 IPv4 주소를 사용할 수 있습니다. 주소의 서브넷이 이중 스택인 경우 소비자는 IPv4 또는 IPv6 주소를 사용할 수 있습니다. 소비자는 IPv4 및 IPv6 엔드포인트를 모두 동일한 서비스 연결에 연결할 수 있으므로 서비스를 IPv6으로 마이그레이션하는 데 유용할 수 있습니다.

제작자 고려사항

프로듀서 전달 규칙의 IP 버전에 따라 서비스 연결의 IP 버전과 서비스 연결을 이그레스하는 트래픽이 결정됩니다. 서비스 연결의 IP 버전은 IPv4 또는 IPv6일 수 있지만 둘 다일 수는 없습니다. 주소의 서브넷이 단일 스택인 경우 프로듀서는 IPv4 주소를 사용할 수 있습니다. 주소의 서브넷이 이중 스택인 경우 프로듀서는 IPv4 또는 IPv6 주소를 사용할 수 있습니다.

프로듀서 전달 규칙 IP 주소의 IP 버전은 서비스 연결의 NAT 서브넷의 스택 유형과 호환되어야 합니다.

  • 프로듀서 전달 규칙이 IPv4인 경우 NAT 서브넷은 단일 스택 또는 이중 스택일 수 있습니다.
  • 프로듀서 전달 규칙이 IPv6인 경우 NAT 서브넷은 이중 스택이어야 합니다.

지원되는 구성에는 다음 조합을 사용할 수 있습니다.

  • IPv4 엔드포인트에서 IPv4로 서비스 연결
  • IPv6 엔드포인트에서 IPv6으로 서비스 연결
  • IPv6 엔드포인트에서 IPv4 서비스 연결로. 이 구성에서 Private Service Connect는 두 IP 버전 간에 자동으로 변환됩니다.

다음은 지원되지 않습니다.

Private Service Connect는 IPv4 엔드포인트와 IPv6 서비스 연결을 지원하지 않습니다. 이 경우 다음 오류 메시지와 함께 엔드포인트 만들기가 실패합니다.

IPv4 주소가 있는 Private Service Connect 전달 규칙은 IPv6 서비스 연결을 타겟팅할 수 없습니다.

4. 이중 스택 ULA 개요

Google Cloud는 ULA 비공개 IPv6 서브넷 및 VM 생성을 지원합니다. RFC 4193은 VPC 내 통신에 적합한 로컬 통신을 위한 IPv6 주소 지정 스킴을 정의합니다. ULA 주소는 전 세계적으로 라우팅할 수 없으므로 VM은 인터넷과 완전히 격리되어 IPv6를 사용하여 RFC-1918과 같은 동작을 제공합니다. Google Cloud에서는 /48 VPC 네트워크 ULA 접두사를 만들 수 있으므로 모든 /64 IPv6 ULA 서브넷이 해당 VPC 네트워크 범위에서 할당됩니다.

Google Cloud에서 지원하는 전 세계 고유 외부 IPv6 주소와 마찬가지로 각 ULA IPv6 지원 서브넷은 /48 VPC 네트워크 ULA 범위에서 /64 서브넷을 수신하고 각 VM에는 해당 서브넷의 /96 주소가 할당됩니다.

RFC4193은 fc00::/7 범위의 IPv6 주소 공간을 정의합니다. ULA 주소는 비공개 네트워크/사이트 내에서 자유롭게 할당하고 사용할 수 있습니다. Google Cloud는 fd20::/20 범위의 모든 ULA 주소를 할당합니다. 이러한 주소는 VPC 범위 내에서만 라우팅할 수 있으며 전역 IPv6 인터넷에서는 라우팅할 수 없습니다.

Google Cloud에서 할당하는 ULA 주소는 모든 VPC 네트워크에서 고유합니다. Google Cloud는 두 VPC 네트워크에 동일한 ULA 접두사가 할당되지 않도록 합니다. 이렇게 하면 VPC 네트워크에서 범위 겹침 문제가 해결됩니다.

Google Cloud에서 네트워크에 /48을 자동으로 할당하도록 하거나 특정 /48 IPv6 접두사를 선택할 수 있습니다. 지정된 IPv6 접두사가 이미 다른 VPC 또는 온프레미스 네트워크에 할당된 경우 다른 범위를 선택할 수 있습니다.

5. 네트워크 요구사항

다음은 소비자 네트워크와 생산자 네트워크의 네트워크 요구사항을 분류한 내용입니다.

소비자 네트워크 (us-central1에 배포된 모든 구성요소)

구성요소

설명

VPC

이중 스택 네트워킹을 사용하려면 ULA가 사용 설정된 커스텀 모드 VPC가 필요합니다.

PSC 엔드포인트

  • 프로듀서 서비스에 액세스하는 데 사용되는 IPv4 PSC 엔드포인트
  • 프로듀서 서비스에 액세스하는 데 사용되는 IPV6 PSC 엔드포인트

서브넷

IPv4 및 이중 스택

GCE

IPv4 및 이중 스택

프로듀서 네트워크(us-central1에 배포된 모든 구성요소)

구성요소

설명

VPC

커스텀 모드 VPC, ULA가 사용 설정되지 않음

PSC NAT 서브넷

IPv4 소비자 VPC 네트워크의 패킷은 소스 NAT (SNAT)를 사용하여 변환되므로 원래 소스 IP 주소는 제작자 VPC 네트워크의 NAT 서브넷에서 소스 IP 주소로 변환됩니다.

PSC 전달 규칙

IPv4 내부 패스 스루 네트워크 부하 분산기

상태 점검

부하 분산되는 인스턴스에 적용되는 인그레스 규칙으로, Google Cloud 상태 확인 시스템 (130.211.0.0/22 및 35.191.0.0/16)의 트래픽을 허용합니다.

백엔드 서비스

백엔드 서비스는 부하 분산기와 백엔드 리소스 간의 다리 역할을 합니다. 이 튜토리얼에서는 백엔드 서비스가 비관리형 인스턴스 그룹과 연결됩니다.

비관리형 인스턴스 그룹

개별 구성 또는 조정이 필요한 VM을 지원합니다. 자동 확장은 지원되지 않습니다.

6. Codelab 토폴로지

b52931afd997d61.png

7. 설정 및 요구사항

자습형 환경 설정

  1. Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
  • 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔은 고유한 문자열을 자동으로 생성합니다. 일반적으로는 신경 쓰지 않아도 됩니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로 PROJECT_ID로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 다른 임의 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다.
  • 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
  1. 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스 또는 프로젝트를 삭제하면 됩니다. Google Cloud 신규 사용자는 300달러(USD) 상당의 무료 체험판 프로그램에 참여할 수 있습니다.

Cloud Shell 시작

Google Cloud를 노트북에서 원격으로 실행할 수 있지만, 이 Codelab에서는 Cloud에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.

Google Cloud Console의 오른쪽 상단 툴바에 있는 Cloud Shell 아이콘을 클릭합니다.

55efc1aaa7a4d3ad.png

환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 완료되면 다음과 같이 표시됩니다.

7ffe5cbb04455448.png

가상 머신에는 필요한 개발 도구가 모두 들어있습니다. 영구적인 5GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다. 이 Codelab의 모든 작업은 브라우저 내에서 수행할 수 있습니다. 아무것도 설치할 필요가 없습니다.

8. 시작하기 전에

API 사용 설정

Cloud Shell 내에서 프로젝트 ID가 설정되어 있는지 확인합니다.

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=us-central1
echo $project
echo $region

필요한 모든 서비스를 사용 설정합니다.

gcloud services enable compute.googleapis.com

9. 프로듀서 VPC 네트워크 만들기

VPC 네트워크

Cloud Shell에서 다음을 실행합니다.

gcloud compute networks create producer-vpc --subnet-mode custom

서브넷 만들기

PSC 서브넷은 네트워크 주소 변환을 위해 PSC 서비스 연결과 연결됩니다. 프로덕션 사용 사례의 경우 이 서브넷의 크기를 연결된 모든 PSC 엔드포인트의 인바운드 트래픽 양을 지원하도록 적절하게 조정해야 합니다. 자세한 내용은 PSC NAT 서브넷 크기 조정 문서를 참고하세요.

Cloud Shell에서 PSC NAT 서브넷을 만듭니다.

gcloud compute networks subnets create producer-psc-nat-subnet --network producer-vpc --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT

Cloud Shell에서 제작자 전달 규칙 서브넷을 만듭니다.

gcloud compute networks subnets create producer-psc-fr-subnet --network producer-vpc --range 172.16.20.0/28 --region $region --enable-private-ip-google-access

Cloud Shell에서 제작자 VM 서브넷을 만듭니다.

gcloud compute networks subnets create producer-psc-vm-subnet --network producer-vpc --range 172.16.30.0/28 --region $region --enable-private-ip-google-access

Public NAT 게이트웨이 만들기

producer-vm은 Apache를 다운로드하기 위해 인터넷 액세스가 필요하지만 GCE 인스턴스에는 외부 IP가 없습니다. 따라서 Cloud NAT는 패키지 다운로드를 위한 인터넷 이그레스를 제공합니다.

Cloud Shell에서 Cloud Router를 만듭니다.

gcloud compute routers create producer-cloud-router --network producer-vpc --region us-central1

Cloud Shell에서 인터넷 이그레스를 사용 설정하는 Cloud NAT 게이트웨이를 만듭니다.

gcloud compute routers nats create producer-nat-gw --router=producer-cloud-router --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

네트워크 방화벽 정책 및 방화벽 규칙 만들기

Cloud Shell에서 다음을 실행합니다.

gcloud compute network-firewall-policies create producer-vpc-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy producer-vpc-policy --network producer-vpc --name producer-vpc --global-firewall-policy

IAP가 VM 인스턴스에 연결하도록 하려면 다음과 같은 방화벽 규칙을 만드세요.

  • IAP를 사용하여 액세스할 수 있도록 하려는 모든 VM 인스턴스에 적용됩니다.
  • IP 범위 35.235.240.0/20에서 들어오는 인그레스 트래픽을 허용합니다. 이 범위에는 IAP가 TCP 전달에 사용하는 모든 IP 주소가 포함됩니다.

Cloud Shell에서 다음을 실행합니다.

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy producer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

다음 방화벽 규칙은 상태 점검 프로브 범위에서 네트워크의 모든 인스턴스로의 트래픽을 허용합니다. 프로덕션 환경에서는 이 방화벽 규칙을 특정 프로듀서 서비스와 연결된 인스턴스로만 제한해야 합니다.

Cloud Shell에서 다음을 실행합니다.

gcloud compute network-firewall-policies rules create 2000 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic from health check probe range" --direction INGRESS --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 --layer4-configs tcp:80 --global-firewall-policy

다음 방화벽 규칙은 PSC NAT 서브넷 범위에서 네트워크의 모든 인스턴스로의 트래픽을 허용합니다. 프로덕션 환경에서는 이 방화벽 규칙을 특정 프로듀서 서비스와 연결된 인스턴스로만 제한해야 합니다.

Cloud Shell에서 다음을 실행합니다.

gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp

프로듀서 VM 만들기

Cloud Shell에서 producer-vm Apache 웹 서버를 만듭니다.

gcloud compute instances create producer-vm \
    --project=$project \
    --machine-type=e2-micro \
    --image-family debian-12 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=producer-psc-vm-subnet \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to Producer-VM !!' | tee /var/www/html/index.html
      EOF"

Cloud Shell에서 producer-vm 인스턴스 및 상태 확인으로 구성된 비관리형 인스턴스 그룹을 만듭니다.

gcloud compute instance-groups unmanaged create producer-instance-group --zone=us-central1-a

gcloud compute instance-groups unmanaged add-instances producer-instance-group  --zone=us-central1-a --instances=producer-vm

gcloud compute health-checks create http hc-http-80 --port=80

10. 프로듀서 서비스 만들기

부하 분산기 구성요소 만들기

Cloud Shell에서 다음을 실행합니다.

gcloud compute backend-services create producer-backend-svc --load-balancing-scheme=internal --protocol=tcp --region=us-central1 --health-checks=hc-http-80

gcloud compute backend-services add-backend producer-backend-svc --region=us-central1 --instance-group=producer-instance-group --instance-group-zone=us-central1-a

다음 문법에서 백엔드 서비스 producer-backend-svc와 연결된 사전 정의된 IP 주소 172.16.2.3을 사용하여 전달 규칙 (내부 네트워크 부하 분산기)을 만듭니다.

Cloud Shell에서 다음을 실행합니다.

gcloud compute forwarding-rules create producer-fr --region=us-central1 --load-balancing-scheme=internal --network=producer-vpc --subnet=producer-psc-fr-subnet --address=172.16.20.3 --ip-protocol=TCP --ports=all --backend-service=producer-backend-svc --backend-service-region=us-central1

서비스 연결 만들기

Cloud Shell에서 서비스 연결을 만듭니다.

gcloud compute service-attachments create ipv4-producer-svc-attachment --region=$region --producer-forwarding-rule=producer-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet

그런 다음 소비자 환경에서 PSC 엔드포인트를 구성할 프로젝트로 시작하는 selfLink URI에 나열된 서비스 연결을 가져와 메모합니다.

selfLink: projects/<your-project-id>/regions/us-central1/serviceAttachments/ipv4-producer-svc-attachment

Cloud Shell에서 다음을 실행합니다.

gcloud compute service-attachments describe ipv4-producer-svc-attachment --region=$region

예상 출력 예시

user@cloudshell:~ (projectid)$ gcloud compute service-attachments describe ipv4-producer-svc-attachment --region=$region
connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2024-08-26T07:08:01.625-07:00'
description: ''
enableProxyProtocol: false
fingerprint: USOMy1eQKyM=
id: '1401660514263708334'
kind: compute#serviceAttachment
name: ipv4-producer-svc-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet
pscServiceAttachmentId:
  high: '85245007652455400'
  low: '1401660514263708334'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/serviceAttachments/ipv4-producer-svc-attachment
targetService: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/forwardingRules/producer-fr

Cloud 콘솔에서 다음 위치로 이동합니다.

네트워크 서비스 → Private Service Connect → 게시된 서비스

9166d64204ec31c3.png

1b5feeca51b6533e.png

11. 소비자 VPC 네트워크 만들기

VPC 네트워크

Cloud Shell에서 IPv6 ULA가 사용 설정된 소비자 VPC를 만듭니다.

gcloud compute networks create consumer-vpc \
    --subnet-mode=custom \
    --enable-ula-internal-ipv6

Google은 소비자 VPC에 전 세계적으로 고유한 /48 서브넷을 할당합니다. 할당을 보려면 다음을 실행합니다.

Cloud 콘솔에서 다음 위치로 이동합니다.

VPC 네트워크

c847bd7c20e3677d.png

서브넷 만들기

Cloud Shell에서 IPv4 GCE 서브넷을 만듭니다.

gcloud compute networks subnets create consumer-v4-subnet --network consumer-vpc --range=192.168.10.0/28 --region $region --enable-private-ip-google-access

Cloud Shell에서 IPv4 PSC 엔드포인트 서브넷을 만듭니다.

gcloud compute networks subnets create psc-ipv4-endpoint-subnet --network consumer-vpc --range=192.168.11.0/28 --region $region --enable-private-ip-google-access

Cloud Shell에서 이중 스택 GCE 서브넷을 만듭니다.

gcloud compute networks subnets create consumer-dual-stack-subnet --network consumer-vpc --range=192.168.20.0/28 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --region $region --enable-private-ip-google-access

Cloud Shell에서 이중 스택 PSC 엔드포인트 서브넷을 만듭니다.

gcloud compute networks subnets create psc-dual-stack-endpoint-subnet --network consumer-vpc --range=192.168.21.0/28 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --region $region --enable-private-ip-google-access

네트워크 방화벽 정책 및 방화벽 규칙 만들기

Cloud Shell에서 다음을 실행합니다.

gcloud compute network-firewall-policies create consumer-vpc-policy --global

gcloud compute network-firewall-policies associations create --firewall-policy consumer-vpc-policy --network consumer-vpc --name consumer-vpc --global-firewall-policy

gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy consumer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22  --global-firewall-policy

소비자 네트워크에는 IAP 액세스의 SSH만 필요합니다.

12. VM, PSC 엔드포인트 만들기 및 IPv4 연결 테스트

테스트 VM 만들기

Cloud Shell에서 IPv4 서브넷에 IPv4 GCE 인스턴스를 만듭니다.

gcloud compute instances create consumer-vm-ipv4 --zone=us-central1-a --subnet=consumer-v4-subnet --no-address

PSC 엔드포인트 고정 IP 만들기

Cloud Shell에서 PSC 엔드포인트의 고정 IP 주소를 만듭니다.

gcloud compute addresses create psc-ipv4-endpoint-ip --region=$region --subnet=psc-ipv4-endpoint-subnet --addresses 192.168.11.13

IPv4 PSC 엔드포인트 만들기

Cloud Shell에서 서비스 연결을 만들 때 캡처한 URI로 SERVICE ATTACHMENT URI를 업데이트하여 PSC 엔드포인트를 만듭니다.

gcloud compute forwarding-rules create psc-ipv4-endpoint --region=$region --network=consumer-vpc --address=psc-ipv4-endpoint-ip --target-service-attachment=[SERVICE ATTACHMENT URI]

PSC 엔드포인트 유효성 검사

생산자가 PSC 엔드포인트를 수락했는지 확인해 보겠습니다. Cloud 콘솔에서 다음 위치로 이동합니다.

네트워크 서비스 → Private Service Connect → 연결된 엔드포인트

ac858b2db226e58a.png

연결 테스트

Cloud Shell에서 GCE 인스턴스 consumer-vm-ipv4에 ssh로 연결합니다.

gcloud compute ssh --zone us-central1-a "consumer-vm-ipv4" --tunnel-through-iap --project $project

이제 GCE 인스턴스에 로그인했으므로 psc 엔드포인트(psc-ipv4-endpoint 192.168.11.13)에 curl을 실행합니다.

consumer-vm-ipv4 GCE 인스턴스 내에서 curl을 실행합니다.

curl 192.168.11.13

예상 출력:

user@consumer-vm-ipv4:~$ curl 192.168.11.13
Welcome to Producer-VM !!

consumer-vm-ipv4 GCE 인스턴스 내에서 종료하여 인스턴스에서 로그아웃하고 Cloud Shell로 돌아갑니다.

exit

예상 출력:

user@consumer-vm-ipv4:~$ exit
logout
Connection to compute.6833450446005281720 closed.

13. VM, PSC 엔드포인트 만들기 및 이중 스택 연결 테스트

테스트용 이중 스택 VM 만들기

Cloud Shell에서 이중 스택 서브넷에 이중 스택 GCE 인스턴스를 만듭니다.

gcloud compute instances create consumer-vm-ipv4-ipv6 --zone=us-central1-a --subnet=consumer-dual-stack-subnet --no-address --stack-type=IPV4_IPV6

PSC 엔드포인트 고정 IPv6 주소 만들기

Cloud Shell에서 PSC 엔드포인트의 고정 IPv6 주소를 만듭니다.

gcloud compute addresses create psc-ipv6-endpoint-ip --region=$region --subnet=psc-dual-stack-endpoint-subnet --ip-version=IPV6

PSC 엔드포인트 고정 IPv6 주소 가져오기

Cloud Shell에서 Producer 서비스에 연결하는 데 사용할 PSC IPv6 주소를 가져옵니다.

gcloud compute addresses describe psc-ipv6-endpoint-ip --region=us-central1 | grep -i address:

출력 예시:

user@cloudshell$ gcloud compute addresses describe psc-ipv6-endpoint-ip --region=us-central1 | grep -i address:
address: 'fd20:2eb:7252:2::'

IPv6 PSC 엔드포인트 만들기

Cloud Shell에서 서비스 연결을 만들 때 캡처한 URI로 SERVICE ATTACHMENT URI를 업데이트하여 PSC 엔드포인트를 만듭니다.

gcloud compute forwarding-rules create psc-ipv6-endpoint --region=$region --network=consumer-vpc --address=psc-ipv6-endpoint-ip --target-service-attachment=[SERVICE ATTACHMENT URI]

PSC 엔드포인트 유효성 검사

생산자가 PSC 엔드포인트를 수락했는지 확인해 보겠습니다. Cloud 콘솔에서 다음 위치로 이동합니다.

네트워크 서비스 → Private Service Connect → 연결된 엔드포인트

957b74e89f3ad837.png

연결 테스트

Cloud Shell에서 이중 스택 GCE 인스턴스 consumer-vm-ipv4-ipv6에 ssh로 연결하고 PSC IPv6 소비자 엔드포인트 psc-ipv6-endpoint에 curl을 실행하여 프로듀서 서비스에 대한 액세스 권한을 확인합니다.

gcloud compute ssh --zone us-central1-a "consumer-vm-ipv4-ipv6" --tunnel-through-iap --project $project

이제 이중 스택 GCE 인스턴스에 로그인했으므로 이전 단계에서 확인한 IPv6 주소를 사용하여 psc 엔드포인트 psc-dual-stack-endpoint에 curl을 실행합니다.

consumer-vm-ipv4-ipv6 GCE 인스턴스 내에서 PSC 엔드포인트 고정 IPv6 가져오기 단계에서 식별된 IPv6 PSC 엔드포인트로 curl을 실행합니다.

curl -6 http://[insert-your-ipv6-psc-endpoint]

예상 출력:

user@consumer-vm-ipv4-ipv6$ curl -6 http://[fd20:2eb:7252:2::]
Welcome to Producer-VM !!

consumer-vm-ipv4-ipv6 GCE 인스턴스 내에서 종료를 실행하여 인스턴스에서 로그아웃하고 Cloud Shell로 돌아갑니다.

exit

예상 출력:

user@consumer-vm-ipv4-ipv6:~$ exit
logout
Connection to compute.6162185519072639197 closed.

14. 정리 단계

단일 Cloud Shell 터미널에서 실험실 구성요소 삭제

gcloud compute service-attachments delete ipv4-producer-svc-attachment --region=us-central1 -q

gcloud compute forwarding-rules delete psc-ipv6-endpoint psc-ipv4-endpoint --region=us-central1 -q

gcloud compute instances delete consumer-vm-ipv4 consumer-vm-ipv4-ipv6 --zone=us-central1-a -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy=consumer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy  --name=consumer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q

gcloud compute addresses delete psc-ipv4-endpoint-ip psc-ipv6-endpoint-ip --region=us-central1 -q

gcloud compute networks subnets delete consumer-v4-subnet psc-ipv4-endpoint-subnet consumer-dual-stack-subnet psc-dual-stack-endpoint-subnet --region=us-central1 -q

gcloud compute networks delete consumer-vpc -q

gcloud compute forwarding-rules delete producer-fr --region=us-central1 -q

gcloud compute backend-services delete producer-backend-svc --region=us-central1 -q

gcloud compute health-checks delete hc-http-80 -q

gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy  --name=producer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete producer-vpc-policy --global -q

gcloud compute instance-groups unmanaged delete producer-instance-group --zone=us-central1-a -q

gcloud compute instances delete producer-vm --zone=us-central1-a -q

gcloud compute routers nats delete producer-nat-gw --router=producer-cloud-router --router-region=us-central1 -q

gcloud compute routers delete producer-cloud-router --region=us-central1 -q

gcloud compute networks subnets delete producer-psc-fr-subnet  producer-psc-vm-subnet producer-psc-nat-subnet --region=us-central1 -q

gcloud compute networks delete producer-vpc -q

15. 축하합니다

Private Service Connect 64를 구성하고 유효성을 검사했습니다.

프로듀서 인프라를 만들고 프로듀서 서비스에 연결할 수 있는 소비자 VPC 네트워크에서 IPv4 및 IPv6 소비자 엔드포인트를 만드는 방법을 알아봤습니다.

코스모퍼프는 Codelab이 멋지다고 생각합니다.

c911c127bffdee57.jpeg

다음 단계

다음 Codelab을 확인하세요.

추가 리소스 및 동영상

참조 문서