네트워킹

이 페이지에서는 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는 비공개 서비스 액세스 연결 모드 가용성 전에 다이렉트 피어링 연결 모드를 사용했습니다.

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

다이렉트 피어링 연결 모드로 인스턴스를 만들고 --reserved-ip-range gcloud 플래그를 사용하여 IP 주소 범위를 지정하려는 경우 범위 지정에 대한 안내는 특정 IP 주소 범위로 Redis 인스턴스 만들기를 참조하세요. 읽기 복제본이 없는 인스턴스의 경우 필요한 최소 블록 크기는 /29입니다. 읽기 복제본이 있는 인스턴스의 경우 필요한 최소 블록 크기는 /28입니다.

비공개 서비스 액세스

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

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

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

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

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

--reserved-ip-range gcloud 플래그는 비공개 서비스 액세스 연결 모드로 인스턴스를 만들 때 다이렉트 피어링 연결 모드로 인스턴스를 만들 때와 다른 용도로 사용됩니다. 비공개 서비스 액세스 모드로 인스턴스를 만들 때 비공개 서비스 액세스에 할당된 IP 주소 범위가 여러 개인 경우 --reserved-ip-range gcloud 플래그를 사용하여 Redis 인스턴스를 만들 때 사용할 할당 범위를 선택할 수 있습니다. 이 작업을 수행하는 방법은 특정 IP 주소 범위로 Redis 인스턴스 만들기를 참조하세요.

연결 모드 선택

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

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

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

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

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

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

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

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

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

네트워킹 요구사항 전달

일반적으로 조직의 네트워킹 팀 또는 네트워크 관리자, 또는 둘 다 비공개 서비스 액세스 연결을 설정합니다. 이렇게 하면 네트워킹 팀이 다른 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.

읽기 복제본이 사용 설정된 인스턴스의 네트워킹 요구사항

Redis용 Memorystore의 읽기 복제본 기능을 사용하려면 인스턴스의 CIDR IP 주소 범위가 /28 이상이어야 합니다. /27/26과 같이 큰 범위 크기는 유효합니다. 이 기능은 /29와 같은 작은 범위를 지원하지 않습니다.

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

비공개 서비스 액세스 연결을 관리하려면 사용자에게 다음 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 범위

Redis용 Memorystore는 RFC 1918 비공개 IP 주소와 일부 RFC 1918 이외의 비공개 IP 주소를 지원합니다.

  • 유효한 범위는 Redis용 Memorystore에 허용되는 범위 목록을 제공합니다. 하지만 Redis용 Memorystore는 여기에 연결된 유효한 범위 표에 나열된 비공개로 사용된 공개 IP(PUPI) 주소를 지원하지 않습니다.
  • 제한된 범위에는 Redis용 Memorystore 인스턴스를 만드는 데 사용할 수 없는 IP 주소 범위 목록이 표시됩니다.
  • Memorystore 인스턴스에 비공개 서비스 액세스 연결 모드가 사용될 경우 PUPI 범위의 클라이언트가 Memorystore 인스턴스에 연결할 수 없습니다.

Memorystore는 레거시 네트워크, 온프레미스 액세스, 공유 VPC 네트워크를 제외한 VPC 네트워크도 지원합니다.