비공개 서비스 액세스 구성

비공개 서비스 액세스는 VPC 네트워크와 Google 또는 타사 소유 네트워크 간의 비공개 연결입니다. Google 또는 타사 등 서비스 제공 법인은 서비스 제작자라고도 합니다. 비공개 연결을 사용하면 VPC 네트워크의 VM 인스턴스와 액세스 대상 서비스가 내부(RFC 1918) IP 주소를 사용하여 배타적으로 통신할 수 있습니다. VM 인스턴스는 인터넷 액세스나 외부 IP 주소 없이도 비공개 서비스 액세스를 통해 서비스에 연결할 수 있습니다.

비공개 서비스 액세스 및 다른 비공개 액세스 옵션에 대해 자세히 알아보려면 서비스 비공개 액세스 옵션을 참조하세요.

상위 수준에서 비공개 서비스 액세스를 사용하려면 VPC 네트워크에서 IP 주소 범위(CIDR 블록)를 할당한 다음 서비스 제작자에 대한 비공개 연결을 만들어야 합니다.

시작하기 전에

비공개 연결을 설정하려면 먼저 다음 작업을 완료해야 합니다.

  • 서비스가 비공개 서비스 액세스를 통해 사용 가능한지 확인합니다.
  • GCP 프로젝트를 만들거나 기존 프로젝트를 선택합니다. GCP 프로젝트를 만드는 방법은 프로젝트 만들기 및 관리를 참조하세요.
  • 프로젝트에서 Service Networking API를 활성화합니다. 비공개 연결을 만들려면 이 API가 필요합니다.
  • 서비스 제작자의 네트워크에 연결하는 데 사용할 기존 VPC 네트워크가 있어야 합니다. VM 인스턴스는 이 VPC 네트워크를 사용하여 비공개 연결을 통해 서비스에 연결해야 합니다.
  • 이 가이드의 gcloud 명령줄 예를 실행하려면 Cloud SDK를 설치합니다.

권한

프로젝트 소유자 및 편집자와 네트워크 관리자 역할을 갖는 IAM 구성원은 할당된 IP 주소 범위를 만들고 비공개 연결을 관리할 수 있습니다.

역할에 대한 자세한 내용은 VPC IAM 역할 문서를 참조하세요.

공유 VPC 시나리오

공유 VPC를 사용하는 경우 호스트 프로젝트에서 할당된 IP 범위와 비공개 연결을 만듭니다. 이러한 작업은 일반적으로 호스트 프로젝트의 네트워크 관리자가 수행해야 합니다. 호스트 프로젝트가 설정되면 서비스 프로젝트의 VM 인스턴스가 비공개 연결을 사용할 수 있습니다.

할당량 및 한도

비공개 연결은 VPC 피어링 연결로 구현되므로 VPC 네트워크 피어링에 적용되는 할당량 및 한도가 비공개 서비스 액세스에도 적용됩니다.

할당된 IP 주소 범위 만들기

비공개 연결을 생성하려면 먼저 서비스 제작자의 VPC 네트워크에서 사용할 IP 주소 범위를 할당해야 합니다. 이렇게 하면 VPC 네트워크와 서비스 제작자 네트워크 간에 IP 주소가 충돌하지 않게 됩니다. 서비스 제작자마다 할당된 범위를 만듭니다.

VPC 네트워크에서 주소 범위를 할당하면 서브넷(기본 및 보조 범위)과 커스텀 정적 경로의 대상에는 해당 범위를 사용할 수 없습니다.

IP 주소 범위 크기

비공개 서비스 액세스 범위(확대하려면 클릭)

서비스 제작자 측 연결에서 서브넷을 만들면 할당 가능한 범위가 서브넷의 IP 주소 범위로 선택됩니다.

각 서비스 제작자는 최소 IP 주소 범위 크기가 필요합니다. Google의 경우 최소 크기는 단일 /24 블록(주소 256개)이지만 권장 크기는 /16 블록(주소 65,536개)입니다. 크기 선택은 사용하는 서비스 및 리전 수와 같은 요소에 따라 달라집니다. 지연 시간을 줄이기 위해서나 중복 시나리오를 위해 여러 리전에 단일 서비스를 사용할 수 있습니다.

