目次
【AWS】DynamoDBとは
DynamoDBとはフルマネージドNoSQLデータベースサービスです。
AWS(Amazon Web Services)が提供するクラウド内のNoSQLドキュメントデータベースサービスで、RDBMSのスケール限界を超えるために開発されました。
DynamoDBはどのような規模でも柔軟に対応でき、高いパフォーマンスを発揮するという特徴があります。
【AWS】DynamoDBの性能11個
AWSのDynamoDBの性能をご紹介します。
DynamoDBは広く利用されているデータベースサービスですが、具体的にはどのような性能を持ったサービスなのでしょうか。
ここではAWSが提供しているDynamoDBの性能11個をご紹介しますので、こちらを参考にDynamoDBについてより理解を深めてみてはいかがでしょうか。
DynamoDBの性能1:無限大に拡張できる
AWSのDynamoDBにはハイスケーラブルで無限大に拡張できるという性能があります。
DynamoDBはAmazon自体が提供しているサービスを技術的に支えられるように設計されているため、高いスケーラビリティを実現した柔軟性の高いデータベースサービスとなっています。
そのため、急なトラフィック増大が発生しても設計を変更せずに無限大に拡張できるKVSを実現しています。
DynamoDBの性能2:NoSQLデータベースサービス
AWSのDynamoDBは完全マネージド型で運用・管理がいらないサービスとなっています。
一般的なデータベースソフトウェアの場合、クラスタ管理などの手間が発生します。しかし、DynamoDBはデータベースソフトウェアではなく、完全マネージド型のNoSQLデータベースサービスとなっているため、さまざまな操作が自動化されています。
そのため、ユーザー自身が面倒な管理をする必要はありません。
DynamoDBの性能3:プロビジョンドスループット
AWSのDynamoDBはプロビジョンドスループットという機能が搭載されています。
プロビジョンドスループットとは、テーブルごとの読み込み(Read)と書きこみ(Write)に対して、必要なスループットキャパシティを割り当てることです。
また、最初の設定よりもアクセス数が変化した場合は、すでにデータベースを運用していても必要な容量を追加して設定変更を行うことができるという特徴があります。
DynamoDBの性能4:パーティショニングによる分散処理
AWSのDynamoDBはパーティショニングによる分散処理を実施できます。
DynamoDBは高速処理のために、分散型アーキテクチャーを採用しています。そのため、テーブルデータをパーティションに細かく分けて割り当てることができます。
また、パーティション管理はDynamoDBによって実施されるため、ユーザー側で操作や管理する必要はありません。
DynamoDBの性能5:ストレージの容量制限なし
AWSのDynamoDBはストレージの容量制限がありません。
DynamoDBのストレージキャパシティには上限が存在しないため、基本的に容量制限がありません。ストレージの容量追加によって費用は発生しますが、増やそうと思えばどれだけでも容量を増やすことができます。
さらに、ストレージのデータ容量を追加するための、ノードの増設といった作業を行う必要もありません。
DynamoDBの性能6:応答速度が低下しない
AWSのDynamoDBは負荷が高くなっても応答速度が低下しません。
DynamoDBは低レイテンシーを意識した設計になっているため、高負荷状態になっても応答速度が低下しません。
たとえば、リアルタイムの株価売買やMMOGなどの大規模多人数参加型オンラインゲームを運営していると、レイテンシースパイクが発生するケースがあります。しかし、DynamoDBであれば、応答速度を低下させずに運用できます。
DynamoDBの性能7:高可用性
AWSのDynamoDBは高可用性を重視した設計になっています。
DynamoDBは高可用性を重視しており、コンポーネントに異常が発生するとシステム全体に障害を発生させるようなSPOFが存在していません。
具体的には、データが3ヶ所のAZ(Availability Zone)に保存される仕組みになっています。そのため、AZのどれかに障害が発生しても他のAZが機能し、システムを継続稼働することができます。
DynamoDBの性能8:信頼性が高い
AWSのDynamoDBは信頼性が高い設計になっています。
前述のとおり、DynamoDBはデータを3ヶ所のAZに保存する仕組みになっており、1つのAZに問題が起きても残りのAZが機能します。
そのため、耐久性や信頼性が担保されています。
DynamoDBの性能9:従量課金制
AWSのDynamoDBの料金体系は従量課金制になっています。
DynamoDBは従量課金制の料金体系となっており、書き込み、読み取りのスループットで決まる時間料金制と、ストレージ利用量によって料金が決まる月額料金制の2種類となっています。
従量課金制は実際に使用した分だけ請求されるため、無駄なコストが発生することはありません。
DynamoDBの性能10:期限切れになった項目を自動削除できる
AWSのDynamoDBは期限切れになった項目を自動削除できます。
DynamoDBにはTTL(Time to Live)という機能があり、レコードごとにデータの有効期限を設定することができます。
また、有効期限を過ぎたデータは自動的にテーブルから削除されるため、ユーザー側で不要なデータを削除するバッチ処理などを用意する必要がありません。
DynamoDBの性能11:Key‐Valueストア
AWSのDynamoDBはKey‐Valueストアになっています。
KVS(Key‐Value Store)とは、KeyとValueを組み合わせた単純な構造になっているデータストアのことで、NoSQLにおけるジャンルの1つです。
KVSは分散データストアなどに利用されており、柔軟にスケールできるという特徴があります。
【AWS】DynamoDBの価格
AWSのDynamoDBは公式サイトで料金計算をすることができます。DynamoDBではテーブル内のデータの読み取りや書き込み、保存、有効化したオプション機能が課金の対象になります。
また、「オンデマンド」と「プロビジョニング済み」という2種類のキャパシティーモードがあるため、それぞれ別個の請求オプションがあります。
読み取りや書き込み回数で料金が変わるため、公式サイトで料金計算を行うとよいでしょう。
【AWS】DynamoDBの整合性モデル
AWSのDynamoDBの整合性モデルについてご紹介します。
DynamoDBの整合性モデルには「Write」と「Read」の2種類があります。最後にDynamoDBの整合性モデルについてそれぞれご紹介しますので、よりDynamoDBについて理解を深めてみてはいかがでしょうか。
Write
Writeの場合、少なくとも2つのレプリカで書き込み完了の確認がとれた時点でAckを行います。
DynamoDBは一部の処理に対して強い整合性モデルを使用しており、Writeでは2つのAZで書きこみ完了となった時点で肯定応答となります。
Read
Readの場合、デフォルトでは結果整合性のある読み込みとなります。
デフォルトの場合は最新の書きこみ結果がすぐに反映されない可能性があります。一方、Consistent Readオプションを付けたリクエストの場合、強い整合性のある読み込みとなっており、Readリクエスト受け取り前までのWriteがすべて反映されたレスポンスを保証します。
【AWS】DynamoDBの性能を理解し活用しよう
AWSのDynamoDBはどのような規模でも自由に拡張できるフルマネージド型のサービスです。
ストレージに容量制限がなく、ユーザー自身で運用・管理する必要がありません。ぜひこの記事でご紹介したDynamoDBの性能やDynamoDBの整合性モデルなどを参考に、AWSのDynamoDBについて理解を深めてみてはいかがでしょうか。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。