App Design Center에서 Cloud Run 서비스 구성

Cloud Run은 Google의 확장 가능한 인프라에서 직접 컨테이너를 실행할 수 있게 해 주는 완전 관리형 애플리케이션 플랫폼입니다. 자세한 내용은 Cloud Run 개요를 참고하세요.

이 문서에서는 App Design Center를 사용하여 Cloud Run 서비스를 만들 때 구성할 수 있는 연결 및 매개변수를 설명합니다. 구성 매개변수는 terraform-google-cloud-run Terraform 모듈을 기반으로 합니다.

구성요소 연결

다음 표에는 Cloud Run 서비스에 연결할 수 있는 구성요소와 애플리케이션 및 생성된 Terraform 코드의 결과 업데이트가 포함되어 있습니다.

연결된 구성요소

애플리케이션 업데이트

배경 정보

Secret Manager
  • Cloud Run 서비스가 보안 비밀 데이터를 참조할 수 있습니다.
  • Secret Manager 보안 비밀 데이터 필드는 Cloud Run env_secret_vars 필드에서 참조됩니다.
  • roles/secretmanager.secretAccessor 역할이 Cloud Run 서비스 계정에 추가됩니다.
서비스의 보안 비밀 구성

서비스 계정

  • Cloud Run 서비스는 서비스 계정을 서비스 ID로 사용합니다.
  • roles/run.invoker 역할이 서비스 계정에 추가됩니다.
  • 서비스 계정 이메일과 IAM 정보가 Cloud Run 환경 변수에 추가됩니다.
서비스 간 인증
PostgreSQL용 AlloyDB
  • Cloud Run 서비스가 PostgreSQL용 AlloyDB 인스턴스에 연결할 수 있습니다.
  • PostgreSQL용 AlloyDB 리소스 메타데이터가 Cloud Run 환경 변수에 추가됩니다.
  • PostgreSQL용 AlloyDB roles/alloydb.admin 역할이 Cloud Run 서비스 계정에 추가됩니다.
Cloud Run에서 연결
BigQuery
  • Cloud Run 서비스는 BigQuery 데이터 세트와 상호작용할 수 있습니다.
  • BigQuery 리소스 메타데이터가 Cloud Run 환경 변수에 추가됩니다.
  • BigQuery roles/bigquery.dataEditor 역할이 Cloud Run 서비스 계정에 추가됩니다.
BigQuery 개요

Bigtable

  • Cloud Run 서비스는 Bigtable 인스턴스에서 관리 기능을 실행할 수 있습니다.
  • Bigtable 리소스 메타데이터 정보가 Cloud Run 환경 변수에 추가됩니다.
  • roles/bigtable.admin 역할이 Cloud Run 서비스 계정에 추가됩니다.
Bigtable 개요

다른 Cloud Run 서비스

  • 소스 Cloud Run 서비스는 대상 Cloud Run 서비스로 트래픽을 전송할 수 있습니다.
  • 소스 Cloud Run 서비스의 환경 변수에 대상 Cloud Run 서비스 URI가 포함되어 있습니다.
Cloud Run이란 무엇인가요?

Cloud SQL (MySQL)

  • Cloud Run 서비스는 Cloud SQL (MySQL) 인스턴스에서 데이터를 읽고 쓸 수 있습니다.
  • Cloud SQL 연결 메타데이터가 Cloud Run 서비스에 추가됩니다.
  • roles/cloudsql.instanceUserroles/cloudsql.client 역할이 Cloud Run 서비스 계정에 추가됩니다.
  • Cloud Run 서비스 계정이 Cloud SQL 인스턴스에 IAM 사용자로 추가됩니다.
Cloud Run에서 연결

Cloud SQL(PostgreSQL)

  • Cloud Run 서비스는 Cloud SQL (PostgreSQL) 인스턴스에서 데이터를 읽고 쓸 수 있습니다.
  • Cloud SQL 연결 메타데이터가 Cloud Run 서비스에 추가됩니다.
  • roles/cloudsql.instanceUserroles/cloudsql.client 역할이 Cloud Run 서비스 계정에 추가됩니다.
  • Cloud Run 서비스 계정이 Cloud SQL 인스턴스에 IAM 사용자로 추가됩니다.
Cloud Run에서 연결

Cloud Storage

  • Cloud Run 서비스는 Cloud Storage 버킷의 객체를 관리할 수 있습니다.
  • Cloud Run 서비스 계정 IAM 정보가 Cloud Storage 버킷에 추가됩니다.
  • roles/storage.objectAdmin 역할이 Cloud Run 서비스 계정에 할당됩니다.
Google Cloud 서비스에 연결

글로벌 Cloud Load Balancing 백엔드

  • 부하 분산기는 수신 트래픽을 Cloud Run 서비스로 분산할 수 있습니다.
  • Cloud Run 서비스가 Cloud Load Balancing 서버리스 NEG 백엔드 구성에 백엔드 엔드포인트로 추가됩니다.
Cloud Run을 사용하여 전역 외부 애플리케이션 부하 분산기 설정

