서비스 비공개 액세스 옵션

Google에서 제공하는 몇 가지 비공개 액세스 옵션은 내부(RFC 1918) IP 주소를 가진 VM 인스턴스가 특정 API 및 서비스에 도달할 수 있도록 합니다. 액세스해야 할 API 및 서비스를 지원하는 옵션을 선택하세요.

다음은 각 옵션을 요약한 표인데 이 중 하나 또는 모두를 구성할 수 있습니다. 옵션은 서로 독립적으로 작동합니다.

옵션 인스턴스 연결 지원되는 서비스 용도
비공개 Google 액세스
GCP VM 인스턴스에는 내부 IP 주소만 필요하며 외부 IP 주소를 지정할 수 없습니다. VPC 네트워크의 기본 인터넷 게이트웨이를 통해 Google API 및 서비스의 공개 IP 주소에 연결합니다. 대부분의 Google API 및 서비스 지원 GCP 리소스에 외부 IP 주소를 제공하지 않고 Google API 및 서비스에 연결하려면 이 옵션을 사용하세요.
온프레미스 호스트의 비공개 Google 액세스
온프레미스 호스트에는 내부 IP 주소가 필요합니다. 호스트에 외부 IP 주소를 지정할 수 있습니다. VPN 터널 또는 제한된 IP 주소 범위를 사용한 상호 연결을 통해 Google API 및 서비스의 공개 IP 주소에 연결합니다. 제한된 Google IP 주소 범위를 지원하는 Google 서비스 VPC 네트워크를 통해 Google API 및 서비스에 연결하려면 이 옵션을 사용하세요. 이 방법을 사용하면 온프레미스 호스트에 외부 IP 주소가 없어도 됩니다.
비공개 서비스 액세스
GCP VM 인스턴스에는 내부 IP 주소가 필요합니다. 인스턴스에 외부 IP 주소를 지정할 수 있습니다. VPC 네트워크 피어링 연결을 통해 Google 또는 타사 관리형 VPC 네트워크에 연결합니다. 일부 Google 또는 타사 서비스 지원 GCP와 Google 또는 타사 리소스에 외부 IP 주소를 할당하지 않고 특정 Google 및 타사 서비스에 연결하려면 이 옵션을 사용하세요.
서버리스 VPC 액세스
GCP VM 인스턴스에는 내부 IP 주소가 필요합니다. 인스턴스에 외부 IP 주소를 지정할 수 있습니다. 내부 VPC 연결을 통해 서버리스 Google 서비스에서 직접 연결합니다. App Engine 표준 환경 및 Cloud Functions 내부 IP 주소를 사용하여 App Engine 표준 환경 및 Cloud Functions에서 VPC 네트워크의 리소스에 직접 연결하려면 이 옵션을 사용하세요.

비공개 Google 액세스

외부 IP 주소 없이 내부 IP 주소만 있는 VM 인스턴스는 비공개 Google 액세스를 사용할 수 있습니다. 이러한 인스턴스는 Google API 및 서비스의 외부 IP 주소에 도달할 수 있습니다. 비공개 Google Access를 사용 중지하면 VM 인스턴스가 더 이상 Google API 및 서비스에 도달할 수 없으며 VPC 네트워크 내에서만 트래픽을 전송할 수 있습니다.

비공개 Google 액세스는 외부 IP 주소가 있는 인스턴스에는 영향을 주지 않습니다. 인터넷 액세스 요구 사항에 따라 외부 IP 주소가 있는 인스턴스는 인터넷에 액세스할 수 있습니다. Google API 및 서비스의 외부 IP 주소에 요청을 전송하기 위해 특별한 구성은 필요하지 않습니다.

서브넷 단위로 비공개 Google 액세스를 사용 설정해야 하며 이는 VPC 네트워크의 서브넷에 대한 설정입니다. 서브넷의 비공개 Google 액세스를 사용 설정하고 요구 사항을 확인하려면 비공개 Google 액세스 구성을 참조하세요.

지원되는 서비스

비공개 Google 액세스는 클라우드 및 개발자 API와 대부분의 GCP 서비스에 대한 액세스를 허용하지만 아래의 서비스는 예외입니다.

  • App Engine Memcache
  • Cloud Filestore
  • Cloud Memorystore
  • Cloud SQL

