Cloud Run에서 PostgreSQL용 Cloud SQL에 연결
Google Cloud 콘솔과 클라이언트 애플리케이션을 사용하여 PostgreSQLL 인스턴스에 연결된 Cloud Run에 샘플 앱을 배포하는 방법을 알아봅니다.
모든 단계를 적시에 완료한다면 이 빠른 시작에서 만든 리소스의 비용은 일반적으로 1달러(USD) 미만입니다.
Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 이 빠른 시작을 완료하는 데 필요한 권한이 있는지 확인합니다.
-
Cloud Run에서 Cloud SQL 샘플 앱을 실행하는 데 필요한 Cloud API를 사용 설정합니다.
콘솔
API 사용 설정을 클릭하여 빠른 시작에 필요한 API를 사용 설정합니다.
그러면 다음 API가 사용 설정됩니다.
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
gcloud
다음 버튼을 클릭하여 브라우저에서 직접 Google Cloud 리소스에 대해 명령줄 액세스를 제공하는 Cloud Shell을 엽니다. Cloud Shell을 사용하여 이 빠른 시작 전체에 표시된
gcloud명령어를 실행할 수 있습니다.Cloud Shell을 사용하여 다음
gcloud명령어를 실행합니다.gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \ containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com
이 명령어는 다음 API를 사용 설정합니다.
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
- Service Networking API
필요한 역할
PostgreSQL 인스턴스에 연결된 Cloud Run에 샘플 앱을 배포하는 데 필요한 권한을 얻으려면 관리자에게 사용하려는 프로젝트에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
인스턴스, 데이터베이스, 사용자 생성 또는 삭제:
Cloud SQL 관리자 역할 (
roles/cloudsql.admin) -
IAM 서비스 계정 만들기 또는 삭제: 서비스 계정 관리자 역할 (
roles/iam.serviceAccountAdmin) -
연결을 만듭니다.
-
서비스 네트워킹 관리자 (
roles/servicenetworking.networksAdmin)) -
서비스 사용량 관리자 (
roles/serviceusage.serviceUsageAdmin)
-
서비스 네트워킹 관리자 (
- 객체 및 해당 메타데이터 보기: 스토리지 객체 뷰어 (roles/storage.objectViewer)
- 프로젝트의 정책을 관리할 수 있는 권한을 제공합니다. 프로젝트 IAM 관리자 (roles/resourcemanager.projectIamAdmin)
- 모든 Cloud Run 리소스에 대한 읽기 및 쓰기 액세스 권한: Cloud Run 개발자 (roles/run.developer)
- Cloud Run 소스로 배포된 리소스를 배포하고 관리합니다.Cloud Run 소스 개발자 (roles/run.sourceDeveloper)
- 공개 액세스를 허용하려면 다음 권한이 필요합니다.Cloud Run 관리자 (roles/run.admin)
- 서비스 계정으로 작업을 실행하려면 서비스 계정 사용자 (roles/iam.serviceAccountUser)가 필요합니다.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
Cloud SQL 설정
Cloud SQL 인스턴스 만들기
데이터베이스 만들기
다음 단계에 따라 데이터베이스를 만듭니다.
콘솔
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
quickstart-instance를 선택합니다.- SQL 탐색 메뉴에서 데이터베이스를 선택합니다.
- 데이터베이스 만들기를 클릭합니다.
- 새 데이터베이스 대화상자의 데이터베이스 이름 필드에
quickstart-db를 입력합니다. - 만들기를 클릭합니다.
gcloud
gcloud
sql databases create 명령어를 실행하여 데이터베이스를 만듭니다.
gcloud sql databases create quickstart-db --instance=quickstart-instance
사용자 생성
다음 단계에 따라 사용자를 만듭니다.
콘솔
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
- SQL 탐색 메뉴에서 사용자를 선택합니다.
- 사용자 계정 추가를 클릭합니다.
- instance_name 페이지에 새로운 사용자 계정 추가 페이지에서 다음 정보를 추가합니다.
- 사용자 이름 필드에
quickstart-user를 입력합니다. - 비밀번호 필드에 데이터베이스 사용자의 비밀번호를 지정합니다. 이 빠른 시작의 이후 단계에서 사용할 수 있도록 기록해 둡니다.
- 사용자 이름 필드에
- 추가를 클릭합니다.
gcloud
다음 명령어를 실행하기 전에 다음을 바꿉니다.
- PASSWORD를 데이터베이스 사용자의 비밀번호로 바꿉니다. 이 빠른 시작의 이후 단계에서 사용할 수 있도록 기록해 둡니다.
gcloud sql users create 명령어를 실행하여 사용자를 만듭니다.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=PASSWORD
Cloud SQL의 사용자 이름 길이 제한은 온프레미스 PostgreSQL과 동일합니다.
Cloud Run에 샘플 앱 배포
Cloud Run 서비스 계정 구성
콘솔
-
Google Cloud 콘솔에서 IAM 서비스 계정 페이지로 이동합니다.
- 서비스 계정 옆에 있는 작업 메뉴를 클릭한 다음 액세스 관리를 클릭합니다.
- 다른 역할 추가를 클릭한 다음 역할 드롭다운에서 Cloud SQL 클라이언트 (
roles/cloudsql.client)를 찾아 선택합니다. - 다른 역할 추가를 클릭한 다음 역할 드롭다운에서 스토리지 객체 뷰어 (
roles/storage.ObjectViewer)를 찾아 선택합니다. - 저장을 클릭합니다.
gcloud
-
다음
gcloud명령어를 실행하여 프로젝트의 서비스 계정 목록을 가져옵니다.gcloud iam service-accounts list
- 이메일 Compute Engine 기본 서비스 계정을 복사합니다.
- 다음 명령어를 실행하여 Cloud SQL 클라이언트 역할을 Compute Engine 기본 서비스 계정에 추가합니다.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/cloudsql.client"
- 다음 명령어를 실행하여 스토리지 객체 뷰어 역할을 Compute Engine 기본 서비스 계정에 추가합니다.
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/storage.ObjectViewer"
Cloud SQL 샘플 앱 구성
이제 클라이언트 권한이 있는 Cloud SQL 인스턴스, 데이터베이스, 서비스 계정을 사용하여 Cloud SQL 인스턴스에 연결되도록 샘플 애플리케이션을 구성할 수 있습니다.
샘플 앱 배포
Cloud Run에 샘플을 배포하는 단계는 Cloud SQL 인스턴스에 할당한 IP 주소 유형에 따라 달라집니다.
이미지 연결 방법은 설정된 환경 변수에 따라 다릅니다.
- TCP를 사용하여 연결하려면
INSTANCE_HOST환경 변수의 값을 설정합니다. 이 연결 방법은 환경 변수로 구성된 인증서와 포트를 따릅니다. - Unix 소켓을 사용하여 연결하려면
INSTANCE_UNIX_SOCKET환경 변수의 값을 설정합니다.INSTANCE_HOST환경 변수의 값을 설정하지 마세요.Unix 소켓은 Java에서 기본적으로 지원되지 않습니다. 애플리케이션이 Java를 사용하여 작성된 경우 Cloud SQL Java 커넥터를 사용해야 합니다.
- Cloud SQL 언어 커넥터 중 하나를 사용하여 연결하려면
INSTANCE_CONNECTION_NAME환경 변수의 값을 설정합니다.다음 환경 변수의 값을 설정하지 마세요.
INSTANCE_HOSTINSTANCE_UNIX_SOCKETDB_PORTDB_ROOT_CERTDB_CERTDB_KEY
3307에서 Cloud SQL에 대한 연결을 설정합니다.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
quickstart-instance인스턴스를 선택하여 인스턴스 세부정보 페이지를 엽니다.- 페이지 상단의 아이콘 표시줄에서 삭제를 클릭합니다.
- 인스턴스 삭제 대화상자에서
quickstart-instance를 입력한 후 삭제를 클릭하여 인스턴스를 삭제합니다. -
Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.
quickstart-service서비스 이름 옆의 체크박스를 선택합니다.- Cloud Run 페이지 상단에 있는 삭제를 클릭합니다.
선택적인 삭제 단계
Compute Engine 서비스 계정에 할당한 Cloud SQL 클라이언트 역할을 사용하지 않을 때는 이를 삭제할 수 있습니다.
-
Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
- Compute Engine 기본 서비스 계정이라는 IAM 계정에 대해 수정 아이콘(연필 모양)을 클릭합니다.
- Cloud SQL 클라이언트 역할을 삭제합니다.
- 저장을 클릭합니다.
이 빠른 시작을 진행하는 동안 사용 설정된 API를 사용하지 않을 때는 이를 사용 중지할 수 있습니다.
- 이 빠른 시작 내에서 사용 설정된 API:
- Compute Engine API
- Cloud SQL Admin API
- Cloud Run API
- Container Registry API
- Cloud Build API
Google Cloud 콘솔에서 API 페이지로 이동합니다.
사용 중지하려는 API를 선택한 후 API 사용 중지 버튼을 클릭합니다.
다음 단계
Cloud SQL 인스턴스 만들기 자세히 알아보기(필요한 경우)Cloud SQL 인스턴스의 PostgreSQL 사용자 및 데이터베이스를 만드는 방법 알아보기
가격 책정에 대한 자세한 내용은 PostgreSQL용 Cloud SQL 가격 책정을 참조하세요.
다음에 대해 자세히 알아보기
또한 다른 Google Cloud 애플리케이션에서 Cloud SQL 인스턴스에 연결하는 방법을 알아보세요.

