AWS

AWSでElastiCache(Redis)を使用する

データベースの負荷を下げるというのは、まだ Web サービスが少なかった 20 年以上も前から叫ばれていたことです。

今では Web サーバのキャッシュやクライアントキャッシュ、そしてメモリキャッシュが当たり前に利用される時代になりました。

最近は、ログインが絡まないようなサイトを作る時は、nginx のページキャッシュに任せることが多いのでメモリキャッシュも多用はしませんが Redis はあると便利です。

例えば、前日分の集計結果がメインコンテンツのページで、集計結果に変更は入らないけど、周辺のコンテンツは時々変更が入るようなページを想定してみます。

その場合、ページキャッシュは 60 分間にして周辺コンテンツの変更に対応し、集計結果は Redis で 24 時間保持するなどそれぞれのキャッシュを効率よく利用する方法もあります。

もちろん、ログインが絡むようなサイトの場合は、セッションの保存先として最有力候補ですね。

今回は、AWS の ElastiCache(Redis)の使い方を紹介します。

Redisのインスタンス作成

ElastiCache のメインページの左メニューから「Redis」をクリックします。

f:id:chatoracat:20181028234732j:plain

インスタンスを作成します。

f:id:chatoracat:20181028234740j:plain

クラスターエンジンの選択

もちろん Redis です。

Memcached も同じメモリキャッシュですが、運用面を考えると扱いにくいです。

Redis の方が Redis クライアント(redis-cli)のコマンドが便利なので、キー操作やバッチ処理に向いていると思います。

f:id:chatoracat:20181028234800j:plain

バージョン選択

バージョンは 4.0.10 のみの選択に限定されますが、マニアックな機能を使わない限り 2.6 系から大きな変化はありません。

気を付けたいのがインスタンスタイプの選択です。

本番運用を見据える場合は別ですが、開発や調査で Redis 使う分には最小スペックで十分です。

なおかつ、複数ノードも不要でしょう。

障害時の調査をするなら、マルチA/Z にしてフェイルオーバーの設定をしたり、特定のノードがダメになった場合の構成にしないといけないですけどね。

デフォルトでそこそこの構成になっているので、試しに使いたい場合は無料枠の範囲内で最小構成にしましょう。

f:id:chatoracat:20181028234822j:plain

これで Redis のインスタンス作成は完了です。

セキュリティグループについて

ここでは VPC のデフォルトのセキュリティグループを設定しましたが、実際に運用する場合は Redis 用のセキュリティグループを作成することをオススメします。

「AmazonLinuxにRedisクライアントをインストールする」でそこについても触れましたのでよければ参考にしてください。

AmazonLinuxにRedisクライアントをインストールするAWS で ElastiCache(Redis)を使おうと思って、そこへ接続するために Redis クライアントをインストールしました。...