서비스 비공개 액세스 옵션

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

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

옵션 클라이언트 연결 지원되는 서비스 용도
비공개 Google 액세스
외부 IP 주소가 없는 Google Cloud VM 인스턴스 Virtual Private Cloud(VPC) 네트워크의 기본 인터넷 게이트웨이를 통해 Google API 및 서비스의 표준 공개 IP 주소 또는 비공개 Google 액세스별 도메인 및 VIP에 연결합니다. 대부분의 Google API 및 서비스를 지원합니다. 또한 App Engine 애플리케이션에 대한 액세스를 지원합니다. Google Cloud 리소스에 외부 IP 주소를 제공하지 않고 Google API 및 서비스에 연결하려면 이 옵션을 사용하세요.
온프레미스 호스트의 비공개 Google 액세스
외부 IP 주소의 유무와 관계없는 온프레미스 호스트 비공개 Google 액세스별 도메인 및 VIP 중 하나를 사용하여 Cloud VPN 터널 또는 Cloud Interconnect를 통해 온프레미스 네트워크에서 Google API 및 서비스에 연결합니다. 사용 중인 비공개 Google 액세스별 도메인에 따라 액세스할 수 있는 Google 서비스 VPC 네트워크를 통해 Google API 및 서비스에 연결하려면 이 옵션을 사용하세요. 이 방법을 사용하면 온프레미스 호스트에 외부 IP 주소가 없어도 됩니다.
비공개 서비스 액세스
외부 IP 주소의 유무와 관계없는 Google Cloud VM 인스턴스 VPC 네트워크 피어링 연결을 통해 Google 또는 타사 관리형 VPC 네트워크에 연결합니다. 일부 Google 또는 타사 서비스 지원 Google Cloud와 Google 또는 타사 리소스에 외부 IP 주소를 할당하지 않고 특정 Google 및 타사 서비스에 연결하려면 이 옵션을 사용하세요.
서버리스 VPC 액세스
외부 IP 주소의 유무와 관계없는 Google Cloud VM 인스턴스 내부 VPC 연결을 통해 서버리스 Google 서비스에서 직접 연결합니다. App Engine 표준 환경 및 Cloud Functions 내부 IP 주소를 사용하여 App Engine 표준 환경 및 Cloud Functions에서 VPC 네트워크의 리소스에 직접 연결하려면 이 옵션을 사용하세요.

비공개 Google 액세스

외부 IP 주소 없이 내부 IP 주소만 있는 VM 인스턴스는 비공개 Google 액세스를 사용할 수 있습니다. 이러한 인스턴스는 Google API 및 서비스의 외부 IP 주소에 도달할 수 있습니다. 패킷의 소스 IP 주소는 네트워크 인터페이스의 기본 내부 IP 주소 또는 인터페이스에 할당된 별칭 IP 범위의 주소일 수 있습니다. 비공개 Google 액세스를 사용 중지하면 VM 인스턴스가 더 이상 Google API 및 서비스에 도달할 수 없으며 VPC 네트워크 내에서만 트래픽을 전송할 수 있습니다.

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

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

지원되는 서비스

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

  • App Engine Memcache
  • Filestore
  • 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 액세스

온프레미스 호스트는 온프레미스 네트워크부터 Google Cloud까지 이어지는 Cloud VPN 또는 Cloud Interconnect 연결을 통해 Google API 및 서비스에 도달할 수 있습니다. 온프레미스 호스트는 다음 유형의 소스 IP 주소에서 트래픽을 전송합니다.

  • 비공개 IP 주소(예: RFC 1918 주소)
  • Google 소유 공개 IP 주소를 제외한 비공개로 사용된 공개 IP 주소. 온프레미스 호스트의 비공개 Google 액세스에는 온프레미스 네트워크의 소스로 Google 비공개 IP 주소를 재사용할 수 없습니다.

온프레미스 호스트에 비공개 Google 액세스를 사용 설정하려면 온프레미스 및 VPC 네트워크에 DNS, 방화벽 규칙, 경로를 구성해야 합니다. Google Cloud VM 인스턴스에 비공개 Google 액세스를 사용 설정하는 것과 마찬가지로 VPC 네트워크의 서브넷에 비공개 Google 액세스를 사용 설정할 필요는 없습니다.

온프레미스 호스트는 restricted.googleapis.com 또는 private.googleapis.com 도메인의 가상 IP 주소(VIP)를 사용하여 Google API 및 서비스에 연결되어야 합니다. 자세한 내용은 비공개 Google 액세스별 도메인 및 VIP를 참조하세요.

