Cloud SQL에 연결: 공개 IP 및 승인된 네트워크

1. 소개

최종 업데이트: 2020년 5월 4일

연결에 대해 생각하기

다양한 유형의 애플리케이션과 프레임워크가 있습니다. 이 Codelab에서는 어디서나 Cloud SQL에 연결하는 방법을 다룹니다. 연결 기능은 연결이 명시적으로 허용된 IP를 승인하면 사용 설정됩니다. 이 방법은 Cloud SQL 데이터베이스에 연결하는 데 가장 안전하지 않은 옵션이지만 설정하고 사용하기가 가장 쉽습니다.

프로덕션 단계에서 이 작업을 수행해야 하는 경우도 있지만, 그렇게 하지 않아도 된다면 더 안전한 대안 (예: Cloud SQL 프록시 사용)을 선택해야 합니다. 이 설정은 개발 및 테스트에 가장 적합합니다.

빌드할 항목

이 Codelab은 매우 미니멀합니다. 애플리케이션 자체에 대해 너무 깊이 생각하지 않고 연결 부품의 요점을 자세히 설명하는 것입니다. 완벽한 환경에서 Cloud SQL에 연결하는 것은 SQL 데이터베이스의 다른 인스턴스에 연결하는 것과 같으므로 이 Codelab에서 만든 내용을 모든 프로덕션 애플리케이션에 적용할 수 있어야 합니다.

안내에는 GCP 콘솔에서 작업을 수행하는 방법을 단계별로 안내하고 CLI 또는 자동화에서 사용할 수 있는 gcloud 명령어도 제공합니다.

개별 단계는 다음과 같습니다.

  • Cloud SQL 인스턴스를 만들고 (이 튜토리얼에서는 Postgres를 사용하지만 MySQL 또는 SQL Server에서도 유사하게 작동함) 연결할 수 있는 특정 IP를 승인합니다.

필요한 항목

  • API를 사용 설정하고 서비스를 만들 권한이 있는 GCP 계정
  • 연결 확인을 위해 설치된 Postgres 클라이언트 (또는 Postgres 대신 MySQL을 사용하려는 경우 MySQL 클라이언트)

2. Cloud SQL 인스턴스 만들기

Cloud SQL은 관리형 관계형 데이터베이스 제품입니다. MySQL, PostgreSQL, SQL Server를 지원합니다. 이 Codelab에서는 Postgres 데이터베이스를 만들지만 이 세 가지 모두에 대한 안내는 비슷합니다.

콘솔에서

Cloud SQL 페이지로 이동하고 241836b315e11bf5.png 버튼을 클릭합니다.

앞서 언급했듯이 이 Codelab의 대부분은 모든 SQL 버전에 일반적이지만 이 Codelab에서는 PostgreSQL을 선택합니다.

  1. 인스턴스 ID 제공
  2. 현재 위치와 가까운 리전을 선택하세요.
  3. 기본 사용자의 비밀번호를 입력합니다.사용자 이름은 선택한 DB의 기본값입니다 (예: MySQL의 경우 root, PostgreSQL의 경우 postgres).
  4. 아래로 스크롤하여 show configuration options를 클릭합니다.
  5. Connectivity 섹션 펼치기
  6. Public IP이(가) 선택되어 있고 Private IP이(가) 선택 해제되어 있는지 확인합니다.
  7. 883b32ec2734de01.png 버튼을 클릭합니다.
  8. 연결 중인 IP 주소를 가져옵니다. 가장 쉬운 방법은 Google에서 '내 IP는 무엇인가요?'를 검색하는 것입니다. 검색 결과에 공개 IP가 포함되어 있습니다.
  1. 네트워크 필드에 IP 사양을 입력하고 원하는 경우 이름을 지정한 다음 New Network 상자에서 완료를 클릭합니다.
  2. 아래로 스크롤하여 만들기를 클릭합니다.

일반적으로 인스턴스가 시작되는 데 몇 분 정도 걸립니다.

인스턴스 생성이 완료되면 목록에서 인스턴스를 클릭하고 개요 페이지의 Connect to this instance 헤더 아래에 나열된 public IP address를 복사합니다. 인스턴스가 완전히 인스턴스화되기 전에 세부정보를 클릭해도 인스턴스가 완전히 만들어질 때까지 존재하지 않습니다.

gcloud 사용

먼저 Cloud SQL 인스턴스에 연결하도록 승인하려는 IP 주소를 가져와야 합니다. 가장 쉬운 방법은 브라우저를 열고 'What's my IP'를 검색하는 것입니다 검색결과에 공개 IP 주소가 표시됩니다. 실행하는 위치에서 브라우저를 열 수 없다면 dig와 같은 유틸리티를 사용할 수 있습니다.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

현재 위치와 가장 가까운 Cloud SQL 인스턴스의 리전을 지정해야 합니다. 다음을 실행하여 리전 목록을 볼 수 있습니다.

gcloud sql tiers list

각 등급은 특정 리전에서만 사용할 수 있습니다. 이 튜토리얼의 gcloud 부분에서는 마이크로 인스턴스를 만들기만 하므로 특별히 실행하여 이 등급의 사용 가능한 리전을 찾을 수 있습니다 (grep가 설치되어 있는 경우).

gcloud sql tiers list | grep db-f1-micro

인스턴스 자체를 만드는 명령어는 다음과 같습니다. <AUTHORIZED_IP>는 브라우저 또는 dig에서 가져온 IP로, <REGION>은 가까운 IP 주소 및 루트 사용자 ‘postgres’의 비밀번호로 교체해야 합니다.

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

완료하는 데 몇 분 정도 걸립니다.

완료되면 CLI의 출력에 인스턴스의 PRIMARY_ADDRESS가 나열됩니다. 다음 단계를 위해 이 주소를 복사합니다.

3. 연결 및 마무리 테스트

입력한 IP 주소의 머신에서 인스턴스가 올바르게 설정되었는지 확인하려면 명령줄에서 다음을 실행합니다.

psql "host=<이전 단계에서 복사된 IP> port=5432 sslmode=disable user=postgres"

그런 다음 Cloud SQL 인스턴스를 만들 때 설정한 기본 사용자 비밀번호를 지정합니다.

축하합니다. 모든 것이 잘 진행되었다면 Postgres 프롬프트가 표시되고 데이터베이스에 대해 명령어를 실행할 수 있습니다.

다음 단계

다음 Codelab을 확인하세요.

참조 문서