Memorystore for Redis

  • Cloud Run 서비스는 Memorystore for Redis 인스턴스에 데이터를 캐시할 수 있습니다.
  • Redis용 Memorystore 연결 정보가 Cloud Run 환경 변수에 추가됩니다.
  • roles/redis.editor 역할이 Cloud Run 서비스 계정에 추가됩니다.
Cloud Run 서비스에서 Redis 인스턴스에 연결

Pub/Sub

  • Cloud Run 서비스는 메시지를 수신하거나 Pub/Sub 주제에 게시할 수 있습니다.
  • Pub/Sub 주제 ID가 Cloud Run 환경 변수에 추가됩니다.
  • roles/pubsub.publisherroles/pubsub.subscriber 역할이 Cloud Run 서비스 계정에 추가됩니다.
  • Cloud Run 서비스가 Pub/Sub 푸시 및 풀 구독 필드에 추가됩니다.
Cloud Run에서 Pub/Sub 사용 튜토리얼

리전 Cloud Load Balancing 백엔드

  • 부하 분산기는 수신 트래픽을 Cloud Run 서비스로 분산할 수 있습니다.
  • Cloud Run 서비스가 Cloud Load Balancing 서버리스 NEG 백엔드 구성에 백엔드 엔드포인트로 추가됩니다.
Cloud Run을 사용하여 리전별 외부 애플리케이션 부하 분산기 설정

리전 Cloud Load Balancing 프런트엔드

  • 부하 분산기의 HTTP 및 HTTPS IP 주소는 Cloud Run 컨테이너에서 실행되는 애플리케이션에서 사용할 수 있습니다.
  • Cloud Load Balancing 주소 메타데이터가 Cloud Run 환경 변수에 추가됩니다.
전달 규칙 개요

Spanner

  • Cloud Run 서비스가 Spanner 인스턴스를 관리할 수 있습니다.
  • Spanner 연결 세부정보가 Cloud Run 환경 변수에 추가됩니다.
  • roles/spanner.databaseAdmin 역할이 Cloud Run 서비스 계정에 추가됩니다.
  • Cloud Run 서비스 계정 IAM 정보가 Spanner 인스턴스에 추가됩니다.
Google Cloud 서비스에 연결

Vertex AI

  • Cloud Run 서비스는 Vertex AI 서비스와 상호작용할 수 있습니다.
  • roles/aiplatform.user 역할이 Cloud Run 서비스 계정에 추가됩니다.
Cloud Run에서 AI 앱 및 에이전트 호스팅

필수 구성 매개변수

템플릿에 Cloud Run 구성요소가 포함된 경우 배포하기 전에 다음 매개변수를 구성해야 합니다.

매개변수 이름

설명 및 제약 조건

배경 정보

프로젝트 ID

Cloud Run 리소스를 배포할 프로젝트입니다.

구성요소 구성

리전

Cloud Run 서비스 배포 위치입니다.

Cloud Run 위치

서비스 이름

name Cloud Run 서비스

선택적 구성 매개변수

다음 매개변수는 선택사항입니다. 고급 매개변수를 표시하려면 구성 영역에서 고급 필드 표시를 선택합니다.

기능

하위 기능

매개변수 이름

설명 및 제약 조건 정보

배경 정보

컨테이너

컨테이너 이름

name 컨테이너 빌드

Container Image

이미지 Cloud Run에 컨테이너 이미지 배포

작업 디렉터리

컨테이너의 작업 디렉터리입니다. 지정하지 않은 경우 컨테이너 이미지에 구성될 수 있는 컨테이너 런타임의 기본값이 사용됩니다.

workingDir

컨테이너에 따라 다름

dependsOn[] 사이드카 배포를 위한 컨테이너 시작 순서 구성

컨테이너 인수

args[] 서비스의 컨테이너 구성

컨테이너 명령어

명령어 서비스의 컨테이너 구성
환경 변수

name 서비스의 환경 변수

value 서비스의 환경 변수
Env Secret Vars

EnvVarSource 보안 비밀 관리

보안 비밀

보안 비밀 보안 비밀 관리

버전

version 보안 비밀 관리
볼륨 마운트

이름

name Cloud Run에서 연결

마운트 경로

mountPath Cloud Run에서 연결
포트

이름

name 서비스에 HTTP/2 사용

컨테이너 포트

containerPort 서비스에 HTTP/2 사용
리소스

CPU

한도 서비스의 CPU 한도 구성

메모리

한도 서비스의 메모리 한도 구성

CPU 유휴

CPU가 요청 중에만 할당되는지 여부입니다.

cpuIdle

시작 CPU 부스트

startupCPUBoost 시작 CPU 부스트 설정
시작 프로브

실패 기준

failureThreshold 서비스의 컨테이너 상태 점검 구성

Initial Delay Seconds(초기 지연 시간(초))

initialDelaySeconds 프로브 구성

제한 시간(초)

timeoutSeconds 프로브 구성

Period Seconds

periodSeconds 프로브 구성

HTTP Get Path(HTTP 가져오기 경로)

경로 프로브 구성

