gRPC 直接接続

直接接続は、 Trusted Cloud by S3NS クライアント ライブラリと Cloud Storage の間で高パフォーマンスの認証済み直接 gRPC ネットワーク接続が可能になる接続ソリューションです。これにより、レイテンシと接続オーバーヘッドが削減されます。gRPC を使用して直接接続で Trusted Cloud by S3NSに接続すると、サポートされている Trusted Cloud by S3NSクライアント ライブラリを介して開始されたリクエストは、Google Front End(GFE)をバイパスして Cloud Storage に直接転送されます。

直接接続は、Compute Engine 仮想マシン(VM)から行われたリクエストでのみ使用できます。

直接接続の要件

サポートされている Cloud Storage クライアント ライブラリを使用して Cloud Storage に接続する場合、直接接続はデフォルトで有効になりますが、次の条件がすべて満たされた場合にのみ使用可能になります。

  • Cloud Storage とやり取りする Compute Engine VM には、サービス アカウントに権限がない場合でも、関連付けられたサービス アカウントが必要です。このサービス アカウントは、Application Layer Transport Security のハンドシェイク プロセスで Compute Engine VM を表すために使用されます。

  • Cloud Storage バケットとやり取りする Compute Engine VM は、バケットと同じ場所に配置する必要があります。たとえばバケットが us-central1 にある場合、VM は us-central1-a に配置できます。

  • ルートファイアウォール ルールにより、IPv4 トラフィックは 34.126.0.0/18 に到達し、IPv6 トラフィックは 2001:4860:8040::/42 に到達します。また、トラフィックがエンドポイント storage.googleapis.com:443directpath-pa.googleapis.com:443 に到達できるようにする必要があります。

    これらのエンドポイントに接続できるかどうかを確認する方法については、ネットワーク構成を確認するをご覧ください。ルートの設定については、ルートの構成をご覧ください。

Google Cloud CLI を使用して接続を確認する

Google Cloud CLI では、2 バイトのオブジェクトをバケットにアップロードしてから削除することで、バケットの直接接続の診断をテストできます。このセクションでは、Google Cloud CLI を使用して直接接続の診断テストを実行する方法について説明します。

始める前に

  1. バケットに対する次の IAM 権限があることを確認します。これらの権限は、ストレージ オブジェクト ユーザー(roles/storage.objectUser)ロールを使用して付与できます。

    • storage.objects.create
    • storage.objects.delete
    • storage.objects.get
  2. gcloud alpha storage diagnose コマンドは、Google Cloud CLI バージョン 531.0.0 以降でのみ使用できます。このコマンドを使用するには、最新バージョンの Google Cloud CLI にアップグレードすることをおすすめします。

診断を実行する

直接接続が利用可能かどうかを確認するには、引数 --test-type=DIRECT_CONNECTIVITY を指定して gcloud alpha storage diagnose を実行します。

gcloud alpha storage diagnose --test-type=DIRECT_CONNECTIVITY gs://BUCKET_NAME

次のように置き換えます。

  • BUCKET_NAME: バケットの名前。例: my-bucket

接続が確立すると、次のようなレスポンスが返されます。

Using my-bucket bucket for the diagnostic tests.
Bucket location : US
Bucket storage class : STANDARD
Running diagnostic: Direct Connectivity Diagnostic...
WARNING: This diagnostic is experimental. The output may change, and checks may be added or removed at any time. Please do not rely on the diagnostic being present.
Finished running diagnostic: Direct Connectivity Diagnostic
Generating diagnostic report...
NAME
Direct Connectivity Diagnostic
    ┌────────────────────────────┬─────────────────────────────────────────────────────────────────────────┬──────────┐
    │            NAME            │                           PAYLOAD_DESCRIPTION                           │  RESULT  │
    ├────────────────────────────┼─────────────────────────────────────────────────────────────────────────┼──────────┤
    │ Direct Connectivity Upload │ Able to upload object to bucket using Direct Connectivity network path. │ Success. │
    └────────────────────────────┴─────────────────────────────────────────────────────────────────────────┴──────────┘

ネットワーク構成を確認する

Google Cloud CLI を使用して直接接続を確認しているときに Unable to connect to Traffic Director エラーが発生した場合は、次の手順に沿って、ネットワーク構成で VM から必要なエンドポイントへのトラフィックの通過が許可されていることを確認します。

直接接続には、directpath-pa.googleapis.com:443storage.googleapis.com:443 でホストされているサービスが必要です。サービスに接続できるかどうかを確認するには、directpath-pa.googleapis.com:443 または storage.googleapis.com:443 に curl 呼び出しを行います。例:

curl directpath-pa.googleapis.com:443

接続が確立すると、エラーなしで空のレスポンスが返されます。

curl: (52) Empty reply from server

接続できない場合は、次のようなエラーが返されます。

curl: (56) Recv failure: Connection reset by peer