Cloud Run 함수에서 PostgreSQL용 Cloud SQL에 연결

Google Cloud 콘솔과 클라이언트 애플리케이션을 사용하여 PostgreSQL 인스턴스에 연결된 Cloud Run 함수에 샘플 앱을 배포하는 방법을 알아봅니다.

모든 단계를 적시에 완료한다면 이 빠른 시작에서 만든 리소스의 비용은 일반적으로 1달러(USD) 미만입니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Cloud Run functions에서 Cloud SQL 샘플 앱을 실행하는 데 필요한 Cloud API를 사용 설정합니다.
    콘솔gcloud

    API 사용 설정을 클릭하여 빠른 시작에 필요한 API를 사용 설정합니다.

    API 사용 설정

    그러면 다음 API가 사용 설정됩니다.

    • Cloud Run functions API
    • Cloud SQL Admin API
    • Cloud Run Admin API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API

    다음 버튼을 클릭하여 브라우저에서 직접 리소스에 대해 명령줄 액세스를 제공하는 Cloud Shell을 엽니다. Google Cloud Cloud Shell을 사용하여 이 빠른 시작 전체에 표시된 gcloud 명령어를 실행할 수 있습니다.

    Cloud Shell 열기

    Cloud Shell을 사용하여 다음 gcloud 명령어를 실행합니다.

    gcloud services enable cloudfunctions.googleapis.com sqladmin.googleapis.com run.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com eventarc.googleapis.com compute.googleapis.com servicenetworking.googleapis.com pubsub.googleapis.com logging.googleapis.com

    이 명령어는 다음 API를 사용 설정합니다.

    • Cloud Run functions API
    • Cloud SQL Admin API
    • Cloud Run API
    • Cloud Build API
    • Artifact Registry API
    • Eventarc API
    • Compute Engine API
    • Service Networking API
    • Cloud Logging API
  5. Cloud Run functions 호출자 IAM 역할을 사용자에게 추가합니다.

    역할 추가

Cloud SQL 설정

Cloud SQL 인스턴스 만들기

공개 IP

콘솔gcloud
  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. PostgreSQL 선택을 클릭합니다.
  4. 인스턴스의 Cloud SQL 버전으로 Enterprise Plus가 선택되어 있는지 확인합니다.
  5. 인스턴스 ID 필드에 quickstart-instance를 입력합니다.
  6. 비밀번호 필드에 postgres 사용자의 비밀번호를 입력합니다. 나중에 사용할 수 있도록 이 비밀번호를 기록해 둡니다.
  7. 리전 및 영역 가용성 선택 섹션에서 단일 영역을 선택합니다.
  8. 구성 옵션 표시 메뉴를 클릭합니다.
  9. 머신 구성 노드를 펼칩니다.
  10. 머신 형태 영역에서 4 vCPU, 32GB 형태를 선택합니다.
  11. 인스턴스 만들기를 클릭한 후 인스턴스가 초기화되고 시작될 때까지 기다립니다.

다음과 같이 명령어를 실행하기 전에 DB_ROOT_PASSWORD를 데이터베이스 사용자의 비밀번호로 바꿉니다.

선택적으로 다음 매개변수에 대해 값을 수정합니다.

  • --database-version: 데이터베이스 엔진 유형 및 버전입니다. 지정하지 않으면 API 기본값이 사용됩니다. 현재 사용 가능한 버전을 보려면 gcloud 데이터베이스 버전 문서를 참조하세요.
  • --cpu: 머신에 사용하려는 코어 수입니다.
  • --memory: 머신에 사용하려는 메모리 양을 나타내는 정수 숫자 값입니다. 크기 단위를 제공해야 합니다(예: 3072MB 또는 9GB). 단위를 지정하지 않으면 GB로 간주됩니다.
  • --region: 인스턴스의 리전 위치입니다(예: asia-east1, us-east1). 지정하지 않으면 기본값 us-central이 사용됩니다.

gcloud sql instances create 명령어를 사용하여 Cloud SQL 인스턴스를 만듭니다.

gcloud sql instances create quickstart-instance \
--database-version=POSTGRES_14 \
 --cpu=1 \
 --memory=4GB \
 --region=us-central \
 --root-password=DB_ROOT_PASSWORD
콘솔gcloud