예를 들어 서로 다른 3곳의 리전에서 서비스 2개를 사용하는 경우 서비스 제작자는 각각 /24 블록이 있는 서브넷 6개를 만들어야 합니다. 서비스나 리전을 추가로 사용하려는 경우 /20 할당이 빠르게 소진될 수 있습니다. 인접한 /16 블록이 없는 경우 작은 할당으로 시작하고 나중에 IP 주소가 더 필요하면 할당을 새로 추가할 수 있습니다.

서비스 제작자의 서브넷 정보

비공개 연결을 설정하고 비공개 IP 주소가 있는 리소스를 만들면 서비스는 리소스를 프로비저닝할 서브넷을 만들고 할당된 범위에서 사용 가능한 IP 주소 범위를 선택합니다. 서비스 제작자의 서브넷 IP 주소 범위를 선택하거나 수정할 수 없습니다. 비공개 연결 또는 할당된 IP 주소 범위를 삭제하더라도 서브넷의 모든 리소스를 삭제할 때까지 서브넷은 유지됩니다.

추가 리소스를 프로비저닝할 때 서비스는 이전에 만든 기존 리전 서브넷에 이 리소스를 프로비저닝하고 서브넷이 가득 차면 기존 리전에 새 서브넷을 만듭니다.

고려사항

IP 주소 범위를 할당하기 전에 다음 제약조건을 고려하세요.

  • 기존 할당 범위, 서브넷 또는 커스텀 정적 경로와 겹치지 않는 범위를 선택해야 합니다. 두 범위가 겹쳐서는 안 됩니다.
  • 자동 모드 VPC 네트워크를 사용하는 경우 10.128.0.0/9와 일치하거나 겹치는 할당 범위를 만들 수 없습니다. 이 범위는 자동으로 생성되는 서브넷에 사용됩니다.
  • 현재와 미래의 수요에 맞게 충분히 큰 CIDR 블록을 선택해야 합니다. 이후에 범위 크기가 충분하지 않다고 판단되는 경우 가능하면 범위를 확장합니다. 단일 서비스 제작자에 할당 범위 여러 개를 할당할 수 있지만 Google에서는 각 범위의 크기(넷마스크)가 아니라 사용자가 할당할 수 있는 IP 주소 범위의 수에 할당량을 적용합니다.
  • 동일한 할당 범위를 여러 서비스 제작자에 재사용하면 안 됩니다. 재사용이 가능하긴 하지만 이 경우 IP 주소가 겹칠 수 있습니다. 각 서비스 제작자는 본인의 네트워크만 볼 수 있으며 다른 서비스 제작자가 사용하는 IP 주소를 알 수 없습니다.
  • 할당을 만들 때 할당 범위에 CIDR 블록은 하나만 할당할 수 있습니다. IP 주소 범위를 확장해야 하는 경우 할당에 블록을 더 추가할 수는 없습니다. 대신 또 다른 할당을 만들거나, 새 범위와 기존 범위를 포함하는 더 큰 블록을 사용하여 기존 할당을 다시 만들 수 있습니다.
  • 사용자가 Google 대신 Cloud SQL 등을 통해 할당을 직접 만드는 경우 동일한 이름 지정 규칙을 사용하여 다른 사용자 또는 Google 서비스에 해당 할당이 Google에 이미 존재함을 알릴 수 있습니다. Google 서비스가 사용자 대신 범위를 할당하는 경우 google-managed-services-[your network name] 형식을 사용하여 할당 이름을 지정합니다. 이 할당이 있으면 Google 서비스는 할당을 새로 만들지 않고 기존 할당을 사용합니다.

절차

다음 단계에서는 할당된 IP 주소 범위를 만드는 방법을 설명합니다.

