おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-データベース-Auroraの概要

今回のテーマ:Auroraの概要

概要

Auroraは、Amazonクラウド時代の新しい分散型リレーショナルデータベースを考慮し提供した新RDSとなります。
特徴は、NoSQL型の分散高速処理とRDSのデータ操作性を両立させております。
また、既存のMySQLと比較し2.5~5倍の性能を保ちつつ商用データベースの1/10の価格で提供する高性能・低コストDBとなります。

例:TPC-Cをr3.8xlargeのAuroraと比較し性能約2.5~5倍

cf)RDSの選択する際Auroraにカーソルが合わされているのはAmazonとして使用することを推奨しているため

特徴

高い並列処理性能によって大量に読み書きをすることに適したDBとなります。
また、要点は以下のようなものがあります。

  • 高い並列処理によるストレージアクセスによってクエリを高速処理することが可能
  • Auroraは大量の書き込みや読込を同時に扱うことが可能
  • データベースの集約やスループット向上が見込まれる
  • すべてクエリが5倍で高速ではなく適用すべき領域を見つけて利用
  • MySQL/PostgreSQLと互換性があり、同じ操作方法とそのコミュニティを利用することが可能

分散型で耐障害性と自己回復性を備えたスケーラブルな新しいタイプのフルマネージド型RDSとなります。
耐障害性/自己回復性とスケーラビリティについては以下のようなものがあります。

耐障害性/自己回復性

  • 3つのAZに2つのコポーを設置可能で合計6つのコピーを保持
  • 過去のデータがそのままS3に継続的にバックアップ
  • リストアも差分適用なく高速
  • どのタイミングでも安定したリストア時間を実現
  • 99.99%の高可用性・高耐久性

スケーラビリティ

  • 10GBから最大64TBを提供するSSDデータプレーンを利用してシームレスに拡張可能
  • Auto-Scaringなどクラウド独自のスケーラブルが可能
  • 最大15のリードレプリカを利用した高速読込が可能

DBクラスタの仮想ボリューム

Auroraは1つのDBインスタンスと1つのDBクラスタボリュームで構成されます。
また、3つのAZにコピーされたクラスタを単一として認識し管理します。

f:id:In-houseSE:20210802075927p:plain

DBクラスタ構成

AuroraはマスタとリードレプリカをまとめたDBクラスタ構成をとります。
概略図としては以下のような構成を取ります。

f:id:In-houseSE:20210802080948p:plain

EC2からDBクラスタへのアクセス方法はエンドポイントから接続します。
書き込み処理の場合は、Aurora Writerをエンドポイントから振り分けし使用します。
読み込み処理の場合は、Aurora Readerをエンドポイントから振り分けし使用します。

f:id:In-houseSE:20210806063053p:plain

マスターが障害などでF/Oした場合は、エンドポイントよりAurora Readerを参照します。

f:id:In-houseSE:20210806063711p:plain

マイグレーション

MySQLPostgreSQLのスナップショットからAuroraへマイグレーションが可能

Auroraマルチマスター

マスターデータベースを複数構築し、Write性能もスケーラブルに構築可能となります。
(2017年~より実装された機能)
概要としては下記の項目があります。

  • どのノードが落ちてもダウンタイムゼロ
  • どのAZが落ちてもダウンタイムがゼロ
  • Write性能のスケーリング

Auroraサーバレス

予測困難なアプリケーションワークロードに対応したAuroraのオンデマンド自動スケーリング構成となります。
概要としては以下の項目があります。

  • 自動的に起動/シャットダウン
  • 自動でスケールアップ/スケールダウン

AuroraグローバルDB

他リージョンに対する高性能なリードレプリカ作成機能となります。
概要としては以下の項目があります。

Auroraのユースケース

大規模なクエリ処理が派生するRDB環境などをAuroraへ移行することが検討材料とします。
検討する観点としては以下の項目があります。

大規模なクエリデータ処理

  • 書き込み量が多くトランザクション量も多い
  • クエリ平行度が高くデータサイズが大きいケースで効果を発揮
  • コネクション数やテーブル数が多いデータベース処理

運用の容易さを活用

  • スケーラビリティの高さやデータ容量が無制限に拡張
  • レプリケーションなどの性能の高さ

今回のテーマは以上です。