연결 개요

이 페이지에서는 Cloud SQL 인스턴스에 연결하기 위한 옵션을 간략히 설명합니다.

소개

Cloud SQL 인스턴스에 연결할 때는 Cloud SQL 인증 프록시를 사용하는 것이 좋습니다. Cloud SQL 인증 프록시는 다음 작업을 수행합니다.

  • 공개 및 비공개 IP 엔드포인트와 연동
  • 사용자 또는 서비스 계정의 사용자 인증 정보를 사용한 연결 검증
  • Cloud SQL 인스턴스에 대해 승인된 SSL/TLS 레이어에서 연결을 래핑

일부 Google Cloud 서비스 및 애플리케이션은 Cloud SQL 인증 프록시를 사용하여 다음을 포함해 암호화 및 승인을 사용하는 공개 IP 경로에 대한 연결을 제공합니다.

비공개 IP 경로의 경우 서비스와 애플리케이션이 서버리스 VPC 액세스를 통해 인스턴스에 직접 연결됩니다.

GKE에서 실행되는 애플리케이션은 Cloud SQL 인증 프록시를 사용하여 연결될 수도 있습니다.

기본적인 사용 방법은 빠른 시작: Cloud SQL 인증 프록시 사용을 참조하세요.

개요

Cloud SQL 인스턴스에 연결하는 방법을 고려할 때는 다음을 포함한 여러 선택사항에 유의해야 합니다.

  • 인터넷에서 Cloud SQL 인스턴스에 액세스하거나 Virtual Private Cloud(VPC) 네트워크 내에서 비공개로 유지하고 싶으신가요?
  • 자체 연결 코드를 작성할 계획인가요? 아니면 Cloud SQL 인증 프록시 또는 psql 클라이언트와 같이 일반에 공개된 도구를 사용해 연결할 것인가요?
  • SSL/TLS를 통한 암호화를 요구하거나 암호화되지 않은 트래픽을 허용하고 싶으신가요?

아래 섹션에서는 Cloud SQL에서 제공하는 데이터베이스 연결, 승인, 인증 방법을 설명합니다.

  • 연결 방법 - 인스턴스에 연결하는 데 사용할 네트워크 경로:
    • VPC 전용(비공개) 내부 IP 주소
    • 인터넷 액세스가 가능한(공개) 외부 IP 주소

  • 승인 방법 - Cloud SQL 인스턴스에 연결하도록 승인 및 허용되는 연결:
    • Cloud SQL 인증 프록시 및 Cloud SQL 언어 커넥터 - IAM을 기준으로 액세스를 제공합니다.
    • 자체 관리형 SSL/TLS 인증서 - 특정 공개 키를 기반으로 한 연결만 허용합니다.
    • 승인된 네트워크 - 연결이 허용된 IP 주소 목록입니다.

  • 인증 방법 - 데이터베이스에 로그인하는 방식입니다.
    • 기본 데이터베이스 인증 - 데이터베이스 엔진에 설정된 사용자 이름/비밀번호로 로그인합니다.
    • IAM 데이터베이스 인증 - 이메일 또는 oauth2 토큰을 비밀번호로 로그인합니다.

아래 정보를 사용하여 가장 적합한 연결, 승인, 인증 옵션을 결정하세요.

시작하기 전에

애플리케이션에 액세스 권한을 부여하더라도 데이터베이스 사용자 계정이 인스턴스에 자동으로 연결되는 것은 아닙니다. 인스턴스에 연결하려면 연결할 수 있는 데이터베이스 사용자 계정이 있어야 합니다. 즉, 새 인스턴스의 경우 기본 사용자 계정을 구성해 놓아야 합니다. 자세히 알아보기

연결 옵션

비공개 IP

비공개 IP는 Virtual Private Cloud(VPC)에서 액세스할 수 있는 IPv4 또는 IPv6 주소입니다.

보안 고려사항

