Cloud SQL 데이터베이스에 연결하기 위해서는 구성 방법에 따라 Cloud SQL 인스턴스에는 공개 IP 주소(인터넷을 사용하여 Google Cloud 외부에서 액세스 가능) 또는 비공개 IP 주소(Virtual Private Cloud(VPC) 네트워크를 통해서만 액세스 가능)가 있다.
또한 Cloud SQL는 인스턴스에 연결할 수 있는 사용자를 제어하는 여러 가지 설정을 제공하는 Cloud SQL 인증 프록시을 제공한다.
Cloud SQL 인증 프록시는 새로운 연결 경로를 제공하지 않고, 기존 IP 연결을 사용한다. 비공개 IP를 사용하여 Cloud SQL 인스턴스에 연결하려면 Cloud SQL 인증 프록시가 인스턴스와 동일한 VPC 네트워크에 액세스할 수 있는 리소스에 있어야 한다.
Cloud SQL 인증 프록시는 로컬 환경에서 로컬 클라이언트를 실행하여 작동한다.
애플리케이션은 데이터베이스에서 사용하는 표준 데이터베이스 프로토콜을 사용하여 Cloud SQL 인증 프록시와 통신한다.
Cloud SQL 인증 프록시는 보안 터널을 사용하여 서버에서 실행 중인 컴패니언 프로세스와 통신한다.
Cloud SQL 인증 프록시를 통해 설정된 각 연결은 Cloud SQL 인스턴스에 대한 하나의 연결을 만든다. Cloud SQL 인증 프록시는 연결 풀링을 제공하지 않지만 효율성이 증가하도록 다른 연결 풀링과 페어링될 수 있다.
Cloud SQL 인증 프록시는 모든 포트에서 연결할 수 있지만 포트 3307 Cloud SQL 인스턴스로 나가는 연결만 만든다.
클라이언트 머신에 아웃바운드 방화벽 정책이 있는 경우 Cloud SQL 인스턴스의 IP에서 포트 3307로 나가는 연결이 가능한지 확인한다.
아래의 다이어그램은 Cloud SQL 인증 프록시가 Cloud SQL에 연결되는 방식을 보여준다.
여기 에서 Cloud SQL 인증 프록시 연결에 대한 자세한 가이드 문서를 내용을 참고 할수 있다. (DB 엔진, OS별 설치 방법이 다름)
OS: Mac, DB엔진 : Mysql 기준
### 프록시 다운로드
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
### 실행 권한 설정
chmod +x cloud_sql_proxy
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:<PORT>
https://cloud.google.com/sql/docs/mysql/sql-proxy?authuser=3&_ga=2.230581978.-718089954.1636694180&_gac=1.253276539.1638776008.Cj0KCQiA47GNBhDrARIsAKfZ2rBuPeQhliVkne002cSrkyGn7WqZgstxJ36_UrA0CzBa1ZTMv20XQ3gaArrFEALw_wcB#macos-64-bit
https://cloud.google.com/sql/docs/mysql/connect-admin-proxy?hl=ko