サーバーレス

App Engine や Cloud Functions から VPC とマネージド Redis に接続する

Google_Blog_Serverless.jpg

※この投稿は米国時間 2020 年 1 月 7 日に、Google Cloud blog に投稿されたものの抄訳です。

App Engine や Cloud Functions でサーバーレス アプリケーションを実行して、Virtual Private Cloud(VPC)のリソースにアクセスできたらいいのに、と思われますか。新しいサーバーレス VPC アクセス サービスなら、それが可能です。

このたびご利用いただけるようになったサーバーレス VPC アクセスでは、Cloud Functions と App Engine(標準環境)の両方から仮想マシンや、Cloud Memorystore Redis インスタンス、その他の VPC リソースにアクセスできます。Cloud Run もまもなくサポートされます。

仕組み

App Engine サービスや Cloud Functions サービスは、VPC が実行される Compute Engine とは異なる論理ネットワーク上に存在します。サーバーレス VPC アクセス コネクタは内部でこれらのネットワークをブリッジします。各リソースが Google Cloud によって完全に管理されているため、ユーザー側の管理は必要ありません。また、顧客レベルとプロジェクト レベルの完全な分離も提供し、一貫性のある帯域幅やセキュリティを実現します。 

サーバーレス VPC アクセス コネクタを使用すると、接続の最小帯域幅と最大帯域幅を 200~1,000 Mbps の範囲で選択できます。コネクタの容量は、構成した最大値までサービスのニーズに合わせてスケールされます(必要に応じて最大スループットを向上させるには、アカウント担当者にお問い合わせください)。

サーバーレス VPC アクセスは VPC 内のリソースに接続できますが、App Engine サービスや Cloud Functions が VPC 内部に配置されません。App Engine サービスはファイアウォール ルールを通じてパブリック インターネット アクセスから保護し、Cloud Functions は IAM を通じて保護する必要があります。また、サーバーレス VPC アクセス コネクタは単一の VPC ネットワークでのみ動作が可能です。共有 VPC は今年からサポートが開始される予定です。

ただし、複数のアプリや関数が同じリージョン内にあって、アプリや関数に使用されるサーバーレス VPC アクセス コネクタを同じリージョン内に作成する場合、単一のコネクタを共有できます。 

サーバーレス VPC アクセスの使用

サーバーレス VPC アクセス コネクタを既存の VPC ネットワークと一緒にプロビジョニングして使うには、Cloud SDK コマンドラインを利用します。既存の VPC ネットワークで有効にする方法は次のとおりです。

  gcloud services enable vpcaccess.googleapis.com
gcloud compute networks vpc-access connectors create my-connector \
--network my-vpc-network-name \
--region us-central1 \
--range 10.8.0.0/28

Created connector [my-connector].

$ gcloud compute networks vpc-access connectors describe my-connector
state: READY

次に、App Engine をご利用の場合、App.yaml を変更してアプリケーションを再デプロイします。

  vpc_access_connector:
  name: "projects/my-project/locations/us-central1/connectors/my-connector"

Cloud Functions 関数でサーバーレス VPC アクセスを使用するには、まず適切な権限を設定してから、vpc- connectorフラグを指定して関数を再デプロイします。

  $ gcloud functions deploy my-function-name \
  --vpc-connector projects/my-project/locations/us-central1/connectors/my-connector

アプリまたは関数の VPC コネクタを作成して構成すると、プライベート ネットワーク IP アドレス(10.0.0.123 など)を介して VM や Redis のインスタンスにアクセスできます。 

使ってみる

サーバーレス VPC アクセスを現在ご利用可能なリージョンは、アイオワ、サウスカロライナ、ベルギー、ロンドン、東京です。他のリージョンでも準備を進めています。サーバーレス VPC アクセス コネクタの使用について詳しくは、Cloud FunctionsApp Engineドキュメントやご利用ガイドをご覧ください。

- By ソフトウェア エンジニア Alina Djamankulova、GCP サーバーレス担当プロダクト マネージャー Matt Soldo