このページでは、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 構成をご覧ください。 |
セキュリティとアクセス制御 |
|
プラットフォーム サポート | Memorystore for Memcached には、次のプラットフォームからアクセスできます。 サポートされているプラットフォーム:
|
クライアント ライブラリ | すべての言語の標準的な Memcached クライアント ライブラリがすべてサポートされます。 |
自動検出サービス |
インスタンス内のノードのプログラムによる検出を有効にします。現在、自動検出のサポートは次のクライアントでご利用いただけます。
既存の Memcached クライアントを変更して、自動検出のサポートを追加することもできます。詳細については、自動検出サービスをご覧ください。 Auto Discovery サービスは、AWS Elasticache 自動検出がサポートされるほとんどのクライアントにも対応しています。 |
モニタリング | Memorystore for Memcached には、Google Cloud コンソールでインスタンスをモニタリングする指標とダッシュボードが用意されています。詳しくは、Memcached インスタンスのモニタリングをご覧ください。 |
次のステップ
- Memcached インスタンスを作成する。
- Memorystore for Memcached ネットワーキングを設定する。
- プライベート サービス アクセス接続を確立する。