#AWSで用意されているDBの種類
- RDS
- DynamoDB
- RedShift
- ElastiCache
- Neptune
- Athena
RDS
- リレーショナルデータベース(RDB)
- 以下のDBエンジンをサポートしている
- Amazon Aurora
- PostgreSQL
- MySQL
- MariaDB
- Oracle Database
- Microsoft SQL Server
Amazon Aurora
- AWSが開発したRDB
- PostgreSQL,MySQLと互換性がある
⇒アプリを変更することなくAuroraにデータ移行でき、さらにこれらのDBエンジンより高スループットらしい。 - 構成
- 3ヶ所のAZにある
- SQL処理を担うデータベースインスタンス(図上側)
- ストレージを担うクラスターボリューム(図下側)
- データベースインスタンスのうち1つ(図のAZa上)は、プライマリデータベースインスタンスと言い、読み取り・書き込みを行う。
- 残り2つ(図のAZb,c上)はAuroraレプリカと言い、読み取りのみを行う。
- 一つのAZにつき2か所のディスクに書き込まれるため、データは合計で6か所に保存される。
⇒障害時のダウンタイムはほぼ無い。
- 図
画像引用:AWS公式 Amazon Aurora DB クラスター
マルチAZ
- 説明
複数のAZにRDSを構築すること。 - 機能
有効にすると、マスターのDBインスタンスを自動で作成し、異なるAZにあるインスタンスにデータを複製する。
⇒耐久性と可用性が向上 - 構築方法
[AWS_22]RDSを冗長構成にする
リードレプリカ
- 説明
- マスターDBと同じDBを構築し、読み取り専用としてRDSを構築したもの。
⇒読み取りスループット向上 - マルチAZやリージョン間で構築できる
- 同期処理は非同期
マルチAZは同期レプリケーションだが、リードレプリカは非同期レプリケーション
- マスターDBと同じDBを構築し、読み取り専用としてRDSを構築したもの。
- 図
画像引用:AWS公式 リードレプリカの使用
DynamoDB
- NoSQL型のデータベース。(NoSQL:非RDBMSの総称)
非構造・半構造データを扱う。- 半構造データ
ログ、センサーデータ、位置情報、設定ファイルなど - 非構造データ
テキストファイル(メモ書き)、音声データ
- 半構造データ
- キーバリュー型データモデル
- NoSQLの代表的なデータモデル
- データはキーとバリューから構成される
⇒RDBのような数値や文字列ではなく、JSONのようなデータもバリューとして格納できる
- マルチAZ
DynamoDBでは、自動で3ヶ所のAZに保存される - 結果整合性モデル
マルチAZにより、3ヶ所への書きこみ完了に時間がかかる。そのため書き込みは時間が経てば反映されるが、読み取りのタイミングによっては書き込んだデータが反映されていないことがある。
その対策として**「Consistent Read」**というオプションがある。このオプションにより、書き込みが反映された最新データを読み取ることができる。
RedShift
- データウェアハウス
- BIツールを利用した大量データの集計・分析ができる
- 実体はノードと呼ばれるコンピューティングリソースの集まり
リーダーノードが処理を受け、コンピューターノードに処理を依頼する。これらの集まりをクラスターという。 - 図
画像引用:データウェアハウスシステムのアーキテクチャ -
クロスリージョンスナップショット
スナップショットを別のリージョンにコピーするように設定すること。
⇒リージョン障害時に復元できる。
ElastiCache
- インメモリデータベース
- メモリ上で処理を実行する
⇒高スループット&低レイテンシー - キャッシュを利用しない一般的なWebサーバでは常にDBにクエリを投げるため負荷がかかる。ElastiCacheを挟むことで、DBの負荷軽減ができる。
- 図
【一般的なWebサーバーのDBクエリ】
Webアプリ→DB
【ElastiCacheのアーキテクチャ】
EC2→ElastiCache→RDS