k4200’s notes and thoughts

Programmer side of k4200

ElastiCache使用時のクライアント設定の注意点

AWS版のmemcachedElastiCache。一度セットアップしちゃえば、使い方は普通の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のコンソールからダウソできる。