Cloud SQL 인증 프록시 Docker 이미지를 사용하여 SQL Server 클라이언트 연결

이 페이지에서는 Linux 또는 Compute Engine Linux 인스턴스를 실행하는 클라이언트 머신에서 Cloud SQL 인증 프록시 Docker 이미지를 사용하여 Cloud SQL 인스턴스에 sqlcmd 클라이언트를 연결하는 방법을 설명합니다.

시작하기 전에

다음을 수행해야 합니다.

Cloud SQL 인증 프록시 Docker 이미지를 사용하여 sqlcmd 클라이언트 연결

Cloud SQL 인증 프록시 Docker 이미지를 사용하여 연결하려면 다음 안내를 따르세요.

  1. Cloud SQL Admin API 사용 설정

    API 사용 설정

  2. Compute Engine 인스턴스를 사용하는 경우 인스턴스를 준비합니다.
    1. Compute Engine 인스턴스 속성을 표시합니다.
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. 인스턴스에서 사용 설정된 범위를 확인합니다.

      범위를 사용하여 인증하려면 다음과 같은 두 가지 범위가 모두 필요합니다.

      • 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 문서를 참조하세요.

    3. Linux 인스턴스에 연결의 안내를 따라 인스턴스에 대한 터미널 연결을 엽니다.
  3. Compute Engine 인스턴스 또는 클라이언트 시스템에 sqlcmd 클라이언트가 아직 설치되지 않은 경우 설치합니다.

    Debian/Ubuntu

    Debian/Ubuntu의 경우 해당 SQL Server 명령줄 도구를 설치합니다.

    CentOS/RHEL

    CentOS/RHEL의 경우 해당 SQL Server 명령줄 도구를 설치합니다.

    openSUSE

    openSUSE의 경우 해당 SQL Server 명령줄 도구를 설치합니다.

    기타 플랫폼

    SQL Server 설치에 대한 방문 페이지SQL Server 다운로드 페이지를 참조하세요.

  4. 필요하면 Docker 클라이언트를 설치합니다.
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER
    

    컨테이너 최적화 Compute Engine 인스턴스를 사용하는 경우에는 Docker 클라이언트가 이미 설치되어 있습니다.

  5. Google Container Registry에서 제공되는 Cloud SQL 인증 프록시 Docker 이미지를 설치합니다.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.2
  6. Compute Engine 인스턴스가 아니라 로컬 머신에서 Cloud SQL 인증 프록시 Docker 이미지를 실행하는 경우 또는 Compute Engine 인스턴스에 적절한 범위가 없는 경우 Google Cloud Platform 서비스 계정을 만듭니다.
    1. Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.

      서비스 계정으로 이동

    2. Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
    3. 서비스 계정 만들기를 클릭합니다.
    4. 서비스 계정 이름 필드에 서비스 계정의 설명이 포함된 이름을 입력합니다.
    5. 서비스 계정 ID를 고유하고 인식할 수 있는 값으로 변경한 후 만들고 계속하기를 클릭합니다.
    6. 역할 선택 필드를 클릭하고 다음 역할 중 하나를 선택합니다.
      • Cloud SQL > Cloud SQL 클라이언트
      • Cloud SQL > Cloud SQL 편집자
      • Cloud SQL > Cloud SQL 관리자
    7. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.
    8. 새 서비스 계정의 작업 메뉴를 클릭한 후 키 관리를 선택합니다.
    9. 키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 클릭합니다.
    10. 키 유형이 JSON인지 확인한 후 만들기를 클릭합니다.

      비공개 키 파일이 머신에 다운로드됩니다. 파일을 다른 위치로 이동할 수 있습니다. 키 파일을 안전하게 보관하세요.

    Cloud SQL 인증 프록시를 시작할 때 키 파일 경로를 'PATH_TO_KEY_FILE'로 제공합니다.

  7. Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  8. 인스턴스를 선택하여 인스턴스 세부정보 페이지를 열고 인스턴스 연결 이름을 복사합니다.

    예를 들면 myproject:us-central1:myinstance입니다.

  9. Cloud SQL 인증 프록시를 시작합니다.

    언어와 환경에 따라 TCP 소켓이나 Unix 소켓을 사용하여 Cloud SQL 인증 프록시를 시작할 수 있습니다. 자바 프로그래밍 언어로 작성된 애플리케이션이나 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.11.2 \
      --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.11.2 //
      --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 메타데이터를 사용하여 연결할 인스턴스를 동적으로 결정할 수 있습니다. 프록시 매개변수 자세히 알아보기

  10. 클라이언트를 시작합니다.

    사용하는 연결 문자열은 TCP 소켓 또는 Docker 중에 무엇을 사용하여 Cloud SQL 인증 프록시를 시작했는지에 따라 다릅니다.

    TCP 소켓

    1. sqlcmd 클라이언트를 시작합니다.
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
      

      TCP 소켓을 사용하여 연결하면 127.0.0.1을 통해 Cloud SQL 인증 프록시에 액세스합니다.

    2. 메시지가 표시되면 비밀번호를 입력합니다.
    3. sqlcmd 프롬프트가 표시됩니다.
도움이 필요하신가요? 프록시 문제를 해결하는 데 도움이 필요하면 Cloud SQL 인증 프록시 연결 문제 해결 또는 Cloud SQL 지원 페이지를 참조하세요.

Cloud SQL 인증 프록시 Docker 이미지를 최신 상태로 유지

Cloud SQL 인증 프록시 Docker 이미지는 특정 버전의 Cloud SQL 인증 프록시를 기반으로 합니다. Cloud SQL 인증 프록시의 새 버전이 출시되면 새 버전의 Cloud SQL 인증 프록시 Docker 이미지를 가져와서 환경을 최신 상태로 유지합니다. Cloud SQL 인증 프록시 GitHub 출시 페이지를 확인하여 현재 버전의 Cloud SQL 인증 프록시를 볼 수 있습니다. Google 그룹스 Cloud SQL 공지 포럼에서 향후 출시될 프록시 정보를 확인할 수 있습니다.

다음 단계