이 주소를 사용하여 VPC 액세스 권한이 있는 다른 리소스에서 연결할 수 있습니다. 비공개 IP를 통한 연결은 일반적으로 인터넷을 거칠 필요가 없으므로 지연 시간이 짧고 공격 벡터가 제한됩니다. 원할 경우 모든 연결에 Cloud SQL 프록시 또는 자체 관리 SSL 인증서를 사용해야 할 수 있습니다.

VPC에 대한 액세스 권한이 있는 리소스의 클라이언트에서 연결할 때는 비공개 IP로 인스턴스를 구성하는 것이 좋습니다. 비공개 IP를 사용할 수 있는 리소스에 대한 자세한 내용은 비공개 IP 요구사항을 참조하세요.

자세히 알아보기

Cloud SQL에서 비공개 IP를 사용하는 방법을 자세히 알아보세요.

인스턴스에 비공개 IP를 추가하는 방법은 비공개 IP 연결 구성[configure-private-ip]을 참조하세요.

공개 IP

공개 IP는 공개 인터넷에서 외부적으로 사용 가능한 IPv4 또는 IPv6 주소입니다. 이 주소는 집이나 사무실의 장소를 포함하여 Google 네트워크의 내부 및 외부에 있는 모든 기기에서 연결을 수신할 수 있습니다.

보안 고려사항

인스턴스를 안전하게 유지하려면 공개 IP를 사용하는 Cloud SQL 인스턴스와의 모든 연결에 Cloud SQL 인증 프록시 또는 승인된 네트워크를 사용할 수 있는 권한이 있어야 합니다.

VPC의 요구사항을 충족하지 않는 클라이언트에서 연결할 때는 공개 IP로 인스턴스를 구성하는 것이 가장 좋습니다.

자세히 알아보기

인스턴스에 공개 IP를 추가하는 방법은 공개 IP 연결 구성을 참조하세요.

승인 옵션

Cloud SQL 인증 프록시

보안 고려사항

Cloud SQL 인증 프록시를 사용하면 Identity and Access Management(IAM) 권한을 사용하여 연결을 승인하고 보호할 수 있습니다. Cloud SQL 인증 프록시는 사용자 또는 서비스 계정에 대해 사용자 인증 정보를 사용하고 Cloud SQL 인스턴스에 대해 승인된 SSL/TLS 레이어로 연결을 래핑하여 검증을 수행합니다. Cloud SQL 인증 프록시 작동 방법에 대한 자세한 내용은 Cloud SQL 인증 프록시 정보를 참조하세요.

Cloud SQL 인증 프록시는 Cloud SQL 인스턴스에 대한 연결을 인증하는 가장 안전한 방법이므로 이를 사용하는 것이 좋습니다.

Cloud SQL 인증 프록시는 실행 가능한 바이너리로 배포되는 오픈소스 라이브러리입니다. Cloud SQL 인증 프록시는 수신 연결을 대기하고 SSL/TLS로 래핑한 후 Cloud SQL 인스턴스로 전달하는 중개 서버 역할을 합니다.

또한 일부 언어에는 클라이언트 라이브러리를 사용하는 옵션이 있습니다. 이 라이브러리를 언어 환경에서 직접 사용할 수 있습니다. 외부 프로세스 없이도 Cloud SQL 인증 프록시와 동일한 인증을 제공합니다. 시작하려면 다음 페이지를 참조하세요.

마지막으로 Cloud Run, Cloud Functions, App Engine과 같은 일부 환경에서는 Cloud SQL 인증 프록시를 사용하여 연결하는 메커니즘을 제공합니다. 이러한 환경에서 연결하는 방법은 다음 중 하나를 참조하세요.

자체 관리형 SSL/TLS 인증서

