クライアント様が使いたいということで調べたことメモ。
費用について
- Auroraは最低プランでもメモリ15GBぐらいのプランになるので、現在開発サーバで使っているm3.mediumに比べると3倍ほど。
- 同じr3.largeだと2割ほど高いです。
MySQL Single-AZ
db.m3.medium $0.120/h \10,368/month
db.r3.large $0.285/h \24,624/month
MySQL Multi-AZ
db.m3.medium $0.240/h \20,736/month
db.r3.large $0.570/h \49,248/month
Aurora
db.r3.large $0.35/h \30,240/month
Aurora + リードレプリカ1個
db.r3.large $0.70/h \60,480/month
※Auroraは障害時にリードレプリカのうち1つがマスタになるのでこれでMulti-AZと同じフェイルオーバー運用が可能
Auroraのよいところ
速度はまだ正確にはわからないので、速い、というのを信用することにして、運用面のメリットが大きそうです。
これは少人数のチームでは特に大きなメリットになりそうです。
リードレプリカなしでも障害に強い
- Auroraは常に三箇所のDCで6重のバックアップがあり信頼性が高い
- 落ちても自動復旧(ただし最大15分のダウンタイムは発生する模様)
リードレプリカが強力
- MySQLのリードレプリカと違い、遅延がほぼない
- リードレプリカによるマスタの速度への影響は小さい。Multi-AZは同期レプリケーションのため速度の低下があった。
- リードレプリカは平常時は読み出し専用DBとして使うことでDB負荷を分散できて高速化が可能
- フェイルオーバー。マスターの障害時にレプリカがマスタに昇格することで、Multi-AZと同様にすぐに復旧。データ損失なし。
https://aws.amazon.com/jp/rds/aurora/faqs/#high-availability-and-replication
データ容量が事実上無制限
- RDS MySQLだと容量の変更は時間がかかるしMulti-AZじゃないと長時間のダウンタイムが発生
- Aurora データ量に応じて自動で拡張、しかも最大64TB
- 大量のデータのためにテーブルを分割するシャーディングというテクニックがあるが実装が大変、Auroraはこれを不要にする(という触れ込み
RDS MySQLからの移行がかんたん
MySQLのスナップショットから移行できたりします。
Auroraの残念なところ
- ローカルの開発環境で同じものを使えない
- staging環境は本番適用前の最終確認の意味あいがあるので、本番と同様の構成にしたいものの、最低料金が高め
- VPCが必須。VPC以外から使うならVPCのDNS解決とDNSホスト名の設定を「はい」にした上で、Auroraのpublicアクセスを許可にする必要がある。セキュリティグループの設定もゆるめる。
アプリケーションからの接続
その他参考リンク
【AWS】Aurora に絵文字『utf8mb4』をINSERTできるか試してみた | Developers.IO
スナップショットを使用してRDSをMySQLからAuroraへ移行する | Developers.IO
Amazon Aurora/MariaDB/MySQLの違いを整理してみる #reinvent | Developers.IO
Amazon RDS for Aurora の費用について « サーバーワークス エンジニアブログ
オーロラは雲の上 — RDBのScalabilityとAvailability | Developers.IO
Amazon Aurora で使用する VPC を作成する方法 - Amazon Relational Database Service