네트워킹

이 페이지에서는 Memorystore for Redis 네트워킹의 개요를 제공합니다.

Memorystore는 VPC 피어링을 사용하여 VPC 네트워크를 내부 Google 서비스 네트워크에 연결합니다. Memorystore for Redis는 인스턴스를 만들 때 선택한 연결 모드에 따라 다양한 피어링 아키텍처와 네트워킹 기능을 제공합니다.

연결 모드를 선택하는 옵션은 공유 VPC 아키텍처 더 나은 IP 관리와 같은 Google Cloud의 고급 네트워킹 옵션을 지원하는 동시에 Memorystore의 기존 피어링 아키텍처를 지원합니다.

Memorystore for Redis는 DIRECT_PEERINGPRIVATE_SERVICE_ACCESS라는 두 가지 연결 모드를 지원합니다.

Memorystore for Redis는 연결 모드에 관계없이 항상 내부 IP 주소를 사용하여 Redis 인스턴스를 프로비저닝합니다.

연결 모드

Memorystore for Redis는 서로 다른 기능을 지원하는 두 가지 연결 모드를 제공합니다.

  • 직접 피어링
  • 비공개 서비스 액세스

기존 인스턴스의 네트워킹 연결 모드를 보려면 다음 명령어를 실행합니다. 이때 variables는 적절한 값으로 바꿉니다.

gcloud redis instances describe instance-id --region=region
  • connectMode 값은 DIRECT_PEERING 또는 PRIVATE_SERVICE_ACCESS를 표시합니다.

인스턴스를 만드는 동안 연결 모드를 선택하는 방법은 서비스 프로젝트에서 공유 VPC 네트워크로 Redis 인스턴스 만들기 또는 중앙 집중식 IP 주소 범위로 Redis 인스턴스 만들기를 참조하세요.

직접 피어링

다이렉트 피어링 모드를 사용하는 경우 Memorystore는 고객 VPC 네트워크와 Google 관리 프로젝트의 VPC 네트워크 간에 VPC 피어링을 만듭니다. 피어링은 인스턴스 생성 중에 자동으로 만들어지며 사용자의 추가 단계가 필요하지 않습니다. 다른 Google Cloud 서비스는 피어링을 공유하지 않습니다. Memorystore for Redis는 비공개 서비스 액세스 연결 모드 가용성 전에 다이렉트 피어링 연결 모드를 사용했습니다.

기본적으로 새 인스턴스는 다이렉트 피어링 연결 모드를 사용하여 생성됩니다. 연결 모드가 지정되지 않은 기존 스크립트는 기본적으로 다이렉트 피어링 모드를 사용합니다.

비공개 서비스 액세스

비공개 서비스 액세스는 VPC 네트워크와 Google 서비스 네트워크 간에 피어링을 만드는 또 다른 방법입니다.

VPC 네트워크에 비공개 서비스 액세스 연결을 설정하면 해당 VPC 네트워크와 Google 서비스 네트워크 간에 피어링이 생성됩니다. 연결이 설정되면 비공개 서비스 액세스 연결 모드를 사용하여 인스턴스를 생성할 수 있습니다.

비공개 서비스 액세스를 사용하면 Redis 인스턴스에 다음의 기능을 사용할 수 있습니다.

  • 공유 VPC를 사용하여 서비스 프로젝트에서 Memorystore for Redis 인스턴스를 프로비저닝합니다.
  • 여러 Google 서비스에서 IP 주소 범위를 중앙에서 관리합니다.
  • VPC 네트워크로의 VPN 터널 또는 Cloud Interconnect를 통해 외부 소스에서 VPC 네트워크로 연결합니다.

현재 gcloud 명령줄 도구를 사용한 비공개 서비스 액세스 연결 모드에서만 인스턴스를 만들 수 있습니다.

비공개 서비스 액세스의 추가 이점 중 하나는 여러 Google 서비스에서 동일한 네트워크 피어링이 공유되므로 Google 서비스에서 생성되는 피어링 수가 제한된다는 점입니다.

연결 모드 선택

아래 표에는 사용해야 할 다양한 사용 사례와 연결 모드가 요약되어 있습니다.

시나리오 지원되는 연결 모드
공유 VPC 네트워크로 Redis 인스턴스 프로비저닝 비공개 서비스 액세스만
VPN을 사용하여 온프레미스 네트워크에서 Redis 인스턴스에 액세스 비공개 서비스 액세스만
여러 Google 서비스에 중앙 집중식 IP 범위 관리 사용 비공개 서비스 액세스만
전용 VPC 네트워크를 사용하여 Redis 인스턴스 프로비저닝 비공개 서비스 액세스(권장) 또는 다이렉트 피어링

기존 인스턴스의 연결 모드 전환

기존 인스턴스의 연결 모드를 전환할 수 없습니다. 연결 모드를 전환하려면 새 연결 모드를 사용하여 인스턴스를 다시 만들어야 합니다. 이렇게 하면 인스턴스의 IP 주소가 변경됩니다.

예를 들어 비공개 서비스 액세스 연결 모드를 사용하기 전에 만들어진 기존 인스턴스가 있는 경우 해당 인스턴스의 연결 모드 속성은 다이렉트 피어링으로 설정됩니다. 비공개 서비스 액세스 연결 모드를 사용하여 인스턴스를 다시 만들면 인스턴스의 IP 주소가 변경됩니다.

