AWS DynamoDBとは
AWS DynamoDBは、フルマネージド型のNoSQLデータベースのサービスです。
NoSQL(非リレーショナルデータベース)とは、「キー」と「値」の組み合わせのデータを格納できるKey-Value型データベースです。
AWSの他のサービスであるAWS RDS(リレーショナルデータベース)と比較すると、AWS DynamoDBの方が読み込み書き込みが速いというメリットがあります。しかし、AWS RDSのように複雑なクエリ(処理条件)を指定することができないデメリットがあります。
また、Amazon DynamoDBには、テーブルの読み込み/書き込みキャパシティーモードが2つあります。
- オンデマンドキャパシティモード
- プロビジョニング済みキャパシティーモード(デフォルト、無料利用枠の対象)
Amazon DynamoDBのオンデマンドキャパシティーモードとプロビジョニング済みキャパシティーモードはそれぞれ以下の利用用途で使い分けます。
【オンデマンドキャパシティーモードの利用用途】
- 未知のワークロードで新規テーブルを作成する
- アプリケーショントラフィックが予測できない
- 使った分のみ支払う方式の方が都合が良い
【プロビジョニング済みキャパシティーモードの利用用途】
- アプリケーショントラフィックが予測できる
- トラフィックが一定または徐々に変化するアプリケーションを実行する
- 必要なキャパシティーを予想してコストをコントロールできる
Amazon DynamoDBのグローバルテーブルとは
Amazon DynamoDBグローバルテーブルとは、複数のリージョンにアクティブなAmazon DynamoDBのデータベースを稼働するためのマネージド型のソリューションです。
グローバルテーブルを用いることで以下のメリットがあります。
【グローバルテーブルのメリット】
- ・更新されたデータは1秒以内に同じグローバルテーブル内のレプリケーション(複製)されるため、データの整合性が保つことができます
・複数のリージョンで動作できるため、可用性と耐久性が保つことができます
AWS DynamoDBの料金(オンデマンドキャパシティーの料金)
AWS DynamoDBのオンデマンドキャパシティーとプロビジョニング済みキャパシティーモードで料金の設定が少し異なります。
ほとんどの項目が同じですので、今回は例としてオンデマンドキャパシティーの料金を記載します。プロビジョニング済みキャパシティーモードの料金を確認したい場合は、以下のAWS公式サイトをご確認ください。
AWS DynamoDBを構築しているAWSのリージョンによって料金が変わります。
(1) DynamoDBテーブルへの読み込み/書き込みリクエスト
テーブルへのデータを書き込み、及びテーブルからデータを読み込みのリクエスト数に応じて料金が発生します。
(2) データストレージ
ストレージのデータのサイズに応じて、料金が発生します。
(3) バックアップと復元
DynamoDBのテーブルのバックアップと復元をする場合は、テーブルのデータサイズに応じて料金が発生します。
(4) グローバルテーブル
DynamoDBグローバルテーブルにオンデマンドキャパシティーモードを選択している場合、標準書き込みリクエスト単位ではなく、レプリケート書き込みリクエスト単位で計算されます。
(5) Amazon Kinesis Data Streamsの変更データキャプチャ
Amazon Kinesis Data Streams(KDS)とは、大規模にスケーラブルで持続的なリアルタイムのデータストリーミングサービスです。
Amazon Kiinesis Data StreamsとDynamoDBを連携する場合、書き込みごとに1つの変更データキャプチャ単位で料金が掛かります。
(6) AWS Glue Elastic Viewの変更データキャプチャ
AWS Glue Elastic Viewsとは、SQLを使用して複数のデータストア間でデータを結合および複製するサービスです。
AWS Glue Elastic ViewsとDynamoDBを連携する場合、書き込みごとに1つの変更データキャプチャ単位で料金が掛かります。
(7) Amazon S3へのデータエクスポート
DynamoDBのバックアップからAmazon S3にデータをエクスポートできます。
バックアップが作成された特定の時点でのDynamoDBテーブルのサイズに応じて料金が発生します。
(8) DynamoDB Accelerator(DAX)
DynamoDB Accelerator(DAX)とは、DynamoDBのレスポンス時間を高速化するフルマネージド型のインメモリキャッシュのサービスです。
DAXキャパシティーに対して時間単位で料金が掛かります。
(9) DynamoDBストリーム
DynamoDBストリームからのデータの読み込みに対し、読み込みリクエスト単位での料金が掛かります。
(10) データ転送
DynamoDBから他のリージョンがあるAWSサービスに対して通信(アウトバウンド通信)する場合にデータ転送量に応じて料金が発生します。
DynamoDBへの通信(インバウンド通信)や、同じリージョン内におけるAWSの他のサービスと通信する場合は料金が掛かりません。
AWS DynamoDBの料金の詳細については、以下のAWSの公式サイトをご確認ください。
AWS DynamoDBのオンデマンドキャパシティーとプロビジョニング済みキャパシティーモードの両方の料金が記載されています。
AWSに関する記事
AWSについての関連記事は以下の通りです。
必要に応じて、ご確認ください。