IP 주소 범위를 할당하고 비공개 연결을 만들어 Cloud SQL의 비공개 서비스 액세스 구성

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. default VPC 네트워크를 선택합니다.
  3. 비공개 서비스 연결 탭을 선택합니다.
  4. 서비스에 할당된 IP 범위 탭을 선택합니다.
  5. IP 범위 할당을 클릭합니다.
  6. 할당된 범위의 이름google-managed-services-default를 지정합니다.
  7. IP 범위에 자동 옵션을 선택하고 프리픽스 길이를 16으로 지정합니다.
  8. 할당을 클릭하여 할당된 범위를 만듭니다.
  9. default VPC 네트워크의 서비스에 대한 비공개 연결 탭을 선택합니다.
  10. 연결 만들기를 클릭하여 네트워크와 서비스 프로듀서 간에 비공개 연결을 만듭니다.
  11. 지정된 할당으로 google-managed-services-default를 선택합니다.
  12. 연결을 클릭하여 연결을 만듭니다.

비공개 IP 주소 및 SSL을 사용 설정하여 인스턴스 만들기

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스 만들기를 클릭합니다.
  3. PostgreSQL 선택을 클릭합니다.
  4. 인스턴스의 Cloud SQL 버전으로 Enterprise Plus가 선택되어 있는지 확인합니다.
  5. 인스턴스 ID 필드에 quickstart-instance를 입력합니다.
  6. 비밀번호 필드에 postgres 사용자의 비밀번호를 입력합니다. 나중에 사용할 수 있도록 이 비밀번호를 기록해 둡니다.
  7. 리전 및 영역 가용성 선택 섹션에서 단일 영역을 선택합니다.
  8. 구성 옵션 표시 메뉴를 클릭합니다.
  9. 머신 구성 노드를 펼칩니다.
  10. 머신 형태 영역에서 4 vCPU, 32GB 형태를 선택합니다.
  11. 연결 노드를 펼칩니다.
  12. 비공개 IP 주소만 있는 인스턴스를 만들려면 공개 IP 체크박스를 선택 해제합니다.
  13. 비공개 IP 체크박스를 선택합니다.
  14. 네트워크 메뉴에서 기본값을 선택합니다.
  15. 인스턴스 만들기를 클릭한 후 인스턴스가 초기화 및 시작될 때까지 기다립니다.
  16. 연결을 클릭합니다.
  17. 보안 섹션에서 SSL 연결만 허용을 선택하여 SSL 연결을 사용 설정합니다.
  18. SSL 연결만 허용 대화상자에서 저장을 클릭하고 인스턴스가 다시 시작될 때까지 기다립니다.

IP 주소 범위를 할당하고 비공개 연결을 만들어 Cloud SQL의 비공개 서비스 액세스 구성

  1. gcloud compute addresses create 명령어를 실행하여 IP 주소 범위를 할당합니다.

    gcloud compute addresses create google-managed-services-default \
    --global --purpose=VPC_PEERING --prefix-length=16 \
    --description="peering range for Google" --network=default
  2. gcloud services vpc-peerings connect 명령어를 실행하여 할당된 IP 주소 범위에 대한 비공개 연결을 만듭니다. YOUR_PROJECT_ID를 프로젝트의 프로젝트 ID로 바꿉니다.

    gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default --network=default \
    --project=YOUR_PROJECT_ID

비공개 IP 주소 및 SSL을 사용 설정하여 인스턴스 만들기

  1. 다음과 같이 명령어를 실행하기 전에 DB_ROOT_PASSWORD를 데이터베이스 사용자의 비밀번호로 바꿉니다.

  2. 선택적으로 다음 매개변수에 대해 값을 수정합니다.

    • --database-version: 데이터베이스 엔진 유형 및 버전입니다. 지정하지 않으면 API 기본값이 사용됩니다. 현재 사용 가능한 버전을 보려면 gcloud 데이터베이스 버전 문서를 참조하세요.
    • --cpu: 머신의 코어 수입니다.
    • --memory: 머신에 포함하려는 메모리 양을 나타내는 정수 숫자 값입니다. 크기 단위를 제공할 수 있습니다(예: 3072MB 또는 9GB). 단위를 지정하지 않으면 GB로 간주됩니다.
    • --region: 인스턴스의 리전 위치입니다(예: asia-east1, us-east1). 지정하지 않으면 기본값 us-central1이 사용됩니다. 리전의 전체 목록을 참조하세요.

    gcloud sql instances create 명령어를 실행하여 비공개 IP 주소로 Cloud SQL 인스턴스를 만듭니다.

    gcloud sql instances create quickstart-instance \
    --database-version=POSTGRES_14 \
     --cpu=1 \
     --memory=4GB \
     --region=us-central \
     --root-password=DB_ROOT_PASSWORD \
     --no-assign-ip \
    --network=default
  3. gcloud sql instances patch 명령어를 실행하여 인스턴스에 대해 SSL 연결만 허용합니다.

  4. gcloud sql instances patch quickstart-instance --require-ssl