그 대신 비공개 서비스 액세스에서 이러한 서비스 중 하나 이상을 지원할 수 있습니다.

예시

아래 예시의 VPC 네트워크는 다음 홉이 기본 인터넷 게이트웨이인 Google API 및 서비스의 공개 IP 주소에 대한 경로를 포함하므로 비공개 Google 액세스용 라우팅 요구사항을 충족합니다. 비공개 Google 액세스는 subnet-a에는 사용 설정되지만 subnet-b에는 그렇지 않습니다.

비공개 Google 액세스 구현(확대하려면 클릭)

다음 목록에서는 위에 있는 다이어그램에 대해 설명합니다.

  • 이 VPC 네트워크의 방화벽 규칙0.0.0.0/0(적어도 Google API 또는 서비스의 서버 IP)으로 이그레스를 허용합니다.
  • VM A1에는 비공개 Google 액세스가 사용 설정된 subnet-a에 네트워크 인터페이스가 있기 때문에 Cloud Storage를 비롯한 Google API 및 서비스에 액세스할 수 있습니다. 해당 인스턴스에 비공개 IP 주소만 있으므로 비공개 Google 액세스가 적용됩니다.
  • VM B1에는 내부 IP 주소만 있고 비공개 Google 액세스가 subnet-b에 대해 사용 중지되어 있으므로 Google API 및 서비스에 액세스할 수 없습니다.
  • VM A2VM B2에는 둘 다 외부 IP 주소가 있으므로 Cloud Storage를 포함한 Google API 및 서비스에 액세스할 수 있습니다. 외부 IP 주소가 있으므로 비공개 Google 액세스에 따라 인스턴스에서 Google API 및 서비스에 액세스할 수 있는지 여부가 달라지지 않습니다.

온프레미스 호스트의 비공개 Google 액세스

온프레미스 호스트는 데이터 센터부터 GCP까지 이어지는 Cloud VPN 또는 Cloud Interconnect 연결을 통해 Google API 및 서비스에 도달할 수 있습니다. 온프레미스 호스트에는 외부 IP 주소가 필요하지 않으며, 대신 내부 RFC 1918 IP 주소를 사용합니다.

온프레미스 호스트에 비공개 Google 액세스를 사용 설정하려면 온프레미스 및 VPC 네트워크에 DNS, 방화벽 규칙, 경로를 구성해야 합니다. GCP VM 인스턴스에 비공개 Google 액세스를 사용 설정하는 것과 마찬가지로 VPC 네트워크의 서브넷에 비공개 Google 액세스를 사용 설정할 필요는 없습니다. 하지만 VPC 네트워크에 최소한 대상 위치가 199.36.153.4/30이고 다음 홉이 기본 인터넷 게이트웨이인 경로가 있어야 합니다. 다음 홉이 '기본 인터넷 게이트웨이'라고 해도 Google이 199.36.153.4/30에 대한 경로를 외부에 공개하지 않으므로 199.36.153.4/30으로 전송된 트래픽은 공개 인터넷을 거치지 않고 Google 네트워크를 벗어나지 않습니다.

온프레미스 호스트의 경우 restricted.googleapis.com으로 Google API 및 서비스 요청을 전송해야 합니다. 이 주소는 Google이 공개적으로 게시하는 DNS A 레코드에서 제공하는 제한된 VIP(가상 IP 주소 범위)입니다. 범위는 199.36.153.4/30이지만 Google에서는 이 경로를 게시하지 않습니다. 따라서 Cloud Router에서 커스텀 경로를 추가하고 VPC에 199.36.153.4/30 대상에 대한 적절한 경로를 지정해야 합니다.

제한된 범위에 도달하는 온프레미스 호스트의 경우 VPN 터널 또는 상호 연결을 통해 요청을 전송해야 합니다. Cloud Router를 사용해 제한된 범위를 동적으로 공지하세요. 자세한 내용은 온프레미스 호스트의 비공개 Google 액세스 구성을 참조하세요.

지원되는 서비스

온프레미스 호스트의 비공개 Google 액세스는 비공개 Google 액세스보다 하위 집합의 서비스를 지원합니다. 다음과 같이 제한된 VIP를 지원하는 Google API 및 서비스만 지원됩니다.

  • BigQuery
  • Cloud Bigtable
  • Cloud Dataflow
  • Cloud Dataproc
  • Cloud Data Loss Prevention
  • Cloud Deployment Manager
  • Cloud DNS
  • Cloud KMS
  • Cloud Pub/Sub
  • Cloud Spanner
  • Cloud Storage
  • Container Registry
  • Stackdriver Logging
  • Stackdriver Error Reporting

