Amazon Aurora MySQLのReadReplica(リードレプリカ)でオートスケーリングを試してみた

2017.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今回の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インスタンスタイプを見直して サービス提供に臨むことが良いかと思います。