데이터베이스 만들기

콘솔gcloud
  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. quickstart-instance를 선택합니다.
  3. SQL 탐색 메뉴에서 데이터베이스를 선택합니다.
  4. 데이터베이스 만들기를 클릭합니다.
    1. 새 데이터베이스 대화상자의 데이터베이스 이름 필드에 quickstart-db를 입력합니다.
    2. 만들기를 클릭합니다.

gcloud sql databases create 명령어를 실행하여 데이터베이스를 만듭니다.

gcloud sql databases create quickstart-db --instance=quickstart-instance

사용자 만들기

콘솔gcloud
  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. SQL 탐색 메뉴에서 사용자를 선택합니다.
  4. 사용자 계정 추가를 클릭합니다.
  5. quickstart-instance사용자 계정 추가 페이지에서 다음 정보를 추가합니다.
    • 사용자 이름 필드에 quickstart-user를 입력합니다.
    • 비밀번호 필드에 데이터베이스 사용자의 비밀번호를 지정합니다. 이 빠른 시작의 이후 단계에서 사용할 수 있도록 기록해 둡니다.
  6. 추가를 클릭합니다.

다음 명령어를 실행하기 전에 다음을 바꿉니다.

  1. DB_PASS를 데이터베이스 사용자의 비밀번호로 바꿉니다. 이 빠른 시작의 이후 단계에서 사용할 수 있도록 기록해 둡니다.

gcloud sql users create 명령어를 실행하여 사용자를 만듭니다.

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=DB_PASS

Cloud SQL와 온프레미스 PostgreSQL의 사용자 이름 길이 한도는 동일합니다.

Cloud Run 함수 서비스 계정 구성

Cloud SQL에 연결할 수 있는 권한이 있는 Cloud SQL 클라이언트 역할이 있도록 Cloud Run functions에서 사용하는 서비스 계정을 구성합니다.
콘솔gcloud
  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. Compute Engine 기본 서비스 계정이라는 서비스 계정에서 연필 아이콘을 클릭합니다.
  3. 다른 역할 추가를 클릭합니다.
  4. Cloud SQL 클라이언트라는 역할을 추가합니다.
  5. 저장을 클릭합니다.
  1. 다음 gcloud 명령어를 실행하여 프로젝트의 서비스 계정 목록을 가져옵니다.
    gcloud iam service-accounts list
  2. Compute Engine 서비스 계정이메일을 복사합니다.
  3. 다음 명령어를 실행하여 Cloud SQL 클라이언트 역할을 Compute Engine 서비스 계정에 추가합니다.
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

함수 만들기

  1. Google Cloud 콘솔에서 Cloud Run functions 페이지로 이동합니다.

    Cloud Run functions로 이동

  2. 함수 만들기를 클릭합니다.
  3. 환경2세대를 선택합니다.
  4. 함수 이름 필드에 quickstart-function을 입력합니다.
  5. 인증 리전에서 인증되지 않은 호출 허용을 선택합니다.
  6. 다음을 클릭합니다.
  7. 런타임 메뉴에서 다음 언어 중 하나를 선택합니다.
  8. 언어 버전 번호
    Go 1.20
    Java 17
    Node.js 18
    Python 3.10
  9. 소스 코드 메뉴에서 인라인 편집기가 선택되었는지 확인합니다. 이 단계에서는 편집기에 제공된 기본 함수를 사용합니다.

함수 배포하기

  1. Cloud Run functions 페이지 하단에 있는 배포를 클릭합니다. Google Cloud 콘솔이 함수의 세부정보 페이지로 리디렉션합니다.
  2. 함수 배포가 완료되면 URL 링크를 클릭하여 웹브라우저에 Hello, World! 메시지가 표시되는지 확인합니다.

Cloud SQL 샘플 앱을 함수로 배포

