RDS MySQLからAuroraへ移行するべき3つの理由

最終更新日

アイキャッチ

はじめに

AWSのRDS上で実運用されているDB MySQLを別エンジンである、Aurora MySQLに移行した際に感じた話です。

数年前にも別システムでRDS Mysqlのパフォーマンスがあがらず、夢のような速さを売り出していたAuroraを検討したのですが価格が見合わず断念していました。(その時はIOPSを上げて対応しました)

ただ、今回(2020年11月)検討した際に、価格も速度も可用性もあがるような目論見が立てられたので移行を実施し、結果も十分に満足出来ているのでその紹介です。

異論は多数あると思うので本記事は「自分の場合はメリットが多かった」という主観の話です。

RDS MysqlからAuroraへ移行するべき3つの理由の結論

まず移行した方が良いと感じた理由は以下の通りです。

  1. 運用費を抑えられた
  2. DBエンジンの移行がかなり簡単
  3. 下手なRDS MySQLレプリケーション構成よりも性能があがる

1. 運用費を抑えられた

まず、運用費を抑えられた部分について説明します。

前提

  • MySQLのMultiAZでのレプリケーション構成をAuroraの1台構成に変更
  • ただし、AuroraのインスタンスはMySQLのときよりも良いものを選択しています
  • 構成詳細
    • MySQL: t3.largeの2台構成
    • Aurora: r5.largeの1台構成

1台構成にできるのはAuroraではデフォルトでMulti AZかつ複数のレプリケーション構成になっているためです。

どれだけ費用が抑えられたか?

価格の比較はhttps://aws-rough.cc/による名前の通りラフな見積もりですが以下の通りです。

MySQL

  • 31,676円/月
    MySQL_見積もり

Aurora

  • 26650円/月
    Aurora_見積もり

いかがでしょうか?
価格が抑えられるので移行したい気持ちが増したのではないでしょうか?

2. DBエンジンの移行がかなり簡単

次にDBエンジンの移行手順に関してですが、ここが特に感動したポイントでした。
DBの移行というと複雑で考えることが多いイメージでしたが、Aurora移行はほとんど画面をポチポチするだけで完了してしまいました。
画面ポチポチする以外は、ところどころ確認のためにクエリを実行したり、最終的にAuroraにConnection貼れるようにDB接続先を修正したりしたくらいです。

手順の概要

基本、以下の参考URLにあるAWS様の手順にある通り実施で問題はなく、上記の通り個別に気になったところだけクエリを叩いて確認しています。
詳細な手順はAWS様のベストプラクティスを参照されるのが間違いなく良いです。
ここではそこに記載された以外で自分で確認している点を記載します。

参考URL

AWS公式のベストプラクティスです!
RDS for MySQL データベースを Amazon Aurora へ移行するためのベストプラクティス

こちらも参考にしました
RDS for MySQLからAuroraに移行しました

その他確認しているポイント

  1. タイムゾーンの設定
    • show variables like '%time_zone%';
    • 上記をMySQLとAuroraで一致しているかの確認
  2. レプリケーションが正しくできているか
    • show slave status;
    • Seconds_Behind_Master: 0となっていれば全レコードレプリケーションされている
    • その他細々select count(*)してレコード数が一致しているかの確認もしています(簡単すぎてビビる)

その他

最終的なDB接続の切り替えは、DNSではなくソースの接続先を修正しました。
これは接続先の設定が一箇所だったため、DNS設定で制御するほどではないなと感じたためです。
今後オートスケールなど?で必要性が出てきたら考えることにします。

移行に掛かった時間

テスト環境で移行→本番環境で移行
上記で確認含めて2営業日

いかがですか?さらに移行しても良いかな?と思い始めてきてませんか?

3. 下手なRDS MySQLレプリケーション構成よりもAuroraのほうが総合的な性能があがる

こちらはまだ実運用上でメリットが出たエビデンスがあるわけではありません。
ただ、スペック上で以下のようなメリットがあるとなるとAuroraに軍配が上がりやすいのではないでしょうか?

  • スループットが5倍(何基準かはわかっていません)
  • スケールアップ・ダウンが簡単
  • Multi AZによる高可用性

ここの理由については正直紹介するには弱い内容なのですが、今後じっくりと検証していきます。

まとめ

以上、RDS MySQLからAuroraに移行した方が良い3つの理由でした。
Postgresでもスループットの上昇率などは違うものの、同じような話ではありそうなので皆さんの助けになれば幸いです!

ありがとうございました。

stmon19

遊びが一番 人生遊び 好きにまみれてます