피어링에서 Private Service Connect로 서비스 서브넷 마이그레이션

이 문서에서는 서비스 프로듀서가 피어링 기반 서비스를 Private Service Connect로 마이그레이션하고 서비스에 액세스하는 데 사용되는 IP 주소를 보존하는 방법을 설명합니다. 이 마이그레이션 프로세스에서는 특정 서브넷에 연결된 모든 리소스를 동시에 마이그레이션해야 합니다.

마이그레이션 프로세스는 서비스 프로듀서가 시작하지만 프로듀서와 소비자 모두가 완료하는 태스크가 포함됩니다. Google 관리 서비스에서는 서비스 에이전트를 사용하여 소비자 대신 태스크를 수행할 수 있습니다. 마이그레이션에는 프로듀서와 소비자 모두의 다운타임과 가격 변경이 수반됩니다.

각 서비스 프로듀서는 Private Service Connect로 마이그레이션할지 여부와 시기를 결정합니다. 서비스 프로듀서가 VPC 네트워크 피어링에서 Private Service Connect로 마이그레이션하는지 알아보려면 서비스 문서를 확인하거나 서비스 프로듀서에게 문의하세요.

시작하기 전에

Private Service Connect를 사용하여 서비스 배포

새 VPC 네트워크를 만들고 네트워크에 서비스 리소스를 배포한 후 Private Service Connect를 통해 서비스를 게시합니다.

서비스의 부하 분산기를 만들 때 이전에 부하 분산기에서 사용한 IP 주소와 다른 IP 주소를 사용합니다. 나중에 엔드포인트를 만들 때 원래 IP 주소가 필요합니다.

서비스를 게시할 때 서비스 연결을 만듭니다. 나중에 엔드포인트를 만들 때도 서비스 연결 URI가 필요합니다.

피어링 기반 서비스 종료

피어링 기반 서비스를 종료하려면 프로듀서 서브넷을 삭제하기 전에 서비스의 IP 주소 범위를 예약할 내부 범위를 만들어야 합니다.

내부 범위 만들기

프로듀서 서브넷을 삭제하기 전에 서브넷의 IP 주소 범위가 프로듀서 네트워크 또는 소비자 네트워크의 다른 서브넷에서 재사용되지 않도록 내부 범위를 만듭니다.

이 내부 범위에 대한 자세한 내용은 마이그레이션을 위한 내부 범위를 참조하세요.

gcloud

internal-ranges create 명령어를 사용합니다.

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --project=PRODUCER_PROJECT_ID \
    --ip-cidr-range=CIDR_RANGE \
    --network=PRODUCER_NETWORK_NAME \
    --usage=FOR_MIGRATION \
    --migration-source=PRODUCER_SUBNET_URI \
    --migration-target=CONSUMER_SUBNET_URI

다음을 바꿉니다.

  • RANGE_NAME: 새 내부 범위의 이름입니다.
  • PRODUCER_PROJECT_ID: 프로듀서 프로젝트의 ID입니다.
  • CIDR_RANGE: 새 내부 범위에 할당할 CIDR 범위입니다.
  • PRODUCER_NETWORK_NAME: 내부 범위를 만들 네트워크의 이름입니다.
  • PRODUCER_SUBNET_URI: 서비스의 부하 분산기가 포함된 프로듀서 서브넷의 URI입니다.
  • CONSUMER_SUBNET_URI: 의도한 소비자 서브넷의 URI입니다. 이 명령어를 실행할 때 이 서브넷은 존재하지 않습니다.

피어링 프로듀서 서브넷 삭제

서브넷을 삭제하려면 먼저 프로듀서 서브넷의 모든 리소스(예: 가상 머신(VM) 인스턴스, 전달 규칙, 인스턴스 그룹, 상태 점검, 예약된 IP 주소)를 삭제해야 합니다. 리소스를 삭제한 후 서브넷을 삭제할 수 있습니다.

소비자 리소스 만들기

서비스 소비자와 협력하여 VPC 네트워크에 다음 리소스를 만듭니다. 리소스는 수동으로 만들거나 Google 관리 서비스의 경우 서비스 에이전트를 통해 자동화할 수 있습니다.

피어 마이그레이션 서브넷 만들기

소비자의 VPC 네트워크에 피어 마이그레이션 서브넷을 만들어 Private Service Connect 엔드포인트의 IP 주소를 제공합니다. 서브넷의 용도는 PEER_MIGRATION이며, 이로 인해 서브넷이 Private Service Connect 엔드포인트 이외의 리소스에 사용되지 않습니다.

