20180219 재미그래밍

구글 클라우드 플랫폼

학습목표

  • 구글 클라우드 플랫폼의 이해
  1. 프로젝트를 생성하기

  2. Compute Engine - VM 생성하기

  3. Cloud SQL을 생성하기

  4. Cloud SQL을 VM과 연결하기

프로젝트를 생성하기

프로젝트는 VM, 네트워크 자원, SQL 등의 클라우드 자원을 묶어서 관리하는 논리적인 집합이다. 여러 사람이 하나의 클라우드를 사용할 때 이렇게 프로젝트를 만들어서 프로젝트별로 과금하거나 시스템이나 팀별로 프로젝트를 나눠서 정의하면 관리하기가 쉽다.

Compute Engine - VM 생성하기

구글 클라우드에서는 Cloud SQL이라는 이름으로 매니지드 서비스를 제공한다. Cloud SQL은 아마존의 RDS와 같다고 보면 된다. 자동 백업, 확장을 위한 읽기 전용 노드 등 필수적인 기능을 제공하고 있다.

  • 주의할점

    • 먼저 영역은 VM이 생성되는 장소라고 생각하면 된다. 지역이 가장 큰 개념으로 대륙을 정의한다. 미국 중부, 서부, 아시아, 유럽 등이 지역에 해당한다. 각 지역에는 여러 개의 데이터 센터가 있는데, 이 데이터센터를 영역으로 생각하면 된다.

    • [ID 및 API 액세스] 항목에서 [액세스 범위]를 “모든 Cloud API에 대한 전체 액세스 허용”으로 설정해줘야 한다. 이 부분은 구글 클라우드가 제공하는 API나 Cloud SQL, BigQuery, Vision API 등의 다른 서비스를 호출할 수 있는 권한을 이 VM에 주는 것이다.

    • [네트워킹] 항목의 [외부 IP]를 “임시”로 설정한다. 외부 IP는 지정하지 않거나, 임시, 고정 주소, 이렇게 3가지를 선택할 수 있다. 지정하지 않을 경우 이 VM에는 외부 IP가 주어지지 않기 때문에 인터넷에서 이 VM에 직접 접근 할 수 없다.

Cloud SQL을 생성하기

  • 지역은 VM을 생성할 때와 똑같이 설정한다.

  • Google Cloud Platform Console의 IAM 및 관리 프로젝트 페이지로 이동하여 Cloud SQL 인스턴스가 포함 된 프로젝트를 선택하고 권한을 설정해주어야 한다.

Cloud SQL을 VM과 연결하기

sudo apt-get update
sudo apt-get install postgresql-client
  • Compute Engine 인스턴스에 psql 클라이언트를 설치한다.
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
  • 프록시를 다운받는다.
chmod +x cloud_sql_proxy
  • 프록시 실행 파일을 만든다.

Cloud SQL 인스턴스 정보 페이지에서 인스턴스 연결 이름을 복사하고

./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432
  • 의 공간에 붙여넣는다.
  • 지정된 포트가 로컬 데이터베이스 서버와 같이 사용 중이면 안된다.
psql "host=127.0.0.1 sslmode=disable dbname=<DB_NAME> user=<USER_NAME>"
  • sslmode 매개 변수가 disable로 설정된 경우에도 프록시는 암호화 된 연결을 제공한다. TCP 소켓을 사용하여 연결하면 프록시는 127.0.0.1을 통해 액세스된다.