또한 Memorystore for Redis는 동일한 프로젝트와 네트워크에서 비공개 서비스 액세스를 사용하는 Redis 인스턴스와 다이렉트 피어링을 사용하는 인스턴스를 지원합니다.

비공개 서비스 액세스로 온프레미스 액세스

온프레미스 네트워크가 Memorystore for Redis 인스턴스가 연결된 VPC 네트워크에 연결된 경우 온프레미스 네트워크의 클라이언트에서 연결할 수 있습니다. 온프레미스 네트워크에서의 연결을 허용하려면 다음 안내를 따르세요.

  1. 다음 옵션 중 하나를 사용하여 공유 VPC 네트워크가 온프레미스 네트워크에 연결되어 있는지 확인합니다.
  2. 비공개 서비스 연결에서 생성된 피어링을 식별합니다. Memorystore for Redis에서 사용하는 피어링 이름은 servicenetworking-googleapis-com입니다.
  3. --import-custom-routes--export-custom-routes 플래그를 모두 설정하여 커스텀 경로를 교환하도록 피어링 연결을 업데이트합니다.
  4. 비공개 서비스 연결에 사용되는 할당 범위를 식별합니다.
  5. Cloud VPN 터널 또는 Cloud Interconnect 연결(VLAN)의 BGP 세션을 관리하는 Cloud Router에 할당된 범위에 대한 Cloud Router 커스텀 경로 공지를 만듭니다.

커스텀 IP 범위 설정

Memorystore for Redis로 커스텀 IP 범위를 지정하는 방법은 두 가지가 있습니다.

  • 비공개 서비스 액세스 방법

    • Redis 인스턴스가 PRIVATE_SERVICE_ACCESS 연결 모드를 사용하는 경우 이 방법을 사용합니다.
  • 다이렉트 피어링 메서드

    • Redis 인스턴스가 DIRECT_PEERING 연결 모드를 사용하는 경우 이 방법을 사용합니다.

IP 주소 범위는 CIDR 표기법을 사용하여 표현됩니다.

비공개 서비스 액세스 연결 모드가 있는 커스텀 IP 범위

Cloud Console과 gcloud 도구를 모두 사용하여 커스텀 범위를 지정할 수 있습니다. 범위 할당에 대한 안내는 할당된 IP 주소 범위 만들기를 참조하세요.

다이렉트 피어링을 사용하는 커스텀 IP 범위

인스턴스에서 DIRECT_PEERING 연결 모드를 사용하는 경우 gcloud redis instances create 명령어와 함께 --reserved-ip-range gcloud 매개변수를 사용하는 방법으로만 Memorystore for Redis의 커스텀 IP 주소 범위를 지정할 수 있습니다. 인스턴스 생성 후에는 예약된 범위를 수정하거나 기존 Redis 인스턴스에 예약된 범위를 추가할 수 없습니다.

다음은 이 매개 변수에 허용되는 값의 예시입니다.

--reserved-ip-range=10.0.0.0/29

네트워킹 요구사항 전달

일반적으로 조직의 네트워킹 팀 또는 네트워크 관리자, 또는 둘 다 비공개 서비스 액세스 연결을 설정합니다. 이렇게 하면 네트워킹 팀이 다른 Google Cloud 리소스에 사용된 IP 주소 또는 범위와 겹치지 않도록 하여 연결 문제를 일으킬 수 있습니다.

특히 설정 프로세스에서 오류가 발생하는 경우 조직의 네트워크/보안 팀에 문의하여 비공개 서비스 연결을 설정하는 것이 좋습니다. 네트워킹 팀에 문의할 때 다음 정보를 보냅니다.

The Memorystore for Redis instance cannot be created due to the following
error:

"Google private services access is not enabled. Enable privates service access
and try again."

Before an instance can be created, a private service access connection needs to
be established for network <project name: network>. Please refer to the
following Memorystore documentation links for more information on how to create
this connection:

* Networking.
* Establishing a private services access connection.
* Verifying a private services access connection.

비공개 서비스 액세스 연결을 설정하는 데 필요한 권한

비공개 서비스 액세스 연결을 관리하려면 사용자에게 다음 IAM 역할이 있어야 합니다. 필요한 권한이 없으면 권한 부족 오류가 생길 수 있습니다. 일반적인 네트워킹 오류 목록은 네트워킹 오류 시나리오를 참조하세요.

UI 권한

UI에 로컬 및 호스트 프로젝트 네트워크를 나열하는 데 필요한 권한:
  • compute.networks.list
    • 로컬 및 호스트 프로젝트 모두에 필요합니다.
UI에서 비공개 서비스 액세스 연결을 확인하는 데 필요한 권한:
  • compute.networks.list
    • 로컬 및 호스트 프로젝트 모두에 필요합니다.
UI에서 비공개 서비스 액세스 연결을 만드는 데 필요한 권한:
  • serviceusage.services.enable
    • Service Networking API를 사용 설정하는 데 필요합니다.
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

gcloud 권한

비공개 서비스 액세스 연결을 확인하는 데 필요한 gcloud 권한
  • compute.networks.list
    • 로컬 및 호스트 프로젝트 모두에 필요합니다.
비공개 서비스 액세스 연결을 만드는 데 필요한 gcloud 권한
  • serviceusage.services.enable
    • Service Networking API를 사용 설정하는 데 필요합니다.
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

지원되는 네트워크 및 클라이언트 IP 범위

RFC 1918 IP 주소가 포함된 다음 네트워크 또는 인스턴스가 지원됩니다.