
Amazon Aurora MySQLのReadReplica(リードレプリカ)でオートスケーリングを試してみた
今回のre:inventに先立ってAurora MySQLのReadReplicaでオートスケーリングが実装されておりました。 常々、「EC2にあるオートスケーリングがRDSにも来たらいいのに...」と考えていたので吉報です。 サクッと実装出来たので試してみました。
作業概要
- RDSインスタンス、ReadReplicaを起動
- クラスターアクションからAutoScalingポリシーを追加
RDSを起動する
まずは通常の手順でRDSインスタンスを起動します。
追えてなかったのですが、インスタンスを起動する前に新しいRDSコンソールに変更します。
(通常のコンソール画面からクラスターアクションを選択する時に新RDSコンソールに変更されます)
左ペインのクラスターを選択します。
ページ下部に「AutoScalingポリシー」と「AutoScalingアクティビティ」が表示されます。
「AutoScalingポリシー」の追加を選択します。
AutoScalingポリシーの設定画面が表示されます。
今回は「Auroraレプリカの平均アクティブ接続数」を「5」で指定、インスタンス数は3としました。
無事、AutoScalingポリシーが追加されました。
それではEC2からAuroraへ接続してみます。
AutoScalingが実行され、ReadReplicaが作成(スケールアップ)されました。
また、この後Auroraへの接続を全て切ることでReadReplicaが削除(スケールイン)まで実行されました。
最後に
今回のAutoScalingは嬉しい機能追加でした。 ですが、EC2と同じようにインスタンスのスケールアップは使用可能まで時間がかかります。 「ReadReplicaが増えたタイミングではもうピークが終わってた...」な状況になるのは非常に悲しいので、 予め負荷がかかることが想定されるイベントに備えてReadReplicaの追加やDBインスタンスタイプを見直して サービス提供に臨むことが良いかと思います。