AWS版のmemcachedがElastiCache。一度セットアップしちゃえば、使い方は普通のmemcachedとほぼ同じなんだけど、そこはさすが(というか何というか)AWS。AutoDiscoveryという独自の機能もある。詳しくはこの辺を参照。
接続先
AWS ConsoleでElastiCacheのところを見ると、以下の2種類のEndpointがある事に気づくかもしれない。
- Configuration Endpoint
- 各ノードのEndpoint
どちらを使えばいいのかと言うと、前述のAutoDiscoveryを使う場合はConfiguration Endpointを、使わない場合(通常のmemcachedとして使う場合)は各ノードのEndpointを指定する。
ライブラリ
「AutoDiscovery便利だし、それ使えばいいじゃん」って思うけど、AutoDiscoveryを使うには、AWSが提供する専用のクライアントライブラリを使う必要がある。
AutoDiscoveryを使わない場合は、通常のmemcached用のクライアントライブラリを使えばOK。PHPならPECL::memcacheとか。
通常のmemcachedのクライアントライブラリを使って、Configuration Endpointを接続先に指定すると、(複数ノードがある場合)どれかのノードにランダムに接続するみたいで、キャッシュミスが多くなるので注意。
まとめ
- AutoDiscoveryを使う場合、専用クライアントライブラリを使用し、Configuration Endpointを指定する。
- AutoDiscoveryを使わない場合、通常のmemcached用ライブラリを使用し、各ノードのEndpointを指定する。複数ノードの場合は当然複数指定する。
専用クライアントライブラリは、AWSのコンソールからダウソできる。