Cloud Run functions のロケーション

Cloud Run functions はリージョナルです。つまり、Cloud Run functions を実行するインフラストラクチャは特定のリージョンに配置され、そのリージョン内のすべてのゾーンで冗長的に利用できるように Google によって管理されます。

Cloud Run functions を実行するリージョンを選択するときは、レイテンシと可用性を第一に考慮してください。一般的には、Cloud Run functions のユーザーに最も近いリージョンを選択しますが、アプリで使用されている他の Google Cloud プロダクトやサービスのロケーションも考慮する必要があります。使用するサービスが複数のロケーションにまたがっていると、アプリのレイテンシだけでなく、料金にも影響します。

Cloud Run functions で利用可能なリージョンを以下に示します。Cloud Run functions のバージョンによって、利用できるリージョンが異なります。表の「サポートされているプロダクトのバージョン」列をご覧ください。

Tier 1 料金設定

次のリージョンでは、Cloud Run functions を Tier 1 の料金設定で利用できます。

リージョン ロケーション 二酸化炭素排出量
asia-east1 台湾
asia-northeast1 東京
asia-northeast2 大阪
europe-north1 フィンランド リーフアイコン 低 CO2
europe-southwest1 マドリッド
europe-west1 ベルギー リーフアイコン 低 CO2
europe-west4 オランダ
europe-west8 ミラノ
europe-west9 パリ リーフアイコン 低 CO2
me-west1 テルアビブ
us-central1 アイオワ リーフアイコン 低 CO2
us-east1 サウス カロライナ
us-east4 北バージニア
us-east5 コロンバス
us-south1 ダラス
us-west1 オレゴン リーフアイコン 低 CO2

Tier 2 料金設定

次のリージョンでは、Cloud Run functions を Tier 2 の料金設定で利用できます。

リージョン ロケーション 二酸化炭素排出量
asia-east2 香港
asia-northeast3 ソウル
asia-southeast1 シンガポール
asia-southeast2 ジャカルタ
asia-south1 ムンバイ
asia-south2 デリー(インド)
australia-southeast1 シドニー
australia-southeast2 メルボルン
europe-central2 ワルシャワ
europe-west2 ロンドン
europe-west3 フランクフルト リーフアイコン 低 CO2
europe-west6 チューリッヒ リーフアイコン 低 CO2
europe-west10 ベルリン
europe-west12 トリノ
me-central1 ドーハ
me-central2 ダンマーム
northamerica-northeast1 モントリオール リーフアイコン 低 CO2
northamerica-northeast2 トロント リーフアイコン 低 CO2
southamerica-east1 サンパウロ リーフアイコン 低 CO2
southamerica-west1 サンティアゴ(チリ)
us-west2 ロサンゼルス
us-west3 ソルトレイクシティ
us-west4 ラスベガス

リージョンを選択

デプロイ時に、関数のリージョンを選択できます。

gcloud

Google Cloud CLI を使用している場合は、--region フラグを使用してリージョンを指定できます。

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

REGION は、上のいずれかのリージョンです。

コンソール

Google Cloud コンソールを使用している場合は、関数を作成してデプロイするときにリージョンを選択できます。

  1. Google Cloud コンソールで、Cloud Run functions の概要ページに移動します。

    Cloud Run functions の概要ページに移動

    Cloud Run functions を有効にしたプロジェクトが選択されていることを確認します。

  2. [関数を作成] をクリックします。

  3. [リージョン] フィールドでリージョンを選択します。

関数をプロジェクト内の別のリージョンにデプロイすることもできますが、関数にリージョンを選択した後でリージョンの変更はできません。

特定のプロジェクトの特定のリージョンで使用する関数には一意の名前を付ける必要があります(大文字小文字が区別されます)。リージョンまたはプロジェクトが異なる場合、関数には同じ名前を使用できます。

デフォルト リージョンの設定

デフォルトのリージョンは、Google Cloud CLI を使用して次のように設定できます。

gcloud config set functions/region REGION

次に例を示します。

gcloud config set functions/region europe-west1

データ所在地

Cloud Run functions では、関数の実行範囲(Scope A Compliance - 関数の実行)でデータ所在地が保証され、特定の関数は関数の呼び出しと実行のためのデータ所在地に使用されます。

このコンプライアンスは、HTTP 関数とイベント ドリブン関数の両方に適用されます。イベント ドリブン関数の場合、Cloud Run functions は、アップストリーム プロダクト(トリガーしているプロダクト)が Cloud Run functions にイベントを配信した時点からデータ所在地に適合します。そのため、アップストリーム プロダクト(Cloud Storage や Pub/Sub など)がデータ所在地に適合していることを確認する必要があります。

リージョン変更のベスト プラクティス

関数を配置するリージョンを変更する必要がある場合は、以下の推奨事項に従ってください。

HTTP 関数

HTTP 関数の場合は、まず HTTP 関数を宛先のリージョン(同じ名前でもかまいません)に再度デプロイし、HTTP リクエストを新しい関数にリダイレクトするように元の関数を変更することをおすすめします。HTTP 関数のクライアントがリダイレクトをサポートしている場合は、HTTP リダイレクト ステータス(301)と新しい関数の URL を返すように元の関数を変更します。リダイレクトにうまく対応できないクライアントの場合は、元の関数から新しい関数へリクエストをプロキシするという方法があります。これを行うには、元の関数から新しい関数に対して新しいリクエストを開始します。最終的には、すべてのクライアントが新しい関数を呼び出すようにします。

イベント ドリブン関数

イベント ドリブン関数では、at-least-once(少なくとも 1 回)のイベント配信セマンティックを採用しています。つまり、状況によってはイベントを重複して受け取る可能性があるため、実装は必ずべき等にする必要があります。関数がすでにべき等になっている場合は、同じイベント トリガーを使用して新しいリージョンに関数を再デプロイし、新しい関数がトラフィックを正しく受け取っていることを確認してから古い関数を削除します。この移行中は、どちらの関数もイベントを受信します。

関数が正しくべき等になっていない場合や、べき等性がリージョンを超えて拡張できない場合は、最初にべき等性を実装してから関数を移動してください。