Cloud SQL 샘플 앱을 Cloud Run functions에서 구성하고 함수로 배포합니다. 먼저 Cloud Shell을 사용하여 샘플 앱을 구성하고 빌드합니다. 그런 다음 Cloud Run 함수를 사용하여 샘플 앱을 배포합니다.

공개 IP 또는 비공개 IP로 PostgreSQL용 Cloud SQL 인스턴스를 만들었는지에 따라 두 가지 방법으로 앱을 구성, 빌드, 배포할 수 있습니다.

Cloud SQL 샘플 앱 구성

공개 IP

공개 IP 경로의 경우 Cloud Run functions는 Unix 소켓을 통해 Cloud SQL 인증 프록시를 사용하여 암호화를 제공하고 연결합니다.
  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.

    Cloud Shell 편집기 열기

  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.

    Cloud Shell 편집기 열기

  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 mvn 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.

    Cloud Shell 편집기 열기

  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.

    Cloud Shell 편집기 열기

  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME
비공개 IP 경로의 경우 애플리케이션은 서버리스 VPC 액세스를 통해 인스턴스에 직접 연결됩니다. 이 메서드는 Cloud SQL 인증 프록시를 사용하지 않고 TCP 소켓을 사용하여 Cloud SQL 인스턴스에 직접 연결합니다.

SSL 서버 및 클라이언트 인증서 만들기 및 다운로드

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. quickstart-instance를 클릭하여 해당 개요 페이지를 참조하세요.
  3. 연결 탭을 클릭합니다.
  4. 보안 섹션에서 클라이언트 인증서 만들기를 클릭합니다.
  5. 클라이언트 인증서 만들기 대화상자에서 quickstart-key를 이름으로 입력하고 만들기를 클릭합니다.
  6. 새 SSL 인증서가 생성됨 대화상자에서 각 다운로드 링크를 클릭하여 인증서를 다운로드합니다. 그런 후 닫기를 클릭합니다.

비공개 IP를 통해 인스턴스에 연결하도록 서버리스 VPC 연결 만들기

  1. Google Cloud 콘솔에서 서버리스 VPC 액세스 - 커넥터 만들기 페이지로 이동합니다.

    서버리스 VPC 커넥터 만들기

  2. 이름quickstart-connector를 입력합니다.
  3. 네트워크 드롭다운 메뉴에서 기본을 선택합니다.
  4. 서브넷 드롭다운 메뉴에서 커스텀 IP 범위를 선택합니다.
  5. IP 범위 입력 상자에 10.8.0.0을 입력합니다.
  6. 만들기를 클릭하여 커넥터를 만듭니다.

SSL 인증서로 샘플 앱 빌드

  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.
    Cloud Shell 편집기 열기
  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. SSL 인증서 파일을 certs 폴더에 업로드합니다.
    1. Cloud Shell 편집기에서 certs 폴더를 마우스 오른쪽 버튼으로 클릭하고 파일 업로드를 선택합니다.
    2. 로컬 머신에서 다음 파일을 선택합니다.
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3개의 SSL 인증서 파일이 선택된 상태로 열기를 클릭하여 Cloud Shell 편집기에 파일 업로드 프로세스를 완료합니다.
  6. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  7. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  8. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL 서버 및 클라이언트 인증서 만들기 및 다운로드

Java 사용자의 경우 커넥터가 이미 보안 연결을 제공하므로 SSL 서버 및 클라이언트 인증서 만들기 및 다운로드가 필요하지 않습니다.

비공개 IP를 통해 인스턴스에 연결하도록 서버리스 VPC 연결 만들기

  1. Google Cloud 콘솔에서 서버리스 VPC 액세스 - 커넥터 만들기 페이지로 이동합니다.

    서버리스 VPC 커넥터 만들기

  2. 이름quickstart-connector를 입력합니다.
  3. 네트워크 드롭다운 메뉴에서 기본을 선택합니다.
  4. 서브넷 드롭다운 메뉴에서 커스텀 IP 범위를 선택합니다.
  5. IP 범위 입력 상자에 10.8.0.0을 입력합니다.
  6. 만들기를 클릭하여 커넥터를 만듭니다.

