이 문서에서는 비공개 서비스 액세스가 Cloud SQL에 비공개 IP 연결을 제공하는 방법을 설명하고 IP 주소 할당, 네트워크 및 보안 고려사항, 다중 VPC 연결을 다룹니다.
비공개 서비스 액세스는 VPC 네트워크 와 Cloud SQL 인스턴스가 상주하는 서비스 제공업체 VPC 네트워크 간의 VPC 네트워크 피어링 연결로 구현됩니다. 이 비공개 네트워킹 연결 을 통해 VPC 네트워크의 VM 인스턴스와 Google Cloud 액세스하는 서비스가 비공개 IP 주소를 사용하여 Cloud SQL 인스턴스와 독점적으로 통신할 수 있습니다. VM 인스턴스는 비공개 서비스 액세스를 통해 사용 가능한 서비스에 도달하기 위해 인터넷 액세스 또는 외부 IP 주소가 필요하지 않습니다.
IP 주소
VPC 네트워크에서 비공개 서비스 액세스를 사용하려면 VPC에서 하나 이상의
IP 주소 범위를 사용할 수 있어야 합니다
(IP 주소에 대한 자세한 내용은 IP 주소 참고).
이러한 범위는 Cloud SQL 및 사용하려는 다른 Google Cloud
관리형 서비스에 충분히 커야 합니다. Cloud SQL 및 기타 Google Cloud
서비스에는 할당된 범위의 전용 IP 블록이 필요합니다.
이러한 블록의 최소 크기는 주소 256개 (프리픽스 길이 /24)이지만 권장 크기는 주소 65,536개 (프리픽스 길이 /16)입니다.
여러 리전 또는 여러 데이터베이스 유형에서 인스턴스를 만들려면 각 리전 또는 데이터베이스 유형에 대해 /24 이상의 IP 주소 범위를 사용할 수 있어야 합니다. 여기에는
Filestore 또는 Memorystore와 같은 다른 애플리케이션이 포함됩니다.
비공개 서비스 액세스를 설정할 때 기존 범위를 선택하거나 새 범위를 할당할 수 있습니다. 다음 섹션에 설명된 대로 범위가 자동으로 할당되도록 하면 Google Cloud `default-ip-range` Google Cloud default-ip-range라는 이름으로 프리픽스 길이 /24
의 범위가 할당됩니다.
별도의 CIDR 범위를 사용해야 하는 경우
Cloud SQL은 /24 CIDR 범위를 IP 범위 단위로 사용하므로 별도의 /24 범위가 필요한 몇 가지 조건이 있습니다.
- 리전 분리: 서로 다른 두 리전에 Cloud SQL 인스턴스를 두 개 만드는 경우 별도의 /24 CIDR 범위를 두 개 이상 할당해야 합니다. 각 IP 범위 단위는 단일 리전 내의 Cloud SQL 인스턴스에만 사용할 수 있습니다.
- 강제 네트워크 아키텍처 분리:
--enforce-new-sql-network-architecture플래그(또는 이에 상응하는 API 필드)를 사용하여 만든 인스턴스는 이전 네트워크 아키텍처를 사용하는 동일한 프로젝트의 인스턴스와 동일한 IP 범위 단위를 공유할 수 없습니다. 새 네트워크 아키텍처로 만든 인스턴스에는 모든 리전에서 전용 /24 범위가 필요합니다.
비공개 서비스 액세스 예시
이 예시에서 VPC 네트워크는 서비스 Google Cloud 에 주소
범위 10.240.0.0/16를 할당하고 해당 범위를 사용하여 비공개
연결을 설정했습니다. 각 Google Cloud 서비스 (예를 들어,
Cloud SQL)는 할당된 블록에서 서브넷을 만들어 Cloud SQL 인스턴스와 같은 지정된 리전에서 새
리소스를 프로비저닝합니다.
이 다이어그램은 비공개 서비스 액세스 구성의 다음 측면을 보여줍니다.
- 비공개 연결에
10.240.0.0/16할당 범위가 지정되었습니다. 서비스는 이 할당을 Google Cloud 사용하여 새 리소스가 프로비저닝되는 서브넷을 만들 수 있습니다. - 비공개 연결의 Google Cloud 서비스 측면에서 Google Cloud 고객의 프로젝트를 만듭니다. 이 프로젝트는 격리되어 있습니다. 즉, 다른 고객이 이 프로젝트를 공유할 수 없으며 고객이 프로비저닝한 리소스에 대한 요금만 해당 고객에게 청구됩니다.
- 각 Google Cloud 서비스는 리소스를 프로비저닝할 서브넷을 생성합니다.
서브넷의 IP 주소 범위는 일반적으로 서비스가 선택하는
/24클래스 없는 도메인 간 라우팅 (CIDR) 블록이며 할당된 IP 주소 범위에 속합니다. 서비스 프로듀서의 서브넷은 수정할 수 없습니다. 서비스는 이전에 해당 서비스에서 만든 기존 리전 서브넷에 새 리소스를 프로비저닝합니다. 서브넷이 가득 차면 서비스는 동일한 리전에 새 서브넷을 만듭니다. - 고객 네트워크의 VM 인스턴스는 서비스가 지원되는 모든 리전의 서비스 리소스에 액세스할 수 있습니다. 일부 서비스는 리전 간 통신을 지원하지 않을 수도 있습니다. 자세한 내용은 관련 서비스의 문서를 참조하세요.
- VM 인스턴스가 다른 리전의 리소스와 통신하는 리전 간 트래픽에는 여전히 아웃바운드 데이터 전송 비용이 적용됩니다.
- Cloud SQL 인스턴스에는 IP 주소
10.240.0.2가 할당됩니다. 고객 VPC 네트워크에서 대상이10.240.0.2인 요청은 서비스 프로듀서의 네트워크를 통해 비공개 연결에 라우팅됩니다. 요청이 서비스 네트워크에 도달하면 서비스 네트워크에는 요청을 올바른 리소스로 전달하는 경로가 포함됩니다. - VPC 네트워크 간의 트래픽은 공개 인터넷을 통하지 않고 Google Cloud 네트워크 내에서 내부적으로 이동합니다.
네트워크 고려사항
Cloud SQL은 각 리전에 대해 비공개 서비스 액세스 IP 범위에서 /24 서브넷을 할당합니다. 예를 들어 SQL Server 인스턴스를 리전 2개에 배치하려면 할당된 IP 주소 범위에 /24 크기의 사용 가능한 서브넷이 최소 2개 이상 포함되어야 합니다.
비공개 IP 주소를 사용하는 Cloud SQL 인스턴스에 대한 연결은 RFC 1918 주소 범위에서 자동으로 승인됩니다. 이에 따라 모든 비공개 클라이언트가 Cloud SQL 인증 프록시를 통하지 않고 데이터베이스에 액세스할 수 있습니다.
Cloud SQL은 기본적으로 VPC에서 RFC 1918 이외의 서브넷 경로를 학습하지 않습니다. RFC 1918 이외의 경로를 내보내려면 네트워크 피어링을 Cloud SQL로 업데이트해야 합니다.
보안 고려사항
비공개 서비스 액세스를 통한 트래픽에는 특정 수준의 암호화가 제공됩니다. 자세한 내용은 Google Cloud 가상 네트워크 암호화 및 인증을 참조하세요.
Cloud SQL 인증 프록시는 비공개 서비스 액세스를 사용하여 연결하도록 구성할 수 있습니다. 이 프록시는 IAM 사용자 인증 정보를 사용한 인증과 순환식 SSL/TLS 인증서를 사용한 엔드 투 엔드 암호화를 제공합니다.
보안 요구사항에 따라 개발자가 관리하는 자체 관리형 SSL/TLS 인증서가 필요한 경우 다음 안내를 참조하세요. SSL/TLS 구성
비공개 IP 주소를 사용하여 각 인스턴스에 하나의 VPC 네트워크를 만들면 '기본' VPC 네트워크에 모든 인스턴스를 넣는 것보다 네트워크 격리가 향상됩니다.
다중 VPC 연결
Cloud SQL은 비공개 서비스 액세스를 통해 비공개 IP 주소를 지원합니다. Cloud SQL 인스턴스를 만들 때 Cloud SQL은 Cloud SQL VPC라고 하는 자체 VPC 네트워크 내에 인스턴스를 만듭니다. 비공개 IP를 사용 설정하려면 피어링 연결을 설정해야 합니다 Cloud SQL VPC와 VPC 네트워크 간에 이렇게 하면 VPC 네트워크의 리소스가 Cloud SQL VPC 네트워크에 있는 Cloud SQL 리소스의 내부 IP 주소에 액세스할 수 있습니다.
Cloud SQL은 VPC 네트워크 피어링을 사용하여 비공개 서비스 액세스를 내부적으로 구현하므로 같은 프로젝트나 조직에 속하는지 여부에 관계없이 내부 IP 주소를 VPC 네트워크 두 개에 연결할 수 있습니다. 하지만 VPC 네트워크 피어링은 전환되지 않으므로 다이렉트 피어링된 두 VPC 간의 경로만 브로드캐스트합니다. 추가 VPC가 있으면 원래 VPC로 설정된 연결을 사용하여 Cloud SQL 리소스에 액세스할 수 없습니다.
이 제한을 완화하고 비공개 IP 주소를 사용하여 Cloud SQL 인스턴스를 여러 VPC에 연결하려면 다음 연결 옵션을 사용하면 됩니다.
- 커스텀 공지 경로를 사용하여 연결
- 중간 프록시 (SOCKS5)를 사용하여 연결
- Cloud SQL 인증 프록시를 서비스로 사용하여 연결
여러 VPC를 연결하는 방법에 대한 자세한 내용은 인스턴스를 여러 VPC 네트워크에 연결을 참조하세요.
다음 단계
- IP 주소에 대해 자세히 알아보기
- Cloud VPN 자세히 알아보기
- VPC 네트워크 자세히 알아보기
- VPC 네트워크 피어링 자세히 알아보기
- 공유 VPC 자세히 알아보기