Memorystore を使用して Redis キャッシュに接続する

Cloud Run サービス用に分散型インメモリ データ キャッシュを設定するには、Memorystore for Redis を使用します。Memorystore for Redis では、インメモリ Redis データストアを使用して、アプリケーション キャッシュをスケーラビリティ、セキュリティ、高可用性を確保した状態で保存します。Cloud Run サービスから Redis インスタンスに直接接続できますが、サーバーレス VPC アクセス コネクタを設定する追加の手順が必要です。

このページで説明する Cloud Run インテグレーション(プレビュー)を使用すると、サーバーレス VPC アクセス コネクタを設定することなく、Memorystore を使用して Cloud Run サービスを新しい Redis キャッシュにすばやく接続できます。Cloud Run サービスを既存の Redis インスタンスに接続する必要がある場合は、Cloud Run サービスから Redis インスタンスへの接続をご覧ください。

始める前に

  • 統合する Cloud Run サービスがすでにデプロイされていることを確認します。
  • Memorystore の料金ページを確認します。統合で使用した個別のリソースに対して課金されます。

必要なロール

Cloud Run インテグレーションを使用するには、ユーザーまたは管理者が 2 つの異なるプリンシパルに IAM のロールを付与する必要があります。

クリックして Google アカウントに必要なロールを表示

Cloud Run の統合を使用するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを Google アカウントに付与するよう管理者に依頼してください。

クリックしてサービス アカウントに必要なロールを表示

Cloud Run サービスをデプロイするには、自動作成された Compute Engine のデフォルトのサービス アカウントを使用するか、ユーザー管理のサービス アカウントを指定します。サービス アカウントには次のロールが必要です。

サービスを新しい Redis キャッシュに接続する

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

コンソールまたはコマンドラインを使用して、Cloud Run サービスを Redis キャッシュに接続できます。メモリサイズを指定しない場合は、1 ギガバイトのキャッシュが使用されます。

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. [統合を追加] をクリックします。

  5. [Redis - Google Cloud MemoryStore] をクリックします。

    画像

  6. デフォルト値をそのまま使用するか、名前とキャッシュ サイズを必要な値に変更します。

  7. API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。

  8. [リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。

  9. [送信] をクリックし、統合とリソースが作成されるまで待ちます。この処理には最大 15 分を要する場合があります。

コマンドライン

  1. 最新の Google Cloud CLI に更新します。

    gcloud components update
    
  2. 統合を作成します。

    gcloud beta run integrations create \
    --type=redis \
    --service=SERVICE \
    --parameters=memory-size-gb=MEMORY-SIZE
    

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

    • SERVICE: Cloud Run サービス名。
    • MEMORY-SIZE は、必要なキャッシュのサイズ(ギガバイト単位)に置き換えます。デフォルトは 1 GB です。

    必要に応じて、--service-account=SERVICE_ACCOUNT_EMAIL フラグを含めます。

    • SERVICE_ACCOUNT_EMAIL は、サービスのデプロイに使用されるユーザー管理のサービス アカウントのメールアドレス(PROJECT_NUMBER-compute@developer.gserviceaccount.com)に置き換えます。デフォルトのコンピューティング サービス アカウント(SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com)を使用する場合は、このフラグを省略します。

      Cloud Run インテグレーションをデプロイするときに、指定されたサービス アカウントを引き続き使用するには、次のコマンドを実行します。

      gcloud config set runapps/deployment-service-account
      
  3. 最大 15 分待ちます。その間、完全に構成された Redis キャッシュが作成されて接続されます。さらに、ネットワーク構成や Redis キャッシュに必要な環境変数など、新しい Cloud Run リビジョンが作成されます。プロセスが完了すると、次のメッセージが表示されます。

    [redis] integration [redis-xxx] has been updated successfully.
    
    To connect to the Redis instance, utilize the environment variables
    REDISHOST and REDISPORT. These have been added to the Cloud Run service
    for you.

    gcloud beta run integrations describe を使用してステータスを確認できます。

Redis キャッシュ インテグレーションを更新する

インテグレーションを更新すると、そのインテグレーションに関連付けられているすべての Google Cloud リソースが更新されます。Cloud Run サービスから Redis キャッシュ インテグレーションを更新するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 更新するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. Redis キャッシュ インテグレーションを見つけ、[編集] をクリックします。

  5. フィールドの更新が完了したら、[更新] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. コマンドを実行してインテグレーションを更新します。

    gcloud beta run integrations update INTEGRATION_NAME
    

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

    • INTEGRATION_NAME は、Redis キャッシュ インテグレーションの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --parameters キャッシュのメモリサイズ(ギガバイト単位)。
    --service-account サービスの更新時に指定するユーザー管理のサービス アカウントのメールアドレス。このサービス アカウントは、デプロイ時に使用された以前のサービス アカウントをオーバーライドします。

Redis のキャッシュ インテグレーションを表示する

Cloud Run サービスと Redis キャッシュ統合の現在のステータスを表示するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Redis キャッシュ統合を見つけて、[詳細を表示] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、その詳細を表示します。

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME は、Redis キャッシュ統合の名前に置き換えます。

Redis のキャッシュ統合を削除する

インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。

Cloud Run サービスから Redis キャッシュ統合を削除するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 統合を削除するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Redis キャッシュ統合を見つけて、統合の右側にある省略記号アイコンをクリックし、[削除] をクリックします。

コマンドライン

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、インテグレーションを削除します。

    gcloud beta run integrations delete INTEGRATION_NAME
    

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

    • INTEGRATION_NAME は、Redis キャッシュ インテグレーションの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --service-account 削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。

コードで Redis キャッシュにアクセスする

このページで説明する統合が完了すると、環境変数 REDISHOSTREDISPORT が自動的に追加され、Cloud Run サービスコードで使用できるようになります。

Redis を使用したサービスのサンプルコード

Redis を使用するいくつかの言語での Cloud Run と Redis のコードサンプルについては、Memorystore のドキュメントをご覧ください。

制限事項