Amazon ElastiCacheでキャッシュサーバを作成する方法

Amazon ElastiCacheでキャッシュサーバを作成する方法を勉強したのでメモしておく。
Amazon ElastiCacheでは,エンジンとしてmemcached,もしくはRedisを選択することができ,各キャッシュサーバをクラスタリングして運用することができる。ここでは,クラスタリングされた各キャッシュサーバをノードと呼ぶ。
 

キャッシュクラスタを作成する

AWS Management Consoleにログインしたら,ElastiCacheを選択する。
 
画面右上のメニュー(アカウント管理メニューの隣)から使用するリージョンを選択する。今回はAsia Pacific (Tokyo)を選択する。
 
Launch Cache Clusterを選択し,キャッシュクラスタの作成画面に入る。
 

CACHE CLUSTER DETAILSフェイズ

キャッシュクラスタの詳細情報を入力する。
 

入力項目 詳細
Name キャッシュサーバのクラスタに付けたい名前を入力する。
Engine エンジンとして使用するソフトウェアを選択する。memcached,もしくはredisを指定することができる。
Cache Port 使用するポート番号を指定する。通常はデフォルトのままでもよい。
Engine Version エンジンとして使用するソフトウェアのバージョンを指定する。デフォルトのままでもよい。
Number of Nodes エンジンがmemcachedの場合,クラスタ内で起動するノードの数を入力する。エンジンがredisの場合は入力する必要がない。その理由は,memcachedはレプリケーションをサポートしていないので,「読み取り性能の向上」をクラスタリングで実現しているのに対し,redisはレプリケーションをサポートしているので,クラスタリングをする必要自体が無いためだ。※redisのレプリケーション設定はメニューのReplication Groupsから行うことができる。
Preferred Zone アベイラビリティーゾーンのクラスター版。デフォルトのままでもよい。
Node type 使用するノード(エンジン)のスペックを選択する。
Cache Subnet Group VPCを使用している場合は,指定する必要がある。
Topic for SNS Notification 関連事項で何かがあった場合,指定されたメールアドレスに通知する。通知が必要ない場合は,Disable Notificationsを指定する。
Auto Minor Version Upgrade 指定したエンジンにマイナーバージョンのアップデートが行われた場合に,アップデートを自動的に適用するかを指定する。

 
各項目を入力し終わったら,Nextを選択する。
 

ADDITIONAL CONFIGURATIONフェイズ

キャッシュクラスタの追加情報を入力する。
 

入力項目 詳細
Cache Security Group(s) どのEC2インスタンスからのアクセスを許可するかを設定することができる。Cache Security GroupにEC2のSecurity Groupを登録することで,そのSecurity Groupを使用しているEC2インスタンスからのアクセスを許可することができる。デフォルトのCache Security Groupでは,基本的にアクセスは許可していないので,新たにCache Security Groupを作成する必要がある。
Cache Parameter Group エンジンに使用されるパラメータを設定することができる。デフォルトの状態でも問題ないが,運用するアプリケーションに合わせてチューニングすることが望ましい。
Maintenance Window ElastiCacheのメンテナンスが行われる時間を設定することができる。このメンテナンスは避けることができない。このメンテナンス中はDBエンジンのパッチ適用などが行われるので,メンテナンス中はサービスが停止する可能性がある。そのため,アクセスが少ない時間帯に設定することが望ましい。サービスが停止した場合はキャッシュしていた内容が消失する。

 
各項目を入力し終わったら,Nextを選択する。
 

REVIEWフェイズ

設定を確認し,Launch Cache Clusterを選択する。
 

補足

Amazon ElastiCacheのとっつきにくさは,エンジンの仕様の違いが大きいと思うので,以下にmemcachedとRedisの差異を挙げておく。

memcached Redis
負荷分散 クラスタリングを行うことで,コンシステント・ハッシングによって負荷分散する。 レプリケーションによって負荷分散する。リードレプリカを複数のアベイラビリティゾーンに配置することで高可用性も実現可能。
原子性 サポートされていないが,CAS操作によって実現可能。 サポートされている。
一貫性 サポートされている。 サポートされている。
独立性 不明。おそらくサポートされていない。 不明。おそらくサポートされていない。
永続性 サポートされていない。 Amazon ElastiCacheではサポートされていないが,EC2に配置することでRedisのスナップショットやAppend Only Fileを利用できるので実現可能

 
 
以上
 
 
参考
書籍 NoSQLデータベースファーストガイド
ACID (コンピュータ科学) – Wikipedia
Amazon RDSで仮想DBインスタンスを作成する
RDSインスタンスの設定を変更する
Amazon RDSによるレプリケーションについて理解する | Developers.IO
第1回 データベース・クラスタの概要 | Think IT
ElastiCache for redisを本番導入してみました – SSSSLIDE

Article written by

コメントを残す