샘플 앱 빌드

  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.
    Cloud Shell 편집기 열기
  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. Cloud Shell 승인 대화상자가 나타나면 승인을 클릭합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 mvn 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
      -Dimage=YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql \
      -DskipTests -Djib.to.credHelper=gcloud
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL 서버 및 클라이언트 인증서 만들기 및 다운로드

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. quickstart-instance를 클릭하여 해당 개요 페이지를 참조하세요.
  3. 연결 탭을 클릭합니다.
  4. 보안 섹션에서 클라이언트 인증서 만들기를 클릭합니다.
  5. 클라이언트 인증서 만들기 대화상자에서 quickstart-key를 이름으로 입력하고 만들기를 클릭합니다.
  6. 새 SSL 인증서가 생성됨 대화상자에서 각 다운로드 링크를 클릭하여 인증서를 다운로드합니다. 그런 후 닫기를 클릭합니다.

비공개 IP를 통해 인스턴스에 연결하도록 서버리스 VPC 연결 만들기

  1. Google Cloud 콘솔에서 서버리스 VPC 액세스 - 커넥터 만들기 페이지로 이동합니다.

    서버리스 VPC 커넥터 만들기

  2. 이름quickstart-connector를 입력합니다.
  3. 네트워크 드롭다운 메뉴에서 기본을 선택합니다.
  4. 서브넷 드롭다운 메뉴에서 커스텀 IP 범위를 선택합니다.
  5. IP 범위 입력 상자에 10.8.0.0을 입력합니다.
  6. 만들기를 클릭하여 커넥터를 만듭니다.

SSL 인증서로 샘플 앱 빌드

  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.
    Cloud Shell 편집기 열기
  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. SSL 인증서 파일을 certs 폴더에 업로드합니다.
    1. Cloud Shell 편집기에서 certs 폴더를 마우스 오른쪽 버튼으로 클릭하고 파일 업로드를 선택합니다.
    2. 로컬 머신에서 다음 파일을 선택합니다.
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3개의 SSL 인증서 파일이 선택된 상태로 열기를 클릭하여 Cloud Shell 편집기에 파일 업로드 프로세스를 완료합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

SSL 서버 및 클라이언트 인증서 만들기 및 다운로드

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. quickstart-instance를 클릭하여 해당 개요 페이지를 참조하세요.
  3. 연결 탭을 클릭합니다.
  4. 보안 섹션에서 클라이언트 인증서 만들기를 클릭합니다.
  5. 클라이언트 인증서 만들기 대화상자에서 quickstart-key를 이름으로 입력하고 만들기를 클릭합니다.
  6. 새 SSL 인증서가 생성됨 대화상자에서 각 다운로드 링크를 클릭하여 인증서를 다운로드합니다. 그런 후 닫기를 클릭합니다.

비공개 IP를 통해 인스턴스에 연결하도록 서버리스 VPC 연결 만들기

  1. Google Cloud 콘솔에서 서버리스 VPC 액세스 - 커넥터 만들기 페이지로 이동합니다.

    서버리스 VPC 커넥터 만들기

  2. 이름quickstart-connector를 입력합니다.
  3. 네트워크 드롭다운 메뉴에서 기본을 선택합니다.
  4. 서브넷 드롭다운 메뉴에서 커스텀 IP 범위를 선택합니다.
  5. IP 범위 입력 상자에 10.8.0.0을 입력합니다.
  6. 만들기를 클릭하여 커넥터를 만듭니다.