자세한 내용은 피어 마이그레이션 서브넷을 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.

  3. 서브넷 탭을 클릭합니다.

  4. 서브넷 추가를 클릭합니다. 표시되는 패널에서 다음을 설정합니다.

    1. 이름을 입력합니다.
    2. 리전을 선택하세요.
    3. 용도 섹션에서 피어 마이그레이션을 선택합니다.
    4. IP 스택 유형IPv4(단일 스택)를 선택합니다.
    5. 새 서브넷에 할당할 IPv4 주소 범위를 입력합니다. 이 범위는 내부 범위의 CIDR 범위와 일치해야 합니다.

      RFC 1918 주소가 아닌 범위를 선택하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.

  5. 추가를 클릭합니다.

gcloud

networks subnets create 명령어를 사용합니다.

gcloud compute networks subnets create CONSUMER_SUBNET \
    --purpose=PEER_MIGRATION \
    --project=CONSUMER_PROJECT \
    --network=CONSUMER_NETWORK \
    --range=CIDR_RANGE \
    --region=REGION

다음을 바꿉니다.

  • CONSUMER_SUBNET: 소비자 서브넷의 이름입니다.
  • CONSUMER_PROJECT: 소비자 프로젝트의 ID입니다.
  • CONSUMER_NETWORK: 소비자 네트워크의 이름입니다.
  • CIDR_RANGE: 새 서브넷에 할당할 CIDR 범위입니다. 이 범위는 내부 범위의 CIDR 범위와 일치해야 합니다.
  • REGION: 서브넷을 만들 리전입니다.

Private Service Connect 엔드포인트 만들기

소비자의 피어 마이그레이션 서브넷에 Private Service Connect 엔드포인트를 만듭니다. 소비자가 엔드포인트를 만들려면 서비스 연결 URI가 필요합니다.

콘솔

  1. Google Cloud 콘솔에서 Private Service Connect 페이지로 이동합니다.

    Private Service Connect로 이동

  2. 연결된 엔드포인트 탭을 클릭합니다.

  3. 엔드포인트 연결을 클릭합니다.

  4. 대상에서 게시된 서비스를 선택합니다.

  5. 대상 서비스에서 연결할 서비스 연결 URI를 입력합니다.

    서비스 연결 URI는 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME 형식입니다.

  6. 엔드포인트 이름에서 엔드포인트에 사용할 이름을 입력합니다.

  7. 네트워크에서 엔드포인트의 소비자 VPC 네트워크를 선택합니다.

  8. 서브네트워크에서 소비자 피어 마이그레이션 서브넷을 선택합니다.

  9. 엔드포인트의 IP 주소를 예약하려면 다음 단계를 따르세요.

    1. IP 주소 드롭다운 메뉴를 클릭하고 IP 주소 만들기를 선택합니다.
    2. IP 주소의 이름과 선택적인 설명을 입력합니다.
    3. 고정 IP 주소를 클릭하고 직접 선택을 선택합니다.
    4. 예약할 커스텀 IP 주소를 입력합니다. 이 IP 주소는 서비스의 부하 분산기에서 사용된 IP 주소와 동일해야 합니다.
    5. 예약을 클릭합니다.
  10. 엔드포인트 추가를 클릭합니다.

gcloud

  1. 엔드포인트의 내부 IP 주소를 예약합니다.

    addresses create 명령어를 사용합니다.

    gcloud compute addresses create ENDPOINT_ADDRESS_NAME \
        --project=CONSUMER_PROJECT \
        --region=REGION \
        --address=ENDPOINT_ADDRESS \
        --subnet=CONSUMER_SUBNET
    

    다음을 바꿉니다.

    • ENDPOINT_ADDRESS_NAME: IP 주소 리소스의 이름입니다.
    • CONSUMER_PROJECT: 소비자 프로젝트의 ID입니다.
    • REGION: IP 주소를 만들 리전입니다.
    • ENDPOINT_ADDRESS: IP 주소 리소스에 할당할 IP 주소입니다. 이 주소는 서비스의 부하 분산기에서 사용된 IP 주소와 동일해야 합니다.
    • CONSUMER_SUBNET: 소비자 피어 마이그레이션 서브넷의 이름입니다.
  2. 엔드포인트를 만듭니다.

    forwarding-rules create 명령어를 사용합니다.

    gcloud compute forwarding-rules create ENDPOINT \
        --region=REGION \
        --network=CONSUMER_NETWORK \
        --address=ENDPOINT_ADDRESS \
        --target-service-attachment=SERVICE_ATTACHMENT_URI
    

    다음을 바꿉니다.

    • ENDPOINT: 엔드포인트의 이름입니다.
    • REGION: 엔드포인트를 만들 리전입니다.
    • CONSUMER_NETWORK: 소비자 네트워크의 이름입니다.
    • ENDPOINT_ADDRESS: 엔드포인트에 할당할 예약된 IP 주소입니다. IP 주소를 직접 지정하거나 IP 주소 리소스 이름을 사용할 수 있습니다.
    • SERVICE_ATTACHMENT_URI: 서비스 연결의 URI입니다.