HTTP 가져오기 포트

포트 프로브 구성

HTTP 헤더 이름

name 프로브 구성

HTTP 헤더 값

value 프로브 구성

TCP 소켓 포트

포트 기본 TCP 시작 프로브

GRPC 포트

포트 프로브 구성

GRPC 서비스

service 프로브 구성

활성 프로브

livenessProbe 사용 사례

설명

description 서비스 설명 설정

서비스 계정 만들기

Cloud Run 서비스의 새 서비스 계정을 만듭니다.

작업에 서비스 ID 구성

서비스 계정 프로젝트 역할

새로 생성된 서비스 계정에 부여할 역할입니다. 서비스 계정 만들기를 사용 설정하고 서비스 계정에 대한 입력은 제공하지 않습니다.

작업에 서비스 ID 구성

인그레스

IngressTraffic Cloud Run의 네트워크 인그레스 제한

구성원

서비스를 호출할 수 있는 사용자 및 서비스 계정입니다. 공개 액세스의 경우 allUsers를 입력합니다. 로그인한 Google 사용자의 액세스 권한을 부여하려면 allAuthenticatedUsers를 입력하거나 특정 사용자 및 서비스 계정 목록을 입력합니다. 자세한 내용은 members를 참고하세요.

작업에 서비스 ID 구성

VPC 액세스

커넥터

커넥터 커넥터가 있는 VPC

송신 egress 이그레스 서비스 트래픽 제어

네트워크 인터페이스

네트워크 네트워크 서비스 배포
서브네트워크 서브네트워크 서비스 배포
태그 태그 서비스 배포

Cloud Run 삭제 보호

Terraform이 Cloud Run 작업 및 서비스를 삭제하거나 다시 만드는 것을 방지합니다.

deletion_protection

Prometheus 사이드카 사용 설정

Cloud Run 인스턴스에서 Prometheus 사이드카를 사용 설정합니다.

Prometheus 사이드카를 사용하여 Prometheus 측정항목 작성

볼륨

이름

name 인메모리 볼륨 구성
보안 비밀 보안 비밀 보안 비밀 Cloud Run에서 액세스할 수 있는 보안 비밀 만들기
기본 모드 defaultMode
경로 경로 Cloud Run에서 보안 비밀을 사용할 수 있도록 설정
버전 version Cloud Run에서 보안 비밀을 사용할 수 있도록 설정
Mode(최빈값) 모드 Cloud Run에서 보안 비밀을 사용할 수 있도록 설정
Cloud SQL 인스턴스 인스턴스 instances[] Cloud Run에서 연결
빈 디렉터리 중간 medium 서비스의 인메모리 볼륨 마운트 구성
크기 제한 sizeLimit 서비스의 인메모리 볼륨 마운트 구성
GCS 버킷 버킷 서비스의 Cloud Storage 볼륨 마운트 구성
읽기 전용 readOnly 서비스의 Cloud Storage 볼륨 마운트 구성
NFS 서버 server 서비스의 NFS 볼륨 마운트 구성
경로 경로 서비스의 NFS 볼륨 마운트 구성
읽기 전용 readOnly 서비스의 NFS 볼륨 마운트 구성

서비스 확장

최소 인스턴스 수

minInstanceCount 서비스의 최소 인스턴스 설정

버전

revision Cloud Run 서비스 버전

템플릿 확장

최소 인스턴스 수

minInstanceCount 서비스의 최소 인스턴스 설정
최대 인스턴스 수 maxInstanceCount 최대 인스턴스 정보

암호화 키

encryptionKey 고객 관리 암호화 키 사용

최대 인스턴스 요청 동시 실행

maxInstanceRequestConcurrency 서비스 최대 동시 요청 수

세션 어피니티

sessionAffinity 서비스의 세션 어피니티 설정

실행 환경

executionEnvironment 서비스 실행 환경 정보

트래픽

유형

type 롤백, 점진적 출시, 트래픽 마이그레이션
Percent percent 롤백, 점진적 출시, 트래픽 마이그레이션
버전 revision 롤백, 점진적 출시, 트래픽 마이그레이션
태그 태그 롤백, 점진적 출시, 트래픽 마이그레이션

서비스 라벨

labels 서비스의 라벨 구성
labels 서비스의 라벨 구성

서비스 주석

annotations annotations
annotations annotations

클라이언트

이름

API 클라이언트의 임의 식별자입니다.

고객
버전

버전 식별자의 임의 식별자입니다.

clientVersion

출시 단계

LaunchStage 제품 출시 단계

맞춤 잠재고객

customAudience 서비스를 위한 맞춤 잠재고객 설정하기

Binary Authorization

Breakglass 근거

breakglassJustification Break Glass 사용
기본값 사용 useDefault Binary Authorization 사용

템플릿 라벨

labels 서비스의 라벨 구성
labels 서비스의 라벨 구성

템플릿 주석

annotations annotations
annotations annotations

제한 시간

timeout 서비스의 요청 제한 시간 설정

서비스 계정

serviceAccount 서비스의 서비스 ID 구성