Google은 도메인이 VIP 범위로 확인되는 DNS A 레코드를 공개적으로 게시합니다. 범위는 공개 IP 범위에 속하지만 Google에서는 이 경로를 게시하지 않습니다. 따라서 Cloud Router에서 커스텀 경고 공지를 추가하고 VPC 네트워크에 VIP 대상에 대한 커스텀 정적 경로를 지정해야 합니다.

경로에는 VIP 범위 중 하나와 일치하는 대상이 있어야 하고 다음 홉은 기본 인터넷 게이트웨이여야 합니다. Google이 VIP 범위에 대한 경로를 외부에 공개하지 않기 때문에 이 VIP 범위로 전송된 트래픽은 공개 인터넷을 거치지 않고 Google 네트워크를 벗어나지 않습니다.

자세한 내용은 온프레미스 호스트용 비공개 Google 액세스 구성을 참조하세요.

비공개 Google 액세스별 도메인 및 VIP

다음 표에는 도메인 이름과 관련 VIP 범위가 나와 있습니다. 온프레미스 호스트에는 비공개 Google 액세스용 VIP 중 하나만 사용해야 합니다.

도메인 및 VIP 지원되는 서비스 사용 예시
restricted.googleapis.com
199.36.153.4/30
VPC 서비스 제어가 지원하는 Google API 및 서비스에 대한 API 액세스를 사용 설정합니다.
VPC 서비스 제어를 지원하지 않는 Google API 및 서비스에 대한 액세스를 차단합니다. G Suite 웹 애플리케이션 또는 G Suite API를 지원하지 않습니다.
VPC 서비스 제어에서 제한하는 서비스만을 VPC 네트워크 또는 온프레미스 네트워크의 호스트에서 사용하려면 restricted.googleapis.com을 사용합니다.
private.googleapis.com
199.36.153.8/30
VPC 서비스 제어에서 지원하는지 여부에 관계없이 대부분의 Google API 및 서비스에 대한 API 액세스를 사용 설정합니다. Google 지도, Google Ads, Google Cloud Platform, 이름이 googleapis.com으로 끝나는 대부분의 기타 Google API에 대한 API 액세스 권한을 포함합니다. G Suite 웹 애플리케이션을 지원하지 않습니다. private.googleapis.com을 사용하여 Google API 및 서비스에 액세스해야 하는 경우는 다음과 같습니다.
  • VPC 서비스 제어를 사용하고 있지 않은 경우
  • VPC 서비스 제어를 사용 중이지만, VPC 서비스 제어에서 지원하지 않는 서비스에 액세스해야 하는 경우

지원되는 서비스

온프레미스 호스트에서 사용할 수 있는 서비스는 액세스에 사용되는 도메인 이름 및 VIP에서 지원되는 서비스로 제한됩니다. 자세한 내용은 비공개 Google 액세스별 도메인 및 VIP를 참조하세요.

예시

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

하이브리드 클라우드 사용 사례를 위한 비공개 Google 액세스(클릭하여 확대)
  • 온프레미스 DNS 구성은 *.googleapis.com 요청을 199.36.153.4/30으로 확인되는 restricted.googleapis.com에 매핑합니다.
  • Cloud Router는 커스텀 경로 공지를 사용하여 Cloud VPN 터널을 통해 199.36.153.4/30 IP 주소 범위를 알리도록 구성되었습니다. Google API로 이동하는 트래픽은 터널을 통해 VPC 네트워크로 라우팅됩니다.
  • 대상이 199.36.153.4/30인 트래픽을 기본 인터넷 게이트웨이(다음 홉)로 전달하는 VPC 네트워크에 커스텀 정적 경로가 추가되었습니다. 그러면 Google은 적절한 API 또는 서비스로 트래픽을 라우팅합니다.
  • 199.36.153.4/30에 매핑되는 *.googleapis.com에 대해 Cloud DNS 관리형 비공개 영역을 만들고 VPC 네트워크에서 사용하도록 해당 영역을 승인했으면 googleapis.com 도메인의 모든 영역에 대한 요청은 restricted.googleapis.com에서 사용되는 IP 주소로 전송됩니다. 지원되는 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를 사용하지만 Google Cloud는 사용자 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 액세스를 통해 Google Cloud 프로젝트에 커넥터를 만들어 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 네트워크 및 Google Cloud 프로젝트의 리소스에 액세스할 수 있습니다.
  • 커넥터에는 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 주소에 전송된 요청은 공개 인터넷을 통해 이동합니다.

다음 단계