Cloud Run functions のロケーション(第 1 世代)

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

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

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

Tier 1 料金設定

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

リージョン 場所 二酸化炭素排出量
asia-east1 台湾
asia-east2 香港
asia-northeast1 東京
asia-northeast2 大阪
europe-west1 ベルギー リーフアイコン 低 CO2
europe-west2 ロンドン
us-central1 アイオワ リーフアイコン 低 CO2
us-east1 サウスカロライナ
us-east4 北バージニア
us-west1 オレゴン リーフアイコン 低 CO2

Tier 2 料金設定

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

リージョン 場所 二酸化炭素排出量
asia-northeast3 ソウル
asia-southeast1 シンガポール
asia-southeast2 ジャカルタ
asia-south1 ムンバイ
australia-southeast1 シドニー
europe-central2 ワルシャワ
europe-west3 フランクフルト リーフアイコン 低 CO2
europe-west6 チューリッヒ リーフアイコン 低 CO2
northamerica-northeast1 モントリオール リーフアイコン 低 CO2
southamerica-east1 サンパウロ リーフアイコン 低 CO2
us-west2 ロサンゼルス
us-west3 ソルトレイクシティ
us-west4 ラスベガス

リージョンを選択

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

gcloud

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

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

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

Console

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

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

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