Cloud SQL 인증 프록시를 사용하여 연결을 암호화하는 대신 Cloud SQL 인스턴스에 해당하는 클라이언트/서버 SSL/TLS 인증서를 설정할 수 있습니다. 이 인증서는 클라이언트 및 서버의 유효성을 상호 검증하고 둘 사이의 연결을 암호화하는 데 사용됩니다.

Cloud SQL 인증 프록시를 사용하지 않을 때 자체 관리형 SSL/TLS 인증서를 사용하여 암호화를 제공하는 것이 좋습니다. 이렇게 하지 않으면 데이터가 안전하지 않은 방식으로 전송되므로 제3자가 가로채거나 들여다볼 수 있습니다.

자체 관리형 SSL/TLS 인증서를 시작하려면 SSL/TLS 인증서로 승인을 참조하세요.

승인된 네트워크

Cloud SQL 인증 프록시를 사용하지 않는 경우 인스턴스의 공개 IP 주소와의 연결은 승인된 네트워크에서 시작되는 연결인 경우에만 허용됩니다. 승인된 네트워크는 사용자가 연결할 권한을 갖도록 지정한 IP 주소 또는 범위입니다.

승인된 네트워크를 시작하려면 승인된 네트워크로 승인을 참조하세요.

데이터베이스 연결 관리

데이터베이스 연결은 서버 및 연결 애플리케이션의 리소스를 사용합니다. 항상 연결 관리 권장사항을 참고하여 애플리케이션의 사용 공간을 최소화하고 Cloud SQL 연결 한도를 초과할 가능성을 줄이세요. 자세한 내용은 데이터베이스 연결 관리를 참조하세요.

인증 옵션

인증은 사용자의 ID를 확인하여 액세스 제어를 제공합니다. 최종 사용자의 경우 사용자가 사용자 인증 정보(사용자 이름 및 비밀번호)를 입력하면 인증이 수행됩니다. 애플리케이션의 경우, 사용자 인증 정보가 서비스 계정에 할당되어 있으면 인증이 수행됩니다.

Cloud SQL은 사용자 이름과 비밀번호를 사용하여 인증하는 데이터베이스의 기본 인증을 사용합니다. 자세한 내용은 PostgreSQL 사용자 만들기 및 관리를 참조하세요.

또한 Cloud SQL은 IAM과 통합되어 사용자 및 서비스 계정의 데이터베이스 액세스를 더 효과적으로 모니터링하고 관리할 수 있습니다. 이 기능을 IAM 데이터베이스 인증이라고 합니다.

IAM 데이터베이스 인증 자세히 알아보기

IAM 데이터베이스 인증을 사용하는 사용자를 만들고 관리하는 방법을 자세히 알아보세요.

연결 도구

다음 표에는 Cloud SQL에 연결하기 위한 옵션이 포함되어 있습니다.

연결 옵션 추가 정보
Cloud SQL 인증 프록시
gcloud 명령줄 도구
Cloud SQL 언어 커넥터
Cloud Shell
Apps Script
타사 데이터베이스 관리 도구를 사용하여 연결
pgAdmin
Toad Edge
Blendo

동적으로 할당된 IP 주소와 애플리케이션 연결

일부 애플리케이션은 동적으로 할당된 IP 주소 또는 임시 IP 주소를 사용하여 Cloud SQL 인스턴스에 연결해야 합니다. 특히 Platform as a Service(Paas) 애플리케이션의 경우가 여기에 해당됩니다.

이러한 경우 Cloud SQL 인증 프록시를 사용해야 합니다.

코드 샘플

Unix 또는 TCP 소켓에 연결할 수 있게 해주는 모든 언어에서 Cloud SQL 인증 프록시에 연결할 수 있습니다. 다음은 애플리케이션에서 어떻게 함께 작동하는지 이해하는 데 도움이 되는 GitHub 전체 예시의 몇 가지 코드 스니펫입니다.

문제 해결하기

연결 문제가 발생하면 다음 페이지를 참조하여 디버깅 또는 알려진 문제의 해결책을 찾아보세요.

다음 단계