はじめに
こんにちは、SCSKの中村です。
今回は、データベースのマネージドサービスについて、試験対策に役立ちそうなポイントをまとめていきたいと思います。各DBマネージドサービスの概要についてはご存じの体で記事を書かせていただきます。
DBの覚えておくべきポイント
DB(リレーショナルデータベース)と非RDBの使い分け
RDBを選択すべきケース
- 厳格なスキーマルールとデータ品質適用が必要
- 大量の読み取り・書き込みのキャパシティは必要なし
- 極度に高いパフォーマンスを必要としないリレーショナルデータセットの場合
- 読み取りは並列可能、書き込みは待ち行列発生の可能性あり
非RDSを選択すべきケース
- データーベースが水平方向にスケールする必要がある(負荷分散、スケールアウト/イン)
- データが従来のスキーマに適していない
- 読み取り・書き込みレートが高く、従来のSQL DBでは予算的に厳しいとき
RDS(リレーショナルデータベース)
①特徴
- 複雑なデータを扱うことが可能(テーブルの関連付け)
- データセットを組み合わせて結合する必要がある
- データに構文ルールを適用する必要がある
- ストレージサイズは最大16TB
- Amazon Auroraを利用する場合はストレージサイズが最大64TB
- 3つのAZ間で6つの方法でデータをレプリケート
- 転送中の暗号化はSSLを利用可能
②特徴のあるサービス
Amazon Aurora
- MySQL・PostgreSQLと互換性あり
- リードレプリカ遅延なし・マスター昇格可。DCレベル障害に強い(※Aurora以外のRDSはリードレプリカは作成できるが最大1分の遅延あり。直接マスターに昇格するのは困難)
Amazon Redshift
- 列型思考でデータウェアハウスの分析基盤に最適
非RDS(NoSQL)
1.Amazon DynamoDB
①特徴
- NoSQLの代名詞
- S3に近い
- テーブルさえ作ればDBを利用可能
- テーブルに対するスループットをパラメータとして指定すれば、必要なマシンリソースをAWSが調達してくれる
- データ要素は属性として保存される
- デフォルトで、SSL/TLSを利用してHTTPSプロトコルが使用される
②適するアプリケーション
- 単純なデータが大量に存在
- 素早く簡単なスケーリングが必要
- 複雑な結合は不要
③ユースケース
- 一時データ(オンラインカート)
- オンラインゲームデータ
④グローバルテーブル
- マルチリージョンにマルチマスターデータベースをデプロイするための完全マネージド型のソリューション
⑤整合性
- 結果整合性
0.5倍の読み込みキャパシティーユニットを使用
アプリケーション設定で整合性利用可能ならベストプラクティス
- 強力な整合性
1倍の読み込みキャパシティーユニットを使用
ただしコストが2倍、動作コストは3倍。
2.Amazon Elasticache
①特徴
- インメモリ型のRedisやmemcachedを利用可
- 高速・一時的なデータの保存に最適
②ユースケース
- キャッシュ
- セッション保持
- ゲームデータ
③RedisとMemcachedの違い
Amazon ElastiCache for Redis
- 高度なデータ構造をサポート
- ゲームや地理空間サービス、キャッシュなど多様なユースケースに対応
Amazon Elaticache for memcached
- シンプルでスケーラブル
- データ集約型アプリケーション向け
3.Amazon Neptune(マネージドグラフデータベースサービス)
特徴
- グラフ型DB
- データの関連付け
データ移行
AWS Database Migration Service(AWS DMS)
- データベースやオープンソースデータベース間での移行をサポート
まとめ
データベースに関して特に覚えておきたいポイントは以上です。
少しでもお役に立てれば幸いです。
以上