AWS データベース
データベース
アンマネージド型
スケーリング、対障害性、可用性をお客様が管理
マネージド型
スケーリング、対障害性、可用性は通常サービスに組み込み
RDS DBインスタンス
DBインスタンスクラス
- CPU
- メモリ
- ネットワークパフォーマンス
DBインスタンスストレージ
- マグネティック
- SSD
- プロビジョンド IOPS
マルチAZの高可用性
Amazon RDSによって、スタンバイコピーが別のAZの同VPCに構成される。
トランザクションはスタンバイコピーに同期でレプリケーションされる。
障害が発生するとスタンバイインスタンスに自動的に接続を変更する
RDSの使用が適切な場合
読み込み/書き込み速度が30000 IOPS(Input/Output per second)
(読み取り15000 書き込み 15000)
単一のワーカノード、シャード
不適切な場合
超高速の読み取り/書き込み
(150000回の書き込み/秒)
NoSQLで処理可能なシンプルなGET, PUTのリクエスト
シャーディングとは
Databaseの負荷分散方法の一種
同じテーブルを複数のデータベースに用意して、1つのテーブルに保存していたレコードを分散することで、Databaseに保持されるレコードの量を減らす負荷分散の方法です。
また各DBサーバーのCPUの負荷分散にも役に立ちます。
-
テーブルシャーディング
一つのDatabase内でテーブルを水平分割する -
データベースシャーディング
複数のDatabaseで水平分割する
料金
リソースの料金は実行時間に基づく
また設定したコンピュータのサイズにもよる
購入タイプ
オンデマンド/リザーブドが存在する
DBインスタンスの数
ピーク時の負荷に対応するために複数のDBインスタンスをプロビジョニングして対応
ストレージ
無料枠
アクティブなデータベース かつ ストレージの100%を超えるまでのバックアップストレージ
有料枠
削除されたDBインスタンスのバックアップストレージ
追加ストレージ
リードレプリカ
データベースの規模が大きくなるとアクセスに時間がかかる様になる場合があります。
そのためMySQL, PostgresSQLなどにはデータをリアルタイムにコピーして、別のシステム上にDBを作成し、負荷分散を行う機能が搭載されています。
この機能をリードレプリカという
リードレプリカはRead Onlyでアクセスが多くなると自動でスケールアウトしてくれる
RDSはリードレプリカの機能が存在する。
非同期レプリケーションで必要に応じてマスターに昇格する
読み取りクエリをオフロードしてくれる
DynamoDB
NoSQL
スケーラビリティが水平
DynamoDBの主要なコンポーネント
テーブル、項目、属性
またDynamoDBは2種類のプライマリキーをサポート