예시

아래의 예시에서 온프레미스 네트워크는 Cloud VPN 터널을 통해 VPC 네트워크에 연결됩니다. 온프레미스 호스트에서 Google API로 전달되는 트래픽은 터널을 통해 VPC 네트워크로 이동합니다. VPC 네트워크에 도착한 트래픽은 기본 인터넷 게이트웨이를 다음 홉으로 사용하는 경로를 통해 전송됩니다. 다음 홉은 트래픽이 VPC 네트워크를 떠나 Google API 및 서비스의 제한된 IP 범위(199.36.153.4/30)로 전달되도록 합니다.

하이브리드 클라우드 사용 사례를 위한 비공개 Google 액세스(클릭하여 확대)
  • 온프레미스 DNS 구성에서 *.googleapis.com 요청을 199.36.153.4/30으로 확인되는 restricted.googleapis.com에 매핑합니다.
  • Cloud Router에서 VPN 터널을 통해 199.36.153.4/30 IP 주소 범위를 공지합니다. Google API로 이동하는 트래픽은 터널을 통해 VPC 네트워크로 라우팅됩니다.
  • VPC 네트워크에 대상이 199.36.153.4/30인 트래픽을 인터넷 게이트웨이(다음 홉)로 전달하는 경로가 포함됩니다. 그다음 Google은 적절한 API 또는 서비스로 트래픽을 라우팅합니다.
  • Cloud DNS를 사용해 네트워크에 비공개 DNS 영역을 구성하면 Google API로 전송되는 모든 요청이 제한된 범위에 매핑됩니다. 지원되는 API만 이 구성으로 액세스할 수 있어 다른 서비스는 도달하지 못할 수도 있습니다. Cloud DNS는 부분 재정의를 지원하지 않습니다. 부분 재정의가 필요하다면 BIND를 사용하세요.

비공개 서비스 액세스

Google 및 타사(서비스 제작자라고 함)는 VPC 네트워크에서 호스팅되는 내부 IP 주소로 서비스를 제공할 수 있습니다. 비공개 서비스 액세스를 사용하면 이러한 내부 IP 주소에 연결할 수 있습니다. 이 방법은 VPC 네트워크의 VM 인스턴스에서 외부 IP주소 대신 내부 IP 주소를 사용하려는 경우에 유용합니다. 비공개 서비스 액세스 사용에 대한 자세한 내용은 비공개 서비스 액세스 구성을 참조하세요.

비공개 서비스 액세스를 사용하려면 먼저 내부 IP 주소 범위를 할당한 다음 비공개 연결을 만들어야 합니다. 할당 범위는 로컬 VPC 네트워크에서 사용할 수 없는 예약된 CIDR 블록입니다. 서비스 제작자만을 위한 주소 범위를 이렇게 할당해두면 VPC 네트워크와 서비스 제작자의 VPC 네트워크 간에 주소가 겹치지 않게 됩니다. 비공개 연결을 만들 경우 할당을 지정해야 합니다.

비공개 연결은 VPC 네트워크와 서비스 제작자의 VPC 네트워크를 연결합니다. 이 연결을 통해 VPC 네트워크의 VM 인스턴스가 내부 IP 주소를 사용하여 내부 IP 주소가 있는 서비스 리소스에 도달할 수 있습니다. 인스턴스에 외부 IP 주소가 있을 수 있지만 비공개 서비스 액세스에는 외부 IP 주소가 필수적인 것은 아니며 사용되지도 않습니다.

서비스 제작자가 여러 서비스를 제공하는 경우 비공개 연결 하나만 있으면 됩니다. 비공개 연결을 만들 때는 Service Networking API를 사용하지만 GCP는 사용자 VPC 네트워크 및 서비스 제작자 VPC 네트워크 간의 VPC 네트워크 피어링 연결로 구현합니다. 예를 들어 VPC 네트워크는 이 비공개 연결을 피어링 연결로 표시하며 이 연결을 삭제하려면 피어링 연결을 삭제해야 합니다.