콘솔

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 서비스 제작자에 연결할 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 할당된 IP 범위 탭을 선택합니다.
  5. 할당된 IP 범위를 클릭합니다.
  6. 할당된 범위의 이름설명을 입력합니다.
  7. 할당의 IP 범위를 지정합니다.

    • IP 주소 범위를 지정하려면 커스텀을 선택한 다음 CIDR 블록(예: 192.168.0.0/16)을 입력합니다.
    • 프리픽스 길이를 지정하고 Google에서 사용 가능한 범위를 자동으로 선택하도록 하려면 자동을 선택한 다음 프리픽스 길이(예: 16)를 입력합니다.
  8. 할당을 클릭하여 할당된 범위를 만듭니다.

gcloud

VPC 네트워크에 할당 범위를 만듭니다.

  • 주소 범위와 프리픽스 길이(서브넷 마스크)를 지정하려면 addressesprefix-length 플래그를 사용합니다. 예를 들어 CIDR 블록 192.168.0.0/16을 할당하려면 주소로 192.168.0.0을 지정하고 프리픽스 길이로 16을 지정합니다.

    gcloud compute addresses create [RESERVED_RANGE_NAME] \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description=[DESCRIPTION] \
        --network=[VPC_NETWORK]
    
  • 프리픽스 길이(서브넷 마스크)만 지정하려면 prefix-length 플래그만 사용합니다. 주소 범위를 생략하면 VPC 네트워크에서 사용되지 않는 주소 범위를 GCP가 자동으로 선택합니다. 다음 예에서는 프리픽스 길이가 16비트인 사용되지 않는 IP 주소 범위를 선택합니다.

    gcloud compute addresses create [RESERVED_RANGE_NAME] \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description=[DESCRIPTION] \
        --network=[VPC_NETWORK]
    

다음 자리표시자를 관련 값으로 바꿉니다.

  • [RESERVED_RANGE_NAME] - 할당 범위의 이름입니다(예: my-allocated-range).
  • [DESCRIPTION] - 범위에 대한 설명입니다(예: allocated for my-service).
  • [VPC_NETWORK] - VPC 네트워크의 이름입니다(예: my-vpc-network).

다음 예에서는 my-network VPC 네트워크의 VM 인스턴스가 비공개 서비스 액세스를 사용하여 이를 지원하는 Google 서비스에 연결할 수 있도록 Google에 대한 비공개 연결을 만듭니다.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network \
    --project=my-project

비공개 연결 만들기

할당 범위를 만든 후에는 서비스 제작자에 대한 비공개 연결을 만들 수 있습니다. 비공개 연결은 VPC 네트워크와 서비스 제작자의 네트워크 사이에 VPC 네트워크 피어링 연결을 설정합니다.

비공개 연결은 VPC 네트워크와 서비스 제작자 간의 일대일 관계입니다. 단일 서비스 제작자가 여러 서비스를 제공하는 경우 해당 제작자의 모든 서비스에 대해 하나의 비공개 연결만 있으면 됩니다.

여러 서비스 제작자에 연결하는 경우 서비스 제작자마다 고유한 할당을 사용합니다. 이렇게 하면 각 서비스 제작자의 경로 및 방화벽 규칙 같은 네트워크 설정을 관리하는 데 유용합니다.

Console

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 서비스 제작자에 연결할 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 대한 비공개 연결 탭을 선택합니다.
  5. 연결 만들기를 클릭하여 네트워크와 서비스 제작자 간에 비공개 연결을 만듭니다.
  6. 지정된 할당으로는 다른 서비스 제작자가 사용하지 않는 하나 이상의 할당된 기존 범위를 선택합니다.
  7. 연결을 클릭하여 연결을 만듭니다.

gcloud

  1. 비공개 연결을 만듭니다.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=[RESERVED_RANGE_NAME] \
        --network=[VPC_NETWORK] \
        --project=[PROJECT_ID]
    
    • [RESERVED_RANGE_NAME]은 하나 이상의 할당 범위 이름입니다.
    • [VPC_NETWORK]는 VPC 네트워크의 이름입니다.
    • [PROJECT_ID]는 VPC 네트워크가 포함된 프로젝트의 ID입니다.

    이 명령어는 장기 실행 작업을 시작하고 작업 이름을 반환합니다.

  2. 작업이 성공했는지 확인합니다.

    gcloud services vpc-peerings operations describe \
        --name=[OPERATION_NAME]
    

    [OPERATION_NAME]을 이전 단계에서 반환된 작업 이름으로 바꿉니다.

