「AWS Black Belt Online Seminar Amazon DocumentDB」の自分向けメモ
DocumentDB知ってるけど使ったことない......レベルの人向け
ドキュメント指向DBとは
- クライアント、アプリ間はJSON、アプリとDBはテーブルで変換が必要
- JSON-likeで保持することでORマッパーの利用も限定的になる
- クライアントからDBまで一気通貫でデータ連携できる
- 柔軟性のあるスキーマ、インデックス
- Javascriptで表現可能なクエリ
- 開発を高速にする
概要
既存の課題
- セットアップが大変
- 管理が大変
- スケールラビリティ
- セキュリティの担保
- バックアップの整合性
特徴
- 秒間100万リクエスト
- 15台のリードレプリカ
- 数分でスケールアップ
- オートスケーリング
フルマネージド
- 従量課金
- 自動フェイルオーバー
- S3へのバックアップ
- データ冗長
MongoDBとの互換性
- MongoDB driverやツールが利用可能
セキュリティ
- VPC内
- 暗号化
- 最適化されたデフォルト設定値
- 第三者の認証
バックアップ
- 性能影響がないバックアップ
- 最大35日のポイントインタイムリカバリー
- 35日以上はスナップショット取得で保存可能
概要まとめ
- JSON-likeなデータストア
- MongoDBとの互換性
- 高可用性
- 高パフォーマンス
アーキテクチャ
コンピュートとストレージの分離
- 個別にスケールリング可能
6コピーとクオラムによるデータの堅牢性
- 3つのAZに2つずつコピーする
- AZが障害になっても、問題なし
エンドポイント
- クラスタエンドポイント:書き込み用
- リーダーエンドポイント:読み込み用
障害復旧
- 他インスタンスにフェイルオーバー
バックアップ
- S3にバックアップ
- 性能影響のないストリーミングバックアップ
MongoDBの構成と異なり、シャーディングは不要
- 読み込みスケール:15代のリードレプリカ
- 書き込みスケール:インスタンスのスケールアップが容易
- ストレージスケール:64TBまでストレージ自動拡張
使い方
サービス概要
- DBクラスタ
- マスタとリードレプリカをひとめまとめにしたもの
- クラスタエンドポイント
- フェイルオーバーが発生しても常にマスタを参照する
- リーダーエンドポイント
- リードレプリカ群を指し示す
暗号化
- 通信の暗号化
- TLS対応
- セキュリティグループによるアクセス制御
- IAMポリシー
- 保存データの暗号化
- AES-256を使用
- KMSを使用
監査ログ
- Audit logをCloudWatch Logsに直接転送可能
モニタリング
- CloudWatchメトリクスを収集
- クエリチューニングやスケールアウト、アップを判断できる
使い分け
RDSを選ぶ場合
- トランザクションあり
- 金融、認証などの事前に定義されたスキーマに従う
- OSS利用時
DynamoDBを選ぶ場合
- スケーラブル
移行パターン
- ダンプツール
- MongoDB標準ツールだけで可能
- 停止時間は長い
- DMS(Database Migration Service)を活用
- 停止時間は数分レベル
- フルロードが終わるまで時間がかかる
- ハイブリッド
- アプリ停止時間は短い
- 手順は複雑
料金
- インスタンス
- サイズ×時間
- I/Oカウント
- リクエスト数
- ストレージ
- 容量×月
- バックアップ
- 容量×月
まとめ
- DBの選択肢が増える
- クラスタ運用なしに堅牢かつ高速なドキュメント指向DBの利用が可能