비공개 서비스 액세스는 이 액세스를 지원하는 서비스에만 사용할 수 있습니다. 비공개 연결을 만들기 전에 서비스 제작자에게 확인하세요.

서비스 제작자 네트워크

비공개 연결 시 서비스 제작자는 서비스 리소스가 프로비저닝되는 VPC 네트워크를 사용합니다. 서비스 제작자의 네트워크는 사용자 전용으로 구축되고 사용자의 리소스만 포함합니다.

서비스 제작자 네트워크의 리소스는 VPC 네트워크의 다른 리소스와 비슷합니다. 예를 들어 VPC 네트워크의 다른 리소스에서 내부 IP 주소를 통해 연결할 수 있습니다. 서비스 제작자 네트워크에 대한 VPC 네트워크 제어 액세스에 방화벽 규칙도 만들 수 있습니다.

서비스 제작자 측면에 대한 자세한 내용은 서비스 인프라 문서에서 비공개 서비스 액세스 사용 설정을 참조하세요. 서비스 인프라 문서는 단순 참고용이며 사용자가 실제 비공개 서비스 액세스를 사용 설정하거나 사용하는 데 필수 문서는 아니라는 점을 유의해 주세요.

비공개 서비스 액세스 및 온프레미스 연결

하이브리드 네트워킹 시나리오에서 온프레미스 네트워크는 Cloud VPN 또는 Cloud Interconnect 연결을 통해 VPC 네트워크에 연결됩니다. 기본적으로 온프레미스 호스트는 비공개 서비스 액세스를 사용하여 서비스 제작자의 네트워크에 연결할 수 없습니다.

VPC 네트워크에는 온프레미스 네트워크에 트래픽을 올바르게 전송하기 위한 커스텀 정적 또는 동적 경로가 있을 수 있지만 서비스 제작자의 네트워크에는 이와 같은 경로가 없습니다. 비공개 연결을 만들 때 VPC 네트워크와 서비스 제작자 네트워크는 서브넷 경로만 교환합니다.

서비스 제공업체의 네트워크에서 VPC 네트워크의 커스텀 경로를 가져오고 온프레미스 네트워크에 트래픽을 올바르게 라우팅할 수 있도록 VPC 네트워크의 커스텀 경로를 내보내야 합니다.

커스텀 경로를 내보내려면 비공개 연결을 만든 다음 기본 VPC 피어링 구성을 수정하여 커스텀 경로를 내보냅니다. 비공개 연결을 만드는 방법에 대한 자세한 내용은 비공개 서비스 액세스 구성을 참조하세요. 커스텀 경로를 내보내는 방법에 대한 자세한 내용은 피어링 연결 업데이트를 참조하세요.

지원되는 서비스

비공개 서비스 액세스를 지원하는 Google 서비스는 다음과 같습니다.

예시

다음 예시에서 고객 VPC 네트워크는 Google 서비스에 10.240.0.0/16 주소 범위를 할당하고 이 할당 범위를 사용하는 비공개 연결을 설정했습니다. 각 Google 서비스는 특정 리전에 Cloud SQL 인스턴스와 같은 새 리소스를 프로비저닝하기 위해 할당된 블록에서 서브넷을 만듭니다.

비공개 서비스 액세스(확대하려면 클릭)
  • 비공개 연결에 10.240.0.0/16 할당 범위가 지정되었습니다. Google 서비스는 이 할당 범위에서 새 리소스를 프로비저닝할 서브넷을 만들 수 있습니다.
  • 비공개 연결의 Google 서비스 측에서 Google은 고객을 위한 프로젝트를 생성합니다. 이 프로젝트는 격리되어 있으므로 다른 고객이 이를 공유할 수 없으며 해당 고객에게는 고객이 프로비저닝한 리소스 요금만 청구됩니다.
  • 각 Google 서비스는 리소스를 프로비저닝할 서브넷을 생성합니다. 서브넷의 IP 주소 범위는 일반적으로 서비스가 선택하는 /24 CIDR 블록이며 할당된 IP 주소 범위에 속합니다. 서비스 제작자의 서브넷은 수정할 수 없습니다. 서비스는 해당 서비스가 이전에 만든 기존의 리전 서브넷에 새 리소스를 프로비저닝하고 서브넷이 가득 차면 같은 리전에 새 서브넷을 만듭니다.
  • 고객 네트워크의 VM 인스턴스는 서비스가 지원되는 모든 리전의 서비스 리소스에 액세스할 수 있습니다. 일부 서비스는 리전 간 통신을 지원하지 않을 수도 있습니다. 예를 들어 VM 인스턴스는 같은 리전에 있는 Cloud SQL 인스턴스와만 통신할 수 있습니다. 자세한 내용은 관련 서비스의 문서를 참조하세요.
  • VM 인스턴스가 다른 리전의 리소스와 통신하는 리전 간 트래픽에는 여전히 이그레스 비용이 적용됩니다.
  • Cloud SQL 인스턴스에는 IP 주소 10.240.0.2가 할당됩니다. 고객 VPC 네트워크에서 대상이 10.240.0.2인 요청은 서비스 제작자의 네트워크를 통해 비공개 연결에 라우팅됩니다. 서비스 네트워크에 연결되면 서비스 네트워크에는 올바른 리소스에 요청을 전송하는 경로가 포함됩니다.
  • VPC 네트워크 간 트래픽은 공개 인터넷을 통하지 않고 Google 네트워크 내부에서 이동합니다.