비공개 연결을 만들 때 할당 범위를 2개 이상 지정할 수 있습니다. 예를 들어 할당 범위 하나가 소진된 경우 할당 범위를 추가로 지정할 수 있습니다. 서비스는 제공된 모든 범위의 IP 주소를 지정된 순서대로 사용합니다.

비공개 연결 목록 표시

비공개 연결을 만든 후에는 비공개 연결 목록을 표시하여 해당 연결이 존재하는지 확인할 수 있습니다. 이 목록에는 각 연결과 관련된 할당 범위의 목록도 표시됩니다. 예를 들어 연결에 지정한 할당 범위를 잊은 경우 이 목록에서 할당 범위를 확인합니다.

Console

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 연결이 포함된 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 대한 비공개 연결 탭을 선택하여 네트워크의 모든 비공개 연결을 표시합니다.

gcloud

VPC 네트워크의 비공개 연결 목록을 표시합니다.

gcloud services vpc-peerings list \
    --network=[VPC_NETWORK] \
    --project=[PROJECT_ID]

[VPC_NETWORK][PROJECT_ID]를 각각 VPC 네트워크의 이름과 프로젝트 ID로 바꿉니다.

비공개 연결 수정

기존 비공개 연결의 경우 트래픽을 중단하지 않고 할당된 IP 주소 범위를 추가하거나 삭제할 수 있습니다. 예를 들어 확장할 때 기존 범위가 거의 소진된 경우 할당 범위를 추가할 수 있습니다.

Console

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 연결이 포함된 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 대한 비공개 연결 탭을 선택하여 네트워크의 모든 비공개 연결을 표시합니다.
  5. 목록에서 연결 이름을 클릭합니다.
  6. 지정된 할당 풀다운 메뉴에서 할당하려는 범위를 선택합니다. Google Cloud Platform Console을 사용하여 범위를 삭제할 수 없습니다. 범위를 삭제하려면 gcloud 안내를 참조하세요.
  7. 확인을 클릭합니다.

gcloud

기존 비공개 연결에 지정된 할당 IP 주소 범위를 추가하거나 삭제합니다.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=[RESERVED_RANGE_NAME] \
    --network=[VPC_NETWORK] \
    --project=[PROJECT_ID]

[RESERVED_RANGE_NAME]을 비공개 연결에 지정할 하나 이상의 할당 범위 이름으로 바꾸고 [VPC_NETWORK][PROJECT_ID]를 VPC 네트워크 이름 및 네트워크의 프로젝트 ID로 바꿉니다. 지정한 목록이 새 범위 모음이 됩니다. 기존 범위 중 여기에 포함되지 않는 범위는 삭제됩니다.

비공개 연결 삭제

비공개 연결을 삭제하려면 해당 VPC 피어링 연결을 삭제해야 합니다. 그러면 VPC 네트워크는 서비스 제작자의 VPC 네트워크에서 연결이 해제되고 두 네트워크의 기존 리소스는 유지되지만 비공개 서비스에 액세스하지 못합니다. 다시 비공개 연결을 만들어 연결을 다시 설정할 수 있습니다.

Console

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 삭제할 연결이 포함된 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 대한 비공개 연결 탭을 선택합니다.
  5. 삭제할 비공개 연결을 선택합니다.
  6. 삭제를 클릭하여 삭제합니다.
  7. 한 번 더 삭제를 클릭하여 삭제를 확인합니다.

gcloud

비공개 연결의 VPC 네트워크 피어링 연결을 삭제합니다.

gcloud compute networks peerings delete [CONNECTION_NAME] \
    --network [VPC_NETWORK]

[CONNECTION_NAME][VPC_NETWORK]를 비공개 연결 및 VPC 네트워크의 이름으로 바꿉니다.

할당 삭제

