元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

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