先日、ElastiCache(Redis)のインスタンスタイプを t2.medium にして運用を開始したのですが、リソース的にかなりの余裕があったので、 t2.micro にスケールダウンすることにしました。
ちなみに、Redis は単一ノードで稼動させていて、レプリケーションやフェイルオーバーを考慮していない構成です。
サービスの運用状況によって、どのように切り替えるかは変わってくると思いますが、幸い、まだ本格稼働していない状況でしたので、15 分程度のサービス停止は OK とし、インスタンスタイプの変更をすることにしました。
他の方法としては、新たに t2.micro の別インスタンスを作成し、アプリ側のエンドポイントを変更するものがあります。
Redis でキャッシュしているデータは、消えてしまってもサービスの運用に影響がない設計にしていたので、この方法が一番無難ではあります。
サービス停止のリスクを極力なくしたい場合は、この方法を選択するのが妥当ですね
インスタンスタイプの変更に落とし穴
早速、インスタンスタイプの変更をしようとメニューを開いてみたのですが、t2.micro が選択肢に表示されずヘルプを参照してみました。
Q: 小さいノードタイプにスケールダウンできますか?
ノードタイプのスケールダウンは現在サポートされていません。
今回はキャッシュの中身が不要なことと、スナップショットを使っての復元は考えなく、とっととインスタンスタイプの変更を行いたいというのを前提で考えています。
よって、スケールダウンができないのであれば、インスタンスを削除して、同じインスタンス名で作り直すのが早そうです。
サービスを気軽に落とせない場合は、こんな発想はもってのほかですが、テスト環境や本格稼働前の環境ならアリです。
インスタンスの削除に 5 分くらい要しましたが、インスタンス名が同じであればエンドポイントも変わらないので、アプリ側は触る必要はありません。