こんにちは、技術2課の紅林です。
わたしは趣味で卓球をやっているのですが、この前ダブルスの試合に学生の頃コンビを組んでいた相方と出場しました。わざわざ静岡から大阪まで来てくれたこともあり(しかも始発、終電の日帰り!)、下部のリーグですが何とか入賞することができました。学生の頃やっていたスポーツも、大人になってからやると、またさらに面白かったりするものですね。
さて、今回は、ElastiCache for Redisでエンドポイントを変更せずにスケールダウンさせる方法をご紹介します。
はじめに
構築後にオーバースペックであることが分かったり、検証用途に構築したものを検証が一段落付いたので、一旦低スペックで環境を置いておきたい場合等、リソースのスケールダウンを行うことがあると思います。
ただし、ElastiCacheでは、現在ノードのスケールダウンがサポートされておりません。
Q: 小さいノードタイプにスケールダウンできますか? ノードタイプのスケールダウンは現在サポートされていません。
そこで、取得したノードのスナップショットからリストアすることでノードタイプのスケールダウンを行います。ただし、そのまま実施しただけではエンドポイントが変更されてしまいます。アプリケーションが構築済である場合、ElastiCacheのエンドポイントは変更させたくない場合があると思います。以下では、ElastiCacheのエンドポイントを変更せずにスケールダウンさせる手順をご紹介します(こちらの記事のTipにも以下のように言及がありますが、今回その実施手順のご紹介となります)。
レプリケーショングループが作成または復元中に使用不可になっても構わない場合は、アプリケーションのエンドポイントの更新を不要にすることができます。その場合は、スナップショットの作成直後に古いレプリケーショングループを削除し、古いレプリケーショングループの名前を新しいレプリケーショングループの名前として再利用します。
Redis レプリケーショングループのスケールダウン - Amazon ElastiCache
手順
それでは、手順を追ってみましょう。
0.前提
- スケールダウン対象のレプリケーショングループを作成済であること
- リストア予定のノードのCache Cluster IDと、レプリケーショングループのReplication Group IDを控えていること
1.スナップショットの作成
「Cache Clusters」タブの画面からプライマリノードを選択し、「Backup」を押下します。表示されたダイアログで、任意のスナップショット名を入力し、「Create Snapshot」を押下します。
2.レプリケーショングループの削除
「Replication Groups」タブの画面から、該当のレプリケーショングループを選択し、「Delete」を押下し、レプリケーショングループを削除します。
3.キャッシュノードの作成
先ほど作成したスナップショットからキャッシュノードをリストアします。「Snapshots」タブの画面から先ほど取得したスナップショットを選択し、「Restore Snapshot」を押下します。表示されたダイアログに、先ほど控えたCache Cluster IDを入力し、変更対象のインスタンスタイプを選択し、「Launch Cache Cluster」ボタンを押下します。
4.レプリケーショングループの作成
「Cache Clusters」タブの画面でノードのリストアが完了したことを確認したら、Replication Groupsタブの画面で「Create Replication Group」を押下します。表示されたダイアログで、先ほどリストアしたノードを選択し、控えておいたReplication Group IDを入力し、「Create」を押下します。
レプリケーショングループの作成が完了したら、内容を確認してみましょう。インスタンスタイプが変更されて、プライマリエンドポイントやリードレプリカのエンドポイントも変更前と同一であることが分かると思います。
おわりに
今回、ElastiCache for Redisをエンドポイントの変更無しにスケールダウンする手順をご紹介しました。スポーツは怪我の無いよう、楽しみましょう。