이 페이지에서는 Linux 또는 Compute Engine Linux 인스턴스를 실행하는 클라이언트 머신에서 Cloud SQL 인증 프록시 Docker 이미지를 사용하여 Cloud SQL 인스턴스에 sqlcmd 클라이언트를 연결하는 방법을 설명합니다.
시작하기 전에
다음을 수행해야 합니다.
- gcloud CLI를 설치합니다. 자세히 알아보기.
- gcloud CLI를 승인합니다. 자세히 알아보기.
- gcloud CLI의 기본 프로젝트를 설정합니다. 자세히 알아보기.
- Cloud SQL 인스턴스에서 데이터베이스 사용자를 구성합니다. 자세히 알아보기.
Cloud SQL 인증 프록시 Docker 이미지를 사용하여 sqlcmd 클라이언트 연결
Cloud SQL 인증 프록시 Docker 이미지를 사용하여 연결하려면 다음 안내를 따르세요.
-
Enable the Cloud SQL Admin API.
- Compute Engine 인스턴스를 사용하는 경우 인스턴스를 준비합니다.
-
Compute Engine 인스턴스 속성을 표시합니다.
gcloud compute instances describe [GCE_INSTANCE_NAME]
- 인스턴스에서 사용 설정된 범위를 확인합니다.
범위를 사용하여 인증하려면 다음과 같은 두 가지 범위가 모두 필요합니다.
https://www.googleapis.com/auth/sqlservice.admin
https://www.googleapis.com/auth/devstorage.read_write
또는
https://www.googleapis.com/auth/cloud-platform
범위로 모든 Google Cloud Platform API를 사용 설정할 수 있습니다.Compute Engine 인스턴스에 적절한 범위가 없으면 범위를 포함하도록 인스턴스를 업데이트할 수 있습니다. 자세한 내용은 Compute Engine 문서를 참조하세요.
- Linux 인스턴스에 연결의 안내를 따라 인스턴스에 대한 터미널 연결을 엽니다.
-
Compute Engine 인스턴스 속성을 표시합니다.
- Compute Engine 인스턴스 또는 클라이언트 시스템에 sqlcmd 클라이언트가 아직 설치되지 않은 경우 설치합니다.
Debian/Ubuntu
Debian/Ubuntu의 경우 해당 SQL Server 명령줄 도구를 설치합니다.
CentOS/RHEL
CentOS/RHEL의 경우 해당 SQL Server 명령줄 도구를 설치합니다.
openSUSE
openSUSE의 경우 해당 SQL Server 명령줄 도구를 설치합니다.
기타 플랫폼
SQL Server 설치에 대한 방문 페이지와 SQL Server 다운로드 페이지를 참조하세요.
-
필요하면 Docker 클라이언트를 설치합니다.
curl https://get.docker.com | sh sudo usermod -aG docker $USER
컨테이너 최적화 Compute Engine 인스턴스를 사용하는 경우에는 Docker 클라이언트가 이미 설치되어 있습니다.
-
Google Container Registry에서 제공되는 Cloud SQL 인증 프록시 Docker 이미지를 설치합니다.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.1
- Compute Engine 인스턴스가 아니라 로컬 머신에서 Cloud SQL 인증 프록시 Docker 이미지를 실행하는 경우 또는 Compute Engine 인스턴스에 적절한 범위가 없는 경우 Google Cloud Platform 서비스 계정을 만듭니다.
- Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
- Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
- 서비스 계정 만들기를 클릭합니다.
- 서비스 계정 이름 필드에 서비스 계정의 설명이 포함된 이름을 입력합니다.
- 서비스 계정 ID를 고유하고 인식할 수 있는 값으로 변경한 후 만들고 계속하기를 클릭합니다.
-
역할 선택 필드를 클릭하고 다음 역할 중 하나를 선택합니다.
- Cloud SQL > Cloud SQL 클라이언트
- Cloud SQL > Cloud SQL 편집자
- Cloud SQL > Cloud SQL 관리자
- 완료를 클릭하여 서비스 계정 만들기를 마칩니다.
- 새 서비스 계정의 작업 메뉴를 클릭한 후 키 관리를 선택합니다.
- 키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 클릭합니다.
-
키 유형이 JSON인지 확인한 후 만들기를 클릭합니다.
비공개 키 파일이 머신에 다운로드됩니다. 파일을 다른 위치로 이동할 수 있습니다. 키 파일을 안전하게 보관하세요.
Cloud SQL 인증 프록시를 시작할 때 키 파일 경로를 'PATH_TO_KEY_FILE'로 제공합니다.
- Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지로 이동합니다.
-
인스턴스를 선택하여 인스턴스 세부정보 페이지를 열고 인스턴스 연결 이름을 복사합니다.
예를 들면
myproject:us-central1:myinstance
입니다. -
Cloud SQL 인증 프록시를 시작합니다.
언어와 환경에 따라 TCP 소켓이나 Unix 소켓을 사용하여 Cloud SQL 인증 프록시를 시작할 수 있습니다. Java 프로그래밍 언어로 작성된 애플리케이션이나 Windows 환경에서는 Unix 소켓이 지원되지 않습니다.
TCP 소켓
docker run -d \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ -p 127.0.0.1:1433:1433 \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.1 \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Compute Engine 인스턴스에서 제공되는 사용자 인증 정보를 사용하는 경우에는
--credentials-file
매개변수와-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
행을 포함하지 마세요.Cloud SQL 인증 프록시가 로컬 호스트 외부에 노출되지 않도록 항상 -p에
127.0.0.1
프리픽스를 지정합니다. 인스턴스 매개변수의 '0.0.0.0'은 Docker 컨테이너 외부에서 포트에 액세스할 수 있도록 하는 데 필요합니다.Unix 소켓
docker run -d -v /cloudsql:/cloudsql \ -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \ gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.1 // --unix-socket=/cloudsql \ --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
Compute Engine 인스턴스에서 제공되는 사용자 인증 정보를 사용하는 경우에는
--credentials-file
매개변수와-v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json
행을 포함하지 마세요.컨테이너 최적화 이미지를 사용하는 경우
/cloudsql
대신 쓰기 가능한 디렉터리를 사용합니다. 예를 들면 다음과 같습니다.-v /mnt/stateful_partition/cloudsql:/cloudsql
여러 개의 인스턴스를 쉼표로 구분하여 지정할 수 있습니다. 또한 Compute Engine 메타데이터를 사용하여 연결할 인스턴스를 동적으로 결정할 수 있습니다. 프록시 매개변수 자세히 알아보기
- 클라이언트를 시작합니다.
사용하는 연결 문자열은 TCP 소켓 또는 Docker 중에 무엇을 사용하여 Cloud SQL 인증 프록시를 시작했는지에 따라 다릅니다.
TCP 소켓
- sqlcmd 클라이언트를 시작합니다.
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
TCP 소켓을 사용하여 연결하면
127.0.0.1
을 통해 Cloud SQL 인증 프록시에 액세스합니다. - 메시지가 표시되면 비밀번호를 입력합니다.
- sqlcmd 프롬프트가 표시됩니다.
- sqlcmd 클라이언트를 시작합니다.
Cloud SQL 인증 프록시 Docker 이미지를 최신 상태로 유지
Cloud SQL 인증 프록시 Docker 이미지는 특정 버전의 Cloud SQL 인증 프록시를 기반으로 합니다. Cloud SQL 인증 프록시의 새 버전이 출시되면 새 버전의 Cloud SQL 인증 프록시 Docker 이미지를 가져와서 환경을 최신 상태로 유지합니다. Cloud SQL 인증 프록시 GitHub 출시 페이지를 확인하여 현재 버전의 Cloud SQL 인증 프록시를 볼 수 있습니다. Google 그룹스 Cloud SQL 공지 포럼에서 향후 출시될 프록시 정보를 확인할 수 있습니다.
다음 단계
- Cloud SQL 인증 프록시 자세히 알아보기
- Cloud SQL 인증 프록시의 연결 문제 해결 도움말 보기
- 사용자 및 데이터베이스 만들기
- 애플리케이션에서 인스턴스에 연결하기 위한 옵션 알아보기
- Docker 알아보기
- Google Container Registry 알아보기
- 지원 옵션 알아보기