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

サポートされているプラットフォーム:
クライアント ライブラリ すべての言語の標準的な Memcached クライアント ライブラリがすべてサポートされます。
自動検出サービス インスタンス内のノードのプログラムによる検出を有効にします。現在、自動検出のサポートは次のクライアントでご利用いただけます。
  • Go

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

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

次のステップ