할당된 IP 주소 범위를 삭제하기 전에 이 주소 범위를 사용하는 비공개 연결이 없는지 확인합니다. 기존 비공개 연결을 삭제 또는 수정하여 할당된 범위의 연결을 해제할 수 있습니다. 그렇지 않으면 기존 연결은 활성 상태를 유지하지만 VPC가 서비스 제작자의 네트워크와 겹치는 IP 주소를 사용하는 것을 방지할 수 없습니다. 또한 선택할 수 있는 할당된 IP 주소 범위가 없으므로 서비스에서 새 서브넷을 만들 수 없습니다.

Console

  1. Google Cloud Platform Console의 VPC 네트워크 페이지로 이동합니다.
    VPC 네트워크 페이지로 이동
  2. 삭제할 할당이 포함된 VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 비공개 서비스 연결 탭에서 서비스에 할당된 IP 범위 탭을 선택합니다.
  5. 삭제할 할당을 선택합니다.
  6. 해제를 클릭하여 할당된 IP 주소 범위를 네트워크의 사용할 수 있는 내부 IP 주소 풀로 반환합니다.

    할당된 IP 주소 범위가 기존 연결에 계속 지정되어 있는 경우 할당을 해제하기 전에 추가 확인을 입력해야 합니다.

  7. 한 번 더 해제를 클릭하여 삭제를 확인합니다.

gcloud

할당 이름을 지정하여 할당을 삭제합니다.

gcloud compute addresses delete [NAME] \
    --global

문제해결

할당 범위 중 현재 사용량은 얼마나 되나요?

서비스 제작자와의 비공개 연결을 만들 때는 해당 서비스 제작자가 사용할 IP 주소 범위를 할당합니다. 한 서비스 제작자의 서비스를 여러 개 사용하는 경우에는 각 서비스가 할당된 범위 중 상당 부분의 IP 주소를 예약합니다. 어떤 서비스가 어떤 IP 주소를 사용하고 있는지 확인할 수 있습니다. 예를 들어 큰 IP 주소 블록을 사용하고 있는 서비스를 확인하여 IP 주소 소진을 방지할 수 있습니다.

특정 IP 주소 범위를 사용하고 있는 서비스를 확인하는 방법은 다음과 같습니다.

  1. 비공개 연결 목록을 표시합니다.
  2. 해당 서비스 제작자에 연결하는 피어링 연결 이름을 찾습니다.
  3. VPC 네트워크의 경로 목록을 표시합니다.
  4. 다음 홉이 피어링 연결 이름과 일치하는 경로를 찾습니다. 경로의 대상 범위는 각 서비스가 사용하는 IP 주소를 나타냅니다.

IP 주소 범위 소진

특정 비공개 연결에 할당된 IP 주소 공간이 소진된 경우 기존 할당을 확장하거나 새 할당을 추가할 수 있습니다. 확장된 할당은 기존 범위를 포함하는 연속된 IP 주소 범위여야 합니다. 할당 크기에는 제한이 없지만 만들 수 있는 할당 수에는 제한이 있으므로 할당을 확장하는 것이 좋습니다.

기존 할당을 확장하는 방법은 다음과 같습니다.

  1. 비공개 연결 목록을 표시하고 확장해야 하는 할당 범위의 이름을 기록해 둡니다.
  2. 기존 할당 범위를 삭제합니다.
  3. 삭제한 범위와 동일한 이름을 사용하여 새 할당 범위를 만듭니다. 삭제한 IP 주소 범위를 포함하는 IP 주소 범위를 지정합니다. 이렇게 하면 이전 할당 범위를 사용하는 기존 피어링 리소스가 VPC 네트워크의 리소스와 충돌하지 않고 동일한 IP 주소를 계속 사용할 수 있습니다. 예를 들어 이전에 할당된 범위가 192.168.0.0/20이면 새 할당 범위를 192.168.0.0/16으로 만듭니다.

기존 비공개 연결에 할당 범위를 추가하는 방법은 다음과 같습니다.

  1. 새 할당 범위를 만듭니다. 이 범위는 기존 할당 범위와 인접하지 않아도 됩니다.
  2. 기존 비공개 연결에 할당 범위를 추가합니다.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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