SSL 인증서로 샘플 앱 빌드

  1. Cloud Shell 편집기에서 샘플 앱의 소스 코드를 엽니다.
    Cloud Shell 편집기 열기
  2. Cloud Shell에서 열기 대화상자에서 확인을 클릭하여 샘플 앱 코드를 다운로드하고 Cloud Shell 편집기에서 샘플 앱 디렉터리를 엽니다.
  3. Cloud Shell 편집기 아래의 하단 화면의 Cloud Shell 명령 프롬프트에 다음 명령어를 실행하여 프로젝트를 활성화합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
    gcloud config set project YOUR_PROJECT_ID
  4. SSL 인증서 파일을 certs 폴더에 업로드합니다.
    1. Cloud Shell 편집기에서 certs 폴더를 마우스 오른쪽 버튼으로 클릭하고 파일 업로드를 선택합니다.
    2. 로컬 머신에서 다음 파일을 선택합니다.
      • client-key.pem
      • client-cert.pem
      • server-ca.pem
    3. 3개의 SSL 인증서 파일이 선택된 상태로 열기를 클릭하여 Cloud Shell 편집기에 파일 업로드 프로세스를 완료합니다.
  5. Cloud Shell에서 다음 gcloud artifacts repositories create 명령어를 실행하여 Cloud SQL 인스턴스와 동일한 리전에 quickstart-repo라는 Artifact Registry에 저장소를 만듭니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud artifacts repositories create quickstart-repo \
      --project=YOUR_PROJECT_ID \
      --repository-format=docker \
      --location=YOUR_REGION_NAME \
      --description="Cloud Function Quickstart Cloud SQL sample app"
  6. Cloud Shell에서 다음과 같이 gcloud builds submit 명령어를 실행하여 Docker 컨테이너를 빌드하고 Artifact Registry에 게시합니다. YOUR_PROJECT_ID를 프로젝트 ID로 바꾸고 YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    gcloud builds submit \
      --tag YOUR_REGION_NAME-docker.pkg.dev/YOUR_PROJECT_ID/quickstart-repo/function-sql .
  7. Cloud Run functions의 gen2에서는 Cloud SQL 인증 프록시를 자동으로 구성하고 실행할 수 없습니다. 이 기능은 Cloud Run을 사용하여 지원됩니다. --add-cloudsql-instances 플래그를 사용하여 서비스에 Cloud SQL 인증 프록시를 구성하고 실행하려면 기본 Cloud Run 서비스를 수동으로 수정해야 합니다. INSTANCE_CONNECTION_NAME을 인스턴스의 연결 이름으로 바꿉니다.
    gcloud run deploy quickstart-function --source . \
      --region YOUR_REGION_NAME \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME

샘플 앱 배포

샘플을 Cloud Run functions에 배포하는 단계는 Cloud SQL 인스턴스에 할당한 IP 주소 유형에 따라 달라집니다.

공개 IP

콘솔gcloud
  1. Google Cloud 콘솔에서 Cloud Run functions 페이지로 이동합니다.

    Cloud Run functions로 이동

  2. 이 빠른 시작의 이전 단계에서 만든 quickstart-function을 선택합니다.
  3. 함수 세부정보 페이지의 Cloud Run에서 제공 창에서 링크를 클릭하여 기본 Cloud Run functions 서비스에 액세스합니다.
  4. 새 버전 수정 및 배포를 클릭합니다.
  5. 컨테이너 이미지 URL 필드에서 선택을 클릭합니다.
    1. Artifact Registry 탭을 선택한 다음 quickstart-repo 노드를 펼칩니다.
    2. function-sql 컨테이너를 펼친 후 이전 단계에서 만든 컨테이너 이미지를 선택합니다.
    3. 선택을 클릭합니다.
  6. 환경 변수 섹션에서 변수 추가를 클릭하여 다음 환경 변수를 만듭니다.
    • INSTANCE_UNIX_SOCKET: /cloudsql/YOUR_PROJECT_ID:YOUR_REGION_NAME:quickstart-instance로 설정합니다.
    • DB_NAME: quickstart-db로 설정합니다.
    • DB_USER: quickstart-user로 설정합니다.
    • DB_PASS: 이전 사용자 만들기 빠른 시작 단계에서 지정한 quickstart-user의 비밀번호로 설정합니다.
  7. Cloud SQL에 연결을 사용 설정합니다.

    1. Cloud SQL 연결 섹션에서 연결 추가를 클릭합니다.
    2. 인스턴스의 연결 이름을 선택합니다.
  8. 페이지 하단에서 배포를 클릭합니다.
  9. quickstart-function이 배포되면 quickstart-function 페이지에 실행 중인 서비스의 URL이 표시됩니다. URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다. 이 앱은 다음과 비슷하게 표시됩니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime go120 \ --trigger-http \ --allow-unauthenticated \ --entry-point Votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime java11 \ --trigger-http \ --allow-unauthenticated \ --entry-point com.example.cloudsql.functions.Main \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime nodejs18 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    -
    -gen2 \ --runtime python310 \ --trigger-http \ --allow-unauthenticated \ --entry-point votes \ --region YOUR_REGION_NAME \ --set-env-vars INSTANCE_UNIX_SOCKET=/cloudsql/INSTANCE_CONNECTION_NAME \ --set-env-vars DB_USER=quickstart-user \ --set-env-vars DB_PASS=DB_PASS \ --set-env-vars DB_NAME=quickstart-db
  2. Cloud Run functions가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

