#RDS(Relational Database Service)
AWSが提供するマネージドRDBサービス。
MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Serverなどから選択できる。
Amazon Auroraは、AWSが独自に開発した、クラウドのメリットを最大限に生かした新しいアーキテクチャのRDS。
RDSは、複数のデータベースエンジンを利用できるが、それぞれのエンジンで提供されている機能のうち、RDSでは使用できない機能もあるので、機能制限をよく確かめる必要がある。
RDSで使えない機能が必要な場合は、EC2インスタンスにデータベースエンジンをインストールして使うなどの検討が必要。
##RDSで使えるストレージタイプ
RDSのデータ保存用ストレージには、EBSを利用。
EBSの中でもRDSで利用可能なストレージタイプは、下記の3つ
- 汎用SSD
- プロビジョンドIOPS SSD
- マグネティック
マグネティックは、過去に作成したDBインスタンスの下位互換性維持のために利用可能。
新しいDBインスタンスを作成する時は、基本的にSSDを選択。
プロビジョンドIOPSは、高いIOPSが求められている場合や、データ容量と比較してI/Oが多い場合に利用。
ストレージの容量は、32TBまで拡張が可能。
拡張は、オンライン状態で実施可能だが、拡張中は、若干のパフォーマンス劣化が見られる。(利用頻度が比較的少ない時間帯に実施したほうがいい)
##RDSの特徴
RDSを利用することで、複雑になりがちなデータベースの運用を、シンプルかつ低コストに実現できる。運用の効率化を図れる。
###マルチAZ構成
1つのリージョン内の2つのAZにDBインスタンスをそれぞれ配置し、障害発生時やメンテナンス時のダウンタイムを短くすることで高可用性を実現するサービス。
注意点
- 書き込み速度が遅くなる:2つのAZ間でデータを同期するため、シングルAZ構成よりも書き込みやこっミットにかかる時間が長くなる。
- フェイルオーバーには60~120秒かかる
###リードレプリカ
通常のRDSとは別に、参照用のDBインスタンスを作成することができるサービス。
利用可能なデータベースエンジンは、Aurora、MySQL、MariaDB、PostgreSQLの4つ。
リードレプリカを作成することで、マスターDBの負荷を抑えたり、読み込みが多いアプリケーションに置いてDBリソースのスケールアウトを容易に実現することが可能。
マスターとリードレプリカのデータ同期は、非同期レプリケーション方式。(リードレプリカを参照するタイミングによっては、マスター側で更新された情報が必ずしも反映されていない可能性がある)
###バックアップ/リストア
####自動バックアップ
バックアップウィンドウと保持期間を指定することで、1日に1回自動的にバックアップ(DBスナップショット)を取得してくれるサービス。
バックアップの保持期間は最大35日。
バックアップからDBを復旧する場合は、取得したスナップショットを選択して新規RDSを作成する。
稼働中のRDSにバックアップのデータを戻すことはできない。
####手動スナップショット
任意のタイミングでRDBのバックアップ(DBスナップショット)を取得できるサービス。
手動スナップショットの取得数は、1リージョンあたり100個まで。
####データのリストア
RDSにデータをリストアする場合は、自動バックアップ及び手動で取得したスナップショットから新規のRDSを作成する。
####ポイントインタイムリカバリー
直近5分前から最大35日前までの任意のタイミングの状態のRDSを新規に作成することができるサービス。
##Amazon Aurora
Auroraでは、DBインスタンスを作成すると同時にDBクラスタが作成される。
DBクラスタは、1つ以上のDBインスタンスと、各DBインスタンスから参照するデータストレージで構成されている。
AuroraのデータストレージはSSDをベースとしたクラスタボリューム。
クラスタボリュームは、単一リージョン内の3つのAZにそれぞれ2つのデータコピーで構成され、各ストレージ間のデータは自動で気に動悸される。
#用語まとめ
###フェイルオーバー
現用系コンピュータサーバ/システム/ネットワークで異常事態が発生したとき、自動的に冗長な待機系コンピュータサーバ/システム/ネットワークに切り替える機能。
###スイッチオーバー
何らかの異常を察知して、人間が手動で切り替えを行うこと。
###レプリケーション
あるコンピュータやソフトウェアの管理するデータ集合の複製を別のコンピュータ上に作成し、通信ネットワークを介してリアルタイムに更新を反映させて常に内容を同期すること。