share facebook facebook2 twitter menu hatena pocket slack

2013.02.21 THU

MoxiでElastiCacheのノードをまとめてみた

鈴木 宏康

WRITTEN BY鈴木 宏康

以前、TwemproxyからElastiCacheに分散(同じキーは同じElastiCacheへ)してみるの記事で、
TwemproxyでElastiCacheのノードをまとめてみたのですが、
今回は、moxi(Moxi Server 1.8)でまとめてみました。

○インストール


# rpm -Uvh http://packages.couchbase.com/releases/1.8.1/moxi-server_x86_64_1.8.1.rpm

○初期起動(/etc/init.d/moxi-server)スクリプトの調整


# diff /etc/init.d/moxi-server /etc/init.d/moxi-server.bak
30,35c30
< MOXI_CLUSTER_CFG="11211=localhost:11211"
<
< # Source Config
< if [ -f /etc/sysconfig/${0##*/} ] ; then
< . /etc/sysconfig/${0##*/}
< fi
---
> MOXI_CLUSTER_CFG=/opt/moxi/etc/moxi-cluster.cfg
37a33,34
> test -f $MOXI_CFG || exit 0
> test -f $MOXI_CLUSTER_CFG || exit 0
45c42
< daemon "/bin/su -c "$DAEMON -d -P $PIDFILE -z $MOXI_CLUSTER_CFG" moxi"
---
> daemon "/bin/su -c "$DAEMON -d -P $PIDFILE -Z $MOXI_CFG -z $MOXI_CLUSTER_CFG" moxi"

○対象ノード(ElastiCache)の設定


# cat /etc/sysconfig/moxi-server
MOXI_CLUSTER_CFG="11211=test.xxxxxx.0001.apne1.cache.amazonaws.com:11211,test.xxxxxx.0002.apne1.cache.amazonaws.com:11211"

○Moxiの起動


# service moxi-server start
Starting moxi server [ OK ]

○設定内容の確認


# echo stats proxy config | nc localhost 11211
STAT 11211:default:config test.bia10i.0001.apne1.cache.amazonaws.com:11211,test.bia10i.0002.apne1.cache.amazonaws.com:11211
END

確かTwenproxyではIPアドレスでの登録になってしまい、DNS名でエンドポイントが提供されるElastiCacheでは、
相性が良くないかと思っていたのですが、Moxiだと上記の通りDNS名での登録も可能なので、Moxiの方が
いいかも知れません。
(細かい検証まではできていません)

○データの登録


# echo -e 'set mykey 0 60 5rnhellor' | nc localhost 11211
STORED

○データの取得


# echo -e 'get mykeyr' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykeyr' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykeyr' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykeyr' | nc localhost 11211
VALUE mykey 0 5
hello
END
# echo -e 'get mykeyr' | nc localhost 11211
VALUE mykey 0 5
hello
END

上記より、同じキーなら同じノードから取得していることがわかります。
また下記にも「ketama」だと記載がありました。

Chapter 4. Moxi with Memcached

When used with standard, classic memcached, Moxi should be
started with different command-line parameters that will make
Moxi use libmemcached (ketama) hashing.

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。