콘솔gcloud
  1. Google Cloud 콘솔에서 Cloud Run functions 페이지로 이동합니다.

    Cloud Run functions로 이동

  2. 이 빠른 시작의 이전 단계에서 만든 quickstart-function을 선택합니다.
  3. 함수 세부정보 페이지의 Cloud Run에서 제공 창에서 링크를 클릭하여 기본 Cloud Run functions 서비스에 액세스합니다.
  4. 새 버전 수정 및 배포를 클릭합니다.
  5. 컨테이너 이미지 URL 필드에서 선택을 클릭합니다.
    1. Artifact Registry 탭을 선택한 다음 quickstart-repo 노드를 펼칩니다.
    2. function-sql 컨테이너를 펼친 후 이전 단계에서 만든 컨테이너 이미지를 선택합니다.
    3. 선택을 클릭합니다.
  6. 환경 변수 섹션에서 변수 추가를 클릭하여 다음 환경 변수를 만듭니다.
    • DB_NAME: quickstart-db로 설정합니다.
    • DB_USER: quickstart-user로 설정합니다.
    • DB_PASS: 이전 사용자 만들기 빠른 시작 단계에서 지정한 quickstart-user의 비밀번호로 설정합니다.
    • INSTANCE_CONNECTION_NAME: Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.
    • DB_PORT: 5432로 설정합니다.
    • INSTANCE_HOST: Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시된 인스턴스의 비공개 IP 주소를 설정합니다.
    • DB_ROOT_CERT: certs/server-ca.pem로 설정합니다.
    • DB_CERT: certs/client-cert.pem로 설정합니다.
    • DB_KEY: certs/client-key.pem로 설정합니다.
    • PRIVATE_IP: TRUE로 설정합니다.
  7. Cloud SQL에 연결을 사용 설정합니다.

    1. Cloud SQL 연결 섹션에서 연결 추가를 클릭합니다.
    2. 인스턴스의 연결 이름을 선택합니다.
    3. VPC 네트워크 드롭다운 메뉴에서 default: Serverless VPC Access Connector "quickstart-connector"를 선택합니다.
    4. VPC 커넥터를 통해 모든 트래픽 라우팅 옵션을 선택합니다.
  8. 페이지 하단에서 배포를 클릭합니다.
  9. quickstart-function이 배포되면 quickstart-function 페이지에 실행 중인 서비스의 URL이 표시됩니다. URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다. 이 앱은 다음과 비슷하게 표시됩니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • PRIVATE_IP_ADDRESS를 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시된 Cloud SQL 인스턴스의 비공개 IP 주소로 바꿉니다.
    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 사용자는 Java 커넥터에서 이미 보안 연결을 제공하므로 다음과 같이 INSTANCE_HOST, DB_PORT, DB_ROOT_CERT, DB_CERT, DB_KEY, PRIVATE_IP 플래그를 사용하지 않고 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만들어야 합니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime go120 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point Votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run gkatn가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • PRIVATE_IP_ADDRESS를 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시된 Cloud SQL 인스턴스의 비공개 IP 주소로 바꿉니다.
    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 사용자는 Java 커넥터에서 이미 보안 연결을 제공하므로 다음과 같이 INSTANCE_HOST, DB_PORT, DB_ROOT_CERT, DB_CERT, DB_KEY, PRIVATE_IP 플래그를 사용하지 않고 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만들어야 합니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime java11 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point com.example.cloudsql.functions.Main \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run gkatn가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • PRIVATE_IP_ADDRESS를 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시된 Cloud SQL 인스턴스의 비공개 IP 주소로 바꿉니다.
    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 사용자는 Java 커넥터에서 이미 보안 연결을 제공하므로 다음과 같이 INSTANCE_HOST, DB_PORT, DB_ROOT_CERT, DB_CERT, DB_KEY, PRIVATE_IP 플래그를 사용하지 않고 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만들어야 합니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime nodejs18 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run gkatn가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

  1. gen2 함수를 Cloud Run functions에 배포하려면 다음 gcloud functions deploy 명령어를 실행합니다. 명령어를 실행하기 전 다음 변수를 업데이트합니다.
    • YOUR_REGION_NAME을 리전 이름으로 바꿉니다.
    • PRIVATE_IP_ADDRESS를 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시된 Cloud SQL 인스턴스의 비공개 IP 주소로 바꿉니다.
    • DB_PASS를 이전 사용자 만들기 빠른 시작 단계에서 만든 quickstart-user의 비밀번호로 바꿉니다.
    • INSTANCE_CONNECTION_NAME을 Google Cloud 콘솔의 Cloud SQL 인스턴스 페이지에 표시되는 인스턴스의 연결 이름으로 바꿉니다.

    다음과 같이 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만듭니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars INSTANCE_HOST=PRIVATE_IP_ADDRESS \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_PORT=5432 \
    --set-env-vars DB_ROOT_CERT=certs/server-ca.pem \
    --set-env-vars DB_CERT=certs/client-cert.pem \
    --set-env-vars DB_KEY=certs/client-key.pem \
    --set-env-vars PRIVATE_IP=TRUE

    Java 사용자는 Java 커넥터에서 이미 보안 연결을 제공하므로 다음과 같이 INSTANCE_HOST, DB_PORT, DB_ROOT_CERT, DB_CERT, DB_KEY, PRIVATE_IP 플래그를 사용하지 않고 gcloud functions deploy 명령어를 실행하여 Cloud Run functions를 만들어야 합니다.

    gcloud functions deploy quickstart-function \
    --gen2 \
    --runtime python310 \
    --trigger-http \
    --allow-unauthenticated \
    --entry-point votes \
    --region YOUR_REGION_NAME \
    --vpc-connector=quickstart-connector \
    --vpc-egress=all-traffic \
    --set-env-vars DB_NAME=quickstart-db \
    --set-env-vars DB_USER=quickstart-user \
    --set-env-vars DB_PASS=DB_PASS \
    --set-env-vars INSTANCE_CONNECTION_NAME=INSTANCE_CONNECTION_NAME \
    --set-env-vars PRIVATE_IP=TRUE
  2. Cloud Run gkatn가 배포되었다는 확인 메시지가 표시되면 메시지의 서비스 URL 링크를 클릭하여 Cloud SQL에 연결되어 배포된 Cloud Run functions 샘플 앱을 확인합니다.

    배포된 샘플 앱 보기

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. quickstart-instance 인스턴스를 선택하여 인스턴스 세부정보 페이지를 엽니다.
  3. 페이지 상단의 아이콘 표시줄에서 삭제를 클릭합니다.
  4. 인스턴스 삭제 대화상자에서 quickstart-instance를 입력한 후 삭제를 클릭하여 인스턴스를 삭제합니다.
  5. Google Cloud 콘솔에서 Cloud Run functions 페이지로 이동합니다.

    Cloud Run functions로 이동

  6. quickstart-function 서비스 이름 옆의 체크박스를 선택합니다.
  7. Cloud Run functions 페이지 상단에 있는 삭제를 클릭합니다.

