Memorystore for Memcached の概要

このページでは、Memorystore for Memcached サービスの使用方法、主な概念、Memcached を使用するメリットについて説明します。

Memorystore for Memcached は、スケーラビリティに優れた Google Cloud のフルマネージド Memcached サービスです。このサービスは、オープンソースの Memcached 上に構築されており、バイナリ プロトコルと ASCII プロトコルに準拠しています。このサービスは、あらゆる言語で標準の OSS Memcached クライアント ライブラリを使用してアクセスできるため、コードをほとんど変更することなく、既存のアプリケーションを簡単にリフト&シフトできます。

高性能でスケーラブルなウェブ アプリケーションでは、多くの場合、低レイテンシと高パフォーマンスを実現するために、分散型インメモリ データストアが使用されます。Memcached は、このようなアプリケーションの構築に使用される一般的な分散型インメモリ Key-Value ストアです。Memcached の一般的な使用例には、参照データのキャッシュ保存、データベース クエリのキャッシュ保存などがあり、一部にはセッション ストアとしての使用例もあります。

Memcached の詳細については、こちらのオープンソース ソフトウェア Memcached のページをご覧ください。

Memorystore を使用すると、Memcached サービスを簡単にデプロイすることもできます。お客様が Memorystore をデプロイし、Google がサービスを管理するため、お客様はアプリケーションに集中できます。Memorystore は、インストールと管理にかかるオーバーヘッドなしに、Memcached のすべてのメリットを提供します。

主な概念

Memorystore for Memcached を使用すると、フルマネージド Memcached クラスタを作成できます。このサービスを使用する前に、いくつかの重要なコンセプトと用語を理解することが重要です。

  • Memcached インスタンスは、Memcached クラスタの 1 つのインスタンスを表します。インスタンスは、単一のノードまたはノードのコレクションで構成されます。インスタンス内のすべてのノードは、ノードごとに同じメモリを持ち、同じ数の vCPU を持っている必要があります。

  • Memcached ノードは Memcached インスタンスの基本単位です。クラスタを作成する前に、Memcached クラスタの作成に使用するノードの数、ノードあたりのメモリ、ノードあたりの vCPU 数を決定することが重要です。ノードの構成とノード数は、データセットのサイズ、鍵の損失に対する耐性、ワークロードの特性によって異なります。各ノードには IP アドレスとポートがあります。すべてのノードの IP アドレスのリストを手動で取得するか、自動検出サービスを使用します。

  • [ロケーション] では、インスタンスをデプロイするリージョンと、リージョン内のゾーン間でのノードの分散方法を指定できます。

    Memorystore インスタンスの作成時は、まずインスタンスをデプロイするリージョンを選択します。リージョンの選択は重要な考慮事項です。Memorystore インスタンスにアクセスするアプリケーションがデプロイされているのと同じリージョン内にインスタンスをデプロイする必要があります。別のリージョンの Google Cloud リソースから Memorystore インスタンスへのアクセスはサポートされていません。

    すべての Memorystore ノードは、指定されたリージョン内に分散されます。リージョン内では、すべてのゾーンに自動的にノードを分散させるオプションと、ノードを配置する特定のゾーンを選択するオプションがあります。Memorystore が使用可能なゾーン内で最適にノードを分散できるように、ノードを自動的に分散することをおすすめします。アプリケーションのフォールト トレランスを向上させるために、すべてのノードを単一のゾーンにプロビジョニングすることは避ける必要があります。

  • 承認済み VPC ネットワークは、インスタンスが使用する Google VPC ネットワークを指定します。承認済みネットワークはインスタンスの作成中に設定され、後から変更することはできません。Memorystore for Memcached と機能させるには、VPC ネットワークでプライベート サービス アクセス接続を確立する必要があります。承認済み VPC ネットワークにアクセスできるリソースとユーザーだけが、インスタンスにアクセスできます。

  • Memcached インスタンスを作成する前に、Memcached インスタンスで使用する承認済み VPC ネットワークのプライベート サービス アクセス接続を確立しておく必要があります。インスタンスを作成する前に、ネットワーク / セキュリティ チームに連絡して、接続を設定しておくことをおすすめします。プライベート サービス アクセス接続を使用すると、内部 IP アドレスを使用してインスタンスを作成でき、管理者は Memorystore インスタンスで使用する内部 IP アドレス範囲を制御できます。詳しくは、ネットワーキングをご覧ください。

  • 構成では、インスタンス作成中に Memcached 固有の構成を設定でき、またランタイム中に設定を変更することもできます。サポートされている構成のリストについては、Memcache の構成をご覧ください。

  • 自動検出サービスでは、Memcached クライアントがクラスタ内のすべてのノードを検出するプログラミング方法を提供しています。クライアントは定期的にディスカバリー エンドポイントにクエリを送信して、ノード IP アドレスのリストを取得できます。このリストは通常、整合性ハッシュを使用してすべてのノードにキーを配布するために使用されます。自動検出サービスは、インスタンス内のノード数を定期的にスケーリングする環境で特に便利です。詳しくは、自動検出サービスをご覧ください。

次の表に、Memorystore for Memcached で使用できるさまざまな特長と機能の概要を示します。

特長と機能 説明
Memcached バージョン 現在、このサービスではバージョン 1.5.16 がサポートされています。
インスタンスのサイジング インスタンスは最大で 20 ノードを持つことができます。すべてのノードで同じ構成になります。ノードには最低 1 個の vCPU と最大 32 個の vCPU を持つことができます。ノードあたりの最小メモリは 1 GB で、ノードあたりでサポートされている最大メモリは 256 GB です。メモリは 1 GB 単位で指定できます。インスタンスの最大サイズは 5 TB です。
インスタンスのスケーリング ノードの数を増減することで、インスタンスの水平スケーリングが可能となります。ノードの垂直スケーリングを行うには、インスタンスを再作成する必要があります。
Memcached の構成 特定のワークロードに合わせてインスタンスを構成できます。構成のリストについては、Memcached 構成をご覧ください。
セキュリティとアクセス制御
  • インスタンスへのアクセスは、プロジェクトの VPC ネットワークに接続されているクライアントに制限されます。インスタンスが共有 VPC ネットワークを使用している場合、共有 VPC ネットワークのすべてのクライアントがインスタンスにアクセスできます。
  • インスタンス レベルの認証は利用できません。
  • 管理オペレーションは、[アクセス制御] ページに表示される Identity and Access Management のロールを使用して制御されます。
プラットフォーム サポート Memorystore for Memcached には、次のプラットフォームからアクセスできます。

サポートされているプラットフォーム:

サポート対象外:
  • Cloud Run
クライアント ライブラリ すべての言語の標準的な Memcached クライアント ライブラリがすべてサポートされます。
自動検出サービス インスタンス内のノードをプログラムで検出できるようにします。自動検出は現在、次のクライアントでサポートされています。
  • Go

既存の Memcached クライアントを変更して、自動検出のサポートを追加することもできます。詳細については、自動検出サービスをご覧ください。

Auto Discovery サービスは、AWS Elasticache 自動検出がサポートされるほとんどのクライアントにも対応しています。
モニタリング Memorystore for Memcached には、Cloud Console でインスタンスをモニタリングする指標とダッシュボードが用意されています。詳しくは、Memcached インスタンスのモニタリングをご覧ください。

次のステップ