前回は、「Spring Session」と「Spring Data Redis」を使ってセッション情報を共有するアプリケーションを実装し、ローカル環境に構築したRedisにアクセスできるところまで確認しました。今回は、Amazon ElastiCache(Redis用)を実際に構築してみましょう。

Amazon ElastiCache(Redis)の設定

AWSでElastiCacheを構築するにあたっては、下記のように事前にElastiCacheノードを配置するためのVPC(Virtual Private Cloud)を構築しておく必要があります。

あらかじめ構築しておくVPC

VPCの作成については、第4回に詳細な手順をまとめています。そちらの解説で登場するNATゲートウェイやインターネットゲートウェイ、プライベートサブネットは今回必ずしも必要ありませんが、パブリックサブネットだけの構築でも入力内容は変わらないので、適宜参考にしていただければと思います。

また、ElastiCacheはセキュリティグループによってアクセス制御されます。セキュリティ上、VPCネットワーク内からのアクセスのみ受け付ける設定が望ましいため、VPC作成後には、以下の手順に沿ってElastiCacheに割り当てるセキュリティグループ、Amazon ElastiCacheクラスターを作成してください。

セキュリティグループの作成

AWSコンソールの「EC2」サービスから、セキュリティグループメニューを選択して「セキュリティグループの作成」ボタンを押下し、以下の項目を入力します。

■セキュリティグループ名:任意のセキュリティグループ名を入力します。

■説明:セキュリティグループで任意の説明文言を入力します。

■VPC:作成したVPCを選択します。

■セキュリティグループのルール

◆タイプ:カスタムTCPを選択します。
◆プロトコル:TCPを入力します。
◆ポート範囲:Redisのデフォルトポートである6379を設定します。
◆ソース:VPCのCIDRを設定します。

「セキュリティグループの作成」画面

Amazon ElastiCacheクラスターの作成

セキュリティグループを作成した後、AWSコンソールの「ElastiCache」サービスから、「テーブルの作成」ボタンを押下し、以下の項目を入力します。

■クラスターエンジン:Redisを選択します。

■クラスターモードが有効:シャーディングを有効化するクラスターモードを設定します。特にサンプルではシャーディングは必要ないのでここではチェックしません。

■Redisの設定

◆名前:20文字内で任意のRedisクラスタ名を入力します。
◆説明:任意の説明文言を入力します。
◆エンジンバージョンの互換性:最新バージョンを選択します。
◆ポート:デフォルト(6379)を選択します。
◆パラメータグループ:Redisで使用するパラメータグループを指定します。詳細はこちらを参照してください。
◆ノードのタイプ:キャッシュのスペックを選択します。
◆レプリケーション数:リードレプリカの数を指定します。

クラスターエンジンの選択とRedisの設定

■Redisの詳細設定

◆自動フェイルオーバーを備えたマルチAZ:マルチAZ構成にする場合チェックします。
◆サブネットグループ:新規作成を選択します。
◆名前:フェイルオーバーのための複数のサブネット構成に対する任意のグループ名を入力します。
◆説明:任意の説明文言を入力します。
◆VPC ID:作成しているVPCのIDを選択します。
◆サブネット:Redisレプリカを配置するVPCサブネットを複数選択します。
◆優先アベイラビリティゾーン:フェイルオーバーで優先するAZを選択します。

Redisの詳細設定

■セキュリティ

◆セキュリティグループ:上記で作成したセキュリティグループを指定します。
◆保管時の暗号化:Redis内のデータを暗号化する必要がある場合チェックします。
◆送信中の暗号化:Redisとの通信時に暗号化を行う場合チェックします。

■クラスタへのデータのインポート:構築時にデータを設定する場合、S3にデータを配置し、オブジェクトキーを指定します。

■バックアップ

◆自動バックアップの有効化:Redis内のデータをバックアップする場合チェックします。
◆バックアップ保存期間:バックアップの保存期間を設定します。
◆バックアップウィンドウ:バックアップ期間を細かく指定する場合にチェックします。

■メンテナンス

◆メンテナンスウィンドウ:メンテナンス期間を指定する場合にチェックします。
◆SNS通知のトピック:重要なクラスターイベントの通知が送信されるよう設定する場合はトピックを設定します。

セキュリティ/バックアップ/メンテナンス

* * *

以上で、ElastiCacheの作成は完了です。次回はアプリケーションロードバランサーを構築した後、アプリケーションをECSコンテナ化してデプロイし、セッション情報をRedisに共有するよう設定します。

著者紹介


川畑 光平(KAWABATA Kohei) - NTTデータ 課長代理

金融機関システム業務アプリケーション開発・システム基盤担当を経て、現在はソフトウェア開発自動化関連の研究開発・推進に従事。

Red Hat Certified Engineer、Pivotal Certified Spring Professional、AWS Certified Solutions Architect Professional等の資格を持ち、アプリケーション基盤・クラウドなどさまざまな開発プロジェクト支援にも携わる。2019 APN AWS Top Engineers & Ambassadors選出。