선택적인 삭제 단계

Compute Engine 서비스 계정에 할당한 Cloud SQL 클라이언트 역할을 사용하지 않을 때는 이를 삭제할 수 있습니다.

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. Compute Engine 기본 서비스 계정이라는 IAM 계정에 대해 수정 아이콘(연필 모양)을 클릭합니다.
  3. Cloud SQL 클라이언트 역할을 삭제합니다.
  4. 저장을 클릭합니다.

이 빠른 시작을 진행하는 동안 사용 설정된 API를 사용하지 않을 때는 이를 사용 중지할 수 있습니다.

  • 이 빠른 시작 내에서 사용 설정된 API:
    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
  1. Google Cloud 콘솔에서 API 페이지로 이동합니다.

    API로 이동

  2. 사용 중지하려는 API를 선택한 후 API 사용 중지 버튼을 클릭합니다.

다음 단계

Cloud SQL 인스턴스 만들기 자세히 알아보기(필요한 경우)

Cloud SQL 인스턴스의 PostgreSQL 사용자데이터베이스를 만드는 방법 알아보기

가격 책정에 대한 자세한 내용은 PostgreSQL용 Cloud SQL 가격 책정을 참조하세요.

다음에 대해 자세히 알아보기

  • 공개 IP 주소로 Cloud SQL 인스턴스 구성하기
  • 비공개 IP 주소로 Cloud SQL 인스턴스 구성하기

또한 다른 Google Cloud 애플리케이션에서 Cloud SQL 인스턴스에 연결하는 방법을 알아보세요.