AWS DynamoDB

今日はAWSDBサービスの一つであるDynamoDBについてまとめたいと思います。

DynamoDBの特徴はNoSQL型かつキーバリューストアであることです。Dynamoからデータを参照する場合や登録する場合はRDSのようにSQLは使われません。NoSQL型のデータベースのメリットとしては一般的にRDSと比べて高速な処理や、システムの拡張性の高さが挙げられます。Dynamoも例外ではなく毎秒2,000万件を超えるリクエストを処理する能力を持ち、IoTの分野などにも用いられます。

また、DynamoDBはRDSなどと違いサーバーレスサービスであるためユーザーがサーバ管理やパッチの適用を行う必要がなく容量の増設なども自動で行われます。VPCなどから接続する際もS3と同様にエンドポイントゲートウェイ型から接続できるので設定も複雑ではありません。

Dynamoに付属する機能や設定などもDAX、ConsistencyReadなどが存在します。DAXはRDSでいった所のElasticCacheのようなものでDynamo用のインメモリキャッシュになります。DAXにデータをキャッシュしておくことでDynamoのレスポンス速度をさらに早めることが可能になります。デフォルトではDynamDBのデータが変更された場合、自動で複製されるテーブル含めたAZ3箇所の内の2箇所の変更が完了した時点でそのリクエストが完了と見なされます。そのタイミングでDynamoからの読み込みが行われた場合、まだ変更が完了していない1つのテーブルから本来陳腐化されたはずのデータが読み込まれてしまうといったことが起こり得ます。ConsisitencyReadを設定しておくことで3つのテーブル全ての変更が完了した時点でリクエストを完了とするので、データ齟齬が好まれないシチュエーションなどで用いられる機能になります。

今日は以上です。