ElasticCacheの典型的な利用構成として、下記の3つがあります。
- Stateシェアリングパターン
- DB Cacheパターン
- Multi-AZ
Stateシェアリングパターン
ロードバランサーを使って複数のWebサーバーやAPサーバーを動かしている場合は、障害発生時にステート情報が消失してしまうことがある。
このようなステート情報の消失を防ぐためには、個々のサーバーに情報を格納するのではなく、共有のデータストアにステート情報を持たせるState Sharingパターンが有効です。
AWSではElasticCacheを使って、ステート情報を保持することができます。
個々のサーバーに障害が起きても、ElasticCacheにあるステート情報を参照すれば、正常な状態に復帰することが可能です。
DB Cacheパターン
データベースのパフォーマンス悪化の原因は、ほとんどがデータの読み込みに関することです。
そのため、使用頻度の高いデータをメモリにキャッシュして、ディスクへのアクセス数を減らすことで、データベースの読み込み負荷を軽減できます。
このメモリにキャッシュを利用して、データベースのパフォーマンスを向上させる方法をDB Cacheパターンと呼びますが、AWSではElasticCacheを利用して実現することが可能です。
ElasticCacheは障害対策も施されていますので、効率的が良く障害に強いデータベースを構築できます。
ElasticCacheのMulti-AZを構成
・ElasticCacheのMulti-AZの内容
ElasticCacheには複数のAZ(アベイラビリティゾーン)を使って、障害に対応する機能が備わっています。
キャッシュノードの障害を検知する機能と、プライマリーノードの自動フェイルオーバーを行う機能がありますので、障害が発生しても手動で操作する必要がありません。
ElasticCacheが障害を検知すると、自動的に対応します。
ただし、ElastiCacheでmemcachedを利用する場合は、ノード間のレプリケーションが使えないためにMulti-AZが使えません。
・ElasticCacheのMulti-AZの料金
レプリカノードがフェイルオーバー先のノードとなるためMulti-AZを利用するためには、1ノード構成にかかる費用の2倍以上の費用が必要となります。
本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。
参考文献
- CDP:State Sharingパターン – AWS-CloudDesignPattern
- CDP:Inmemory DB Cacheパターン – AWS-CloudDesignPattern
- Amazon ElastiCache (Redis)のMulti-AZを構成する | Developers.IO
- Amazon ElastiCache (キャッシュ管理・操作サービス) | AWS