서버리스 VPC 액세스

서버리스 VPC 액세스를 사용하면 App Engine 표준 환경 및 Cloud Functions에서 VPC 네트워크에 직접 연결할 수 있습니다. 이렇게 연결하면 App Engine 표준 환경 앱 및 Cloud Functions에서 내부 IP 주소를 통해 VPC 네트워크의 리소스에 액세스할 수 있습니다.

서버리스 VPC 액세스를 통해 GCP 프로젝트에 커넥터를 만들어 VPC 네트워크에 연결합니다. 그런 다음 내부 네트워크 트래픽에 이 커넥터를 사용하도록 App Engine 앱 또는 Cloud Functions와 같은 서버리스 서비스를 구성합니다.

서버리스 VPC 액세스를 사용해야만 앱 또는 함수가 VPC 네트워크의 리소스에 요청을 전송하고 해당 요청에 대한 응답을 수신할 수 있습니다. 그 반대의 경우인 VM이 앱 또는 함수에 대한 요청을 시작하는 경우에는 앱 또는 함수의 공개 주소를 사용해야 합니다. 자세한 내용은 비공개 Google 액세스를 참조하세요.

서버리스 VPC 액세스는 이전 네트워크 또는 공유 VPC 네트워크를 지원하지 않습니다. 자세한 내용은 서비리스 VPC 액세스 구성을 참조하세요.

지원되는 서비스

서버리스 VPC 액세스 커넥터를 지원하는 Google 서비스는 다음과 같습니다.

  • App Engine 표준 환경
    • PHP 5.5 및 Go 1.9를 제외한 모든 런타임
  • Cloud Functions

예시

다음 예시에서 App Engine 표준 환경 앱 및 Cloud Functions는 서버리스 VPC 액세스 커넥터를 사용하여 VPC 네트워크의 내부 리소스에 요청을 전송합니다.

서버리스 VPC 액세스 예시(확대하려면 클릭)
서버리스 VPC 액세스 예시(확대하려면 클릭)
  • 서버리스 VPC 액세스 커넥터는 App Engine 앱 및 Cloud Functions와 동일한 프로젝트 및 리전에 있습니다.
  • 커넥터는 대상 리소스가 있는 VPC 네트워크에 연결되며 VPC 네트워크 피어링을 사용하는 경우에는 다른 VPC 네트워크 및 GCP 프로젝트의 리소스에 액세스할 수 있습니다.
  • 커넥터에는 IP 범위 10.8.0.0/28이 할당됩니다. 커넥터에서 대상으로 전송된 요청의 소스 IP 주소는 이 범위에 있습니다.
  • App Engine 앱 및 Cloud Functions는 내부 IP 주소(10.0.0.410.1.0.2)로 요청을 전송하여 대상 리소스에 연결됩니다. 대상 리소스는 어느 리전에나 있을 수 있습니다. 이그레스 비용은 커넥터에서 다른 리전의 리소스에 전송된 트래픽에 적용됩니다.
  • App Engine 및 Cloud Functions에서 내부(비공개) IP 주소에 전송된 요청은 서버리스 VPC 액세스 커넥터를 통해 대상 리소스에 내부적으로만 이동합니다. 외부(공개) IP 주소에 전송된 요청은 공개 인터넷을 통해 이동합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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