프로듀서의 내부 범위 삭제

소비자 마이그레이션 서브넷이 생성된 후에는 내부 범위가 더 이상 필요하지 않으며 삭제할 수 있습니다.

gcloud

internal-ranges delete 명령어를 사용합니다.

gcloud network-connectivity internal-ranges delete RANGE_NAME \
    --project=PRODUCER_PROJECT_ID

다음을 바꿉니다.

  • RANGE_NAME: 내부 범위의 이름입니다.
  • PRODUCER_PROJECT_ID: 프로듀서 프로젝트의 ID입니다.

엔드포인트가 작동하는지 확인

소비자에게 엔드포인트를 통해 서비스에 연결할 수 있는지 확인해 달라고 요청합니다.

엔드포인트가 작동하지 않고 문제 해결 단계로 문제를 해결할 수 없는 경우 마이그레이션 작업을 롤백할 수 있습니다.

마이그레이션 완료

엔드포인트가 예상대로 작동하면 소비자의 피어 마이그레이션 서브넷을 일반 서브넷으로 업데이트하여 마이그레이션을 완료할 수 있습니다.

소비자의 피어 마이그레이션 서브넷 업데이트

소비자의 피어 마이그레이션 서브넷을 일반 서브넷으로 업데이트하면 소비자가 모든 유형의 리소스에 서브넷을 사용할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.

  3. 서브넷 탭을 클릭합니다.

  4. 업데이트하려는 서브넷의 이름을 클릭합니다.

  5. 수정을 클릭합니다.

  6. 용도 섹션에서 비공개를 선택합니다.

  7. 저장을 클릭합니다.

gcloud

networks subnets create 명령어를 사용합니다.

gcloud compute networks subnets update CONSUMER_SUBNET \
    --purpose=PRIVATE \
    --region=REGION \
    --project=CONSUMER_PROJECT

다음을 바꿉니다.

  • CONSUMER_SUBNET: 소비자 서브넷의 이름입니다.
  • REGION: 소비자 서브넷의 리전입니다.
  • CONSUMER_PROJECT: 소비자 프로젝트의 ID입니다.

피어링 연결 삭제

피어링 연결이 더 이상 필요하지 않으면 소비자와 프로듀서 모두의 피어링 구성을 삭제합니다.

마이그레이션 롤백

소비자 서브넷이 아직 일반 서브넷으로 업데이트되지 않은 경우에만 마이그레이션을 롤백할 수 있습니다. 롤백하면 VPC 네트워크 피어링을 통해 서비스를 사용할 수 있습니다.

  1. 여전히 존재하는 경우 프로듀서 프로젝트에서 내부 범위를 삭제합니다.
  2. 소비자 프로젝트에서 내부 범위를 만듭니다. 롤백할 때 마이그레이션 소스는 소비자 서브넷이고 마이그레이션 대상은 프로듀서 서브넷입니다.

    gcloud network-connectivity internal-ranges create RANGE_NAME \
        --project=CONSUMER_PROJECT \
        --ip-cidr-range=CIDR_RANGE \
        --network=CONSUMER_NETWORK \
        --usage=FOR_MIGRATION \
        --migration-source=CONSUMER_SUBNET_URI \
        --migration-target=PRODUCER_SUBNET_URI
    
  3. 소비자의 Private Service Connect 엔드포인트를 삭제합니다.

  4. 소비자의 IP 주소 리소스를 삭제합니다.

  5. 동일한 이름과 CIDR 범위를 사용하여 프로듀서의 서브넷을 다시 만듭니다. 서브넷 용도를 PRIVATE로 설정합니다.

  6. 프로듀서의 서브넷에서 서비스를 제공하는 데 필요한 리소스를 다시 만듭니다.

  7. 소비자는 피어링 연결을 통해 서비스에 액세스할 수 있는지 확인합니다.