Amazon Aurora MySQL
https://d1.awsstatic.com/webinars/jp/pdf/services/20190424_AWS-BlackBelt_AuroraMySQL.pdf
## RDS の中の選択肢
RDSのプラットフォームとして以下が実装されている
Aurora は3AZ に6コピーを持っており、クォーラムモデルでデータの整合性を取っている。
6つである理由としては1AZがダウンして、生きているデータのうち1つが死んだとしても動き続けるように設計してあるから(1AZ+1コピーの合計3つが死んでも問題ない耐障害性)。
この時クォーラムを効率化するために、どのコードが最新でレイテンシーが少ないかの情報もAuroraは管理している。
この時の保存の単位は10GBごと。そうすることで処理を並列で行うことができるようになりフォーマンスが出る。この単位をProtection Group と言う。
また、6コピーといっても、フルでデータをコピーしている訳ではなく、3つのフルセグメント(データページとログレコード)と3つのテールセグメント(ログレコード)を保持している。実際のデータ量としては3倍ちょっと程度。
## 新機能
- Global Transaction ID support
- Aurora backup billing
- 継続バックアップとスナップショットで使用している容量を確認可能に
- Custom Endpoints
- クラスターエンドポイント
- 読み取りエンドポイント
- オンラインクエリー用カスタムエンドポイント
- 分析クエリー用カスタムエンドポイント
- 対象のエンドポイントでどのリードレプリカに読み取りにいくかが指定可能に。
- Global Database
- リージョン間でまたがってレプリケーションできる
- Aurora serverless
- Serverless Endpoint Provisioning
- モニタリングに応じたスケールアップ・ダウン
- 0までスケールイン
- コンソールからAurora serverless にクエリを投げられる
- Data API(HTTPエンドポイントが利用できる)
- Parallel Query
- クラスターのストップサポート
- Backtrack 特定の時点へと巻き戻す
- Database cloning
- Advanced Auditing
- イベントをタイムスタンプを伴って保持
- Load Data From S3 /Export to S3
- Text
- XML
## 雑感
RDSではデータベースエンジンを複数の中から選択できる。その中にはMySQL やPostgreSQL もある。しかし、RDSの目玉といえばAurora。Aurora は二つのエディションがある。MySQL 互換と PostgreSQL互換。今回はAurora MySQL 互換についてのBlackbelt を読んでみた。
基本的にAurora を勧める内容になっているのだが、クラウド上で、特に素のMySQL を使う理由がないのであればAurora MySQL 互換を使えばいいと言う感じだった。
Aurora Serverless もここ最近に発表されたものであまり事例を聞いてはいないが、0までスケールするので利用しただけ課金になり、キャッシュをうまく使えたりすればかなり安くView をメインで利用するアプリケーションができるのではと感じた。
DBはチューニングに専門の知識が必要で最初の構築も大変だが、Aurora はクラウド上でやるのであれば大部分を解決してくれる印象を持った。