Cloud Functions 위치

Cloud Functions는 리전을 기반으로 합니다. 즉, Cloud 함수를 실행하는 인프라가 특정 리전에 위치해 있으며, 해당 리전 내의 모든 영역에서 중복으로 사용할 수 있도록 Google이 관리합니다.

Cloud Functions를 실행할 리전을 선택할 때 가장 우선해서 고려해야 할 사항은 지연 시간과 가용성입니다. 일반적으로 Cloud 함수 사용자와 가장 가까운 리전을 선택할 수 있지만 앱에서 사용하는 다른 Google Cloud 제품 및 서비스의 위치도 고려해야 합니다. 여러 위치에서 서비스를 사용하면 앱의 지연 시간과 가격 책정에 영향을 미칠 수 있습니다.

Cloud Functions에 사용할 수 있는 리전은 아래에 나열되어 있습니다. 각 Cloud Functions 버전마다 리전 가용성이 다릅니다. 테이블에서 '지원되는 제품 버전' 열을 참조하세요.

Tier 1 가격 책정

Cloud Functions는 다음 리전에서 Tier 1 가격 책정으로 사용할 수 있습니다.

리전 위치 지원되는 제품 버전 CO2(이산화탄소) 배출
asia-east1 타이완 1세대, 2세대
asia-east2 홍콩 1세대
asia-northeast1 도쿄 1세대, 2세대
asia-northeast2 오사카 1세대, 2세대
europe-north1 핀란드 2세대 리프 아이콘 낮은 CO2
europe-southwest1 마드리드 2세대
europe-west1 벨기에 1세대, 2세대 리프 아이콘 낮은 CO2
europe-west2 런던 1세대
europe-west4 네덜란드 2세대
europe-west8 밀라노 2세대
europe-west9 파리 2세대 리프 아이콘 낮은 CO2
me-west1 텔아비브 2세대
us-central1 아이오와 1세대, 2세대 리프 아이콘 낮은 CO2
us-east1 사우스캐롤라이나 1세대, 2세대
us-east4 북 버지니아 1세대, 2세대
us-east5 콜럼버스 2세대
us-south1 댈러스 2세대
us-west1 오리건 1세대, 2세대 리프 아이콘 낮은 CO2

Tier 2 가격 책정

Cloud Functions는 다음 리전에서 Tier 2 가격 책정으로 사용할 수 있습니다.

리전 위치 지원되는 제품 버전 CO2(이산화탄소) 배출
asia-east2 홍콩 2세대
asia-northeast3 서울 1세대, 2세대
asia-southeast1 싱가포르 1세대, 2세대
asia-southeast2 자카르타 1세대, 2세대
asia-south1 뭄바이 1세대, 2세대
asia-south2 인도 델리 2세대
australia-southeast1 시드니 1세대, 2세대
australia-southeast2 멜버른 2세대
europe-central2 바르샤바 1세대, 2세대
europe-west2 런던 2세대
europe-west3 프랑크푸르트 1세대, 2세대 리프 아이콘 낮은 CO2
europe-west6 취리히 1세대, 2세대 리프 아이콘 낮은 CO2
europe-west10 베를린 2세대
europe-west12 토리노 2세대
me-central1 도하 2세대
me-central2 담맘 2세대
northamerica-northeast1 몬트리올 1세대, 2세대 리프 아이콘 낮은 CO2
northamerica-northeast2 토론토 2세대 리프 아이콘 낮은 CO2
southamerica-east1 상파울루 1세대, 2세대 리프 아이콘 낮은 CO2
southamerica-west1 칠레 산티아고 2세대
us-west2 로스앤젤레스 1세대, 2세대
us-west3 솔트레이크시티 1세대, 2세대
us-west4 라스베이거스 1세대, 2세대

리전 선택

배포 중에 함수를 위한 리전을 선택할 수 있습니다.

gcloud

Google Cloud CLI를 사용하는 경우 --region 플래그를 사용하여 리전을 지정할 수 있습니다.

gcloud functions deploy FUNCTION_NAME --region=REGION ...

여기서 REGION은 위에 나열된 리전 중 하나입니다.

콘솔

Google Cloud 콘솔을 사용하는 경우 함수를 만들고 배포할 때 리전을 선택할 수 있습니다.

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

    Cloud Functions 개요 페이지로 이동

    Cloud Functions를 사용 설정한 프로젝트를 선택했는지 확인합니다.

  2. 함수 만들기를 클릭합니다.

  3. 리전 필드에서 리전을 선택합니다.

함수를 프로젝트 내의 여러 리전에 배포할 수 있지만 일단 함수를 위한 리전을 선택하면 이를 변경할 수 없습니다.

특정 프로젝트의 특정 리전에서 사용하는 함수는 고유한 이름(대소문자 구분)이어야 하지만, 다른 리전 또는 프로젝트에서 사용하는 함수의 경우 이름이 동일해도 됩니다.

기본 리전 설정

다음과 같이 Google Cloud CLI를 사용하여 기본 리전을 설정할 수 있습니다.

gcloud config set functions/region REGION

예를 들면 다음과 같습니다.

gcloud config set functions/region europe-west1

데이터 보존

Cloud Functions는 함수 실행 범위(범위 A 규정 준수 - 함수 실행)에서 데이터 상주 보증을 제공하며, 이 함수는 함수 호출/실행에 대한 데이터 상주를 제공합니다.

이 규정 준수는 HTTP 함수와 이벤트 기반 함수에 모두 적용됩니다. 이벤트 기반 함수의 경우 Cloud Functions는 업스트림 제품(트리거 제품)이 이벤트를 Cloud Functions에 전달하는 순간부터 데이터 상주 규정을 준수합니다. 따라서 업스트림 제품(예: Cloud Storage 또는 Pub/Sub)이 자체적으로 데이터 상주 규정을 준수하는지 확인해야 합니다.

리전 변경 권장사항

함수가 배포된 리전을 변경해야 하는 경우, 아래 권장사항을 따릅니다.

HTTP 함수

HTTP 함수의 경우, HTTP 함수를 일단 대상 리전(이름이 동일해도 상관없음)에 다시 배포한 후 HTTP 요청을 새로운 함수로 리디렉션하도록 원래 함수를 변경하는 것이 좋습니다. HTTP 함수의 클라이언트가 리디렉션을 지원하는 경우, 원래 함수가 새로운 함수의 URL에 따라 HTTP 리디렉션 상태(301)를 반환하도록 변경하기만 하면 됩니다. 클라이언트에서 리디렉션을 제대로 처리하지 않는 경우, 원래 함수에서 새로운 함수로 새 요청을 시작하여 원래 함수의 요청을 새로운 함수로 프록시할 수 있습니다. 최종 단계로 모든 클라이언트가 새로운 함수를 호출하는지 확인합니다.

이벤트 기반 함수

이벤트 기반 함수는 최소 1회 이벤트 전송 시맨틱을 사용합니다. 즉, 일부 상황에서는 중복 이벤트를 수신할 수 있으므로, 항상 멱등성을 갖도록 구현해야 합니다. 함수에 이미 멱등성이 있는 경우에는 동일한 이벤트 트리거로 새로운 리전에 함수를 재배포할 수 있으며, 새로운 함수가 트래픽을 제대로 수신하는지 확인한 후 기존 함수를 제거해도 됩니다. 이 전환 중에는 두 함수 모두 이벤트를 수신합니다.

현재 함수에 멱등성이 없거나 함수의 멱등성이 리전 외부로 확장되지 않은 경우에는 먼저 멱등성을 구현한 후 함수를 옮기는 것이 좋습니다.