タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

Amazon Auroraメモ

クライアント様が使いたいということで調べたことメモ。

aws.amazon.com

費用について

  • 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以外から使うならVPCDNS解決と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