近年、インターネット広告やゲーム、ショップなど非常に多くのユーザーのニーズに対応し、データ処理を迅速に行うことが多くのビジネスで求められています。
言い換えると、このようなデータ処理の速さに長けている企業が急成長しています。
そして、データ処理を効率的に行うために活用されるサービスの一つに、Amazon DynamoDBが挙げられます。
今回はサービス概要だけでなく、その特徴や他サービスとの違いについてご紹介します。
Amazon DynamoDBの概要
AWS(アマゾンウェブサービス)とは、世界で最も多くの企業に採用されているクラウドプラットフォームです。
そしてAmazon DynamoDBとは、大量のデータ管理を効率的に行うためにAWSが提供しているサービスの一つです。
Amazon DynamoDBを一言で表すと、完全マネージド型で運用管理がいらないNoSQLデータベースサービスとなります。
NoSQLとは?
そもそもNoSQLとは何か、という点ですが、こちらはデータベースの分類を表します。
従来のデータベースはExcelでイメージされるような、データを表形式で管理するデータベースでした。これをリレーショナルデータベース(RDBMS)と言います。
対してNoSQLとは、上記のようなデーターベースでないものを指します。
素早い応答速度
続いてAmazon DynamoDBの特徴をいくつかご紹介したいと思います。
まず、特徴の一つに応答速度が挙げられます。
Amazon DynamoDBは、規模に関係なく一貫して数ミリ秒台のパフォーマンスを実現することができます。
また、事実上無制限にスケールを拡張することができ、その際もパフォーマンスが落ちることはありません。
分散型アーキテクチャーを採用
Amazon DynamoDBでは事実上無制限に拡張できると前述しましたが、なぜでしょうか。
理由としては、前提としてこのAmazon DynamoDBがNoSQLデータベースであるからです。
Amazon DynamoDBは、従来のリレーショナルデータベースと違って、データが行と列で構成されるテーブル内で厳密に定義されることがありません。
テーブルのデータはパーティションに小分けして割り当てられるようになっていて、データ量が多くなってきたらパーティションを追加することで対応されます。
このような柔軟な仕組みは分散型アーキテクチャーと呼ばれ、これによってパフォーマンスを維持しながら、ほぼ無制限に水平方向に規模を拡大できるのです。
さらに、可用性という点において、Amazon DynamoDBのテーブルは他のAWSサービスと同様に、アベイラビリティーゾーンと呼ばれる複数のデータセンタに自動的に複製されるため、高いシステム構築が可能になります。
サーバー管理が不要
最後に、Amazon DynamoDBはサーバーレスなため、わざわざサーバーを用意したり、ソフトウェアをインストールしたり、運用中のパッチ適用等も必要ありません。
自動的に容量を調整し、パフォーマンスを維持してくれるため、ユーザーの手間がかからないという利点があります。
テーブル構造について
続いて、パーティション化して水平方向に拡張できるというテーブル構造についてご説明します。
データ管理とインデックス
Amazon DynamoDBで管理できるアイテムは無制限で、テーブル内には様々な属性を持つアイテムが展開されます。
何もしない状態だと、アイテムが分散したまま整理されていない状態となってしまいます。
そのため、各アイテムには必ずPartition Keyが必要で、このキーを使うことで同じ属性のアイテムが構成されます。
これに加えて、Sort Keyという関連情報を一つにまとめ、効率的に検索などの命令を実行できるキーもあります。
また、インデックスもLSI(Local Secondary Index)とGSI(Global Secondary Index)という2種類があります。
LISはPartition Keyが同じアイテムを他のアイテムから検索する際に、GSIは異なるPartition Keyをまたいで全体的に検索することができるインデックスです。
Amazon DynamoDB の料金について
DynamoDBは、テーブル内のデータの読み取り、書き込み、保存といった機能に加え、有効化したオプション機能が課金対象になります。料金は主に2つの利用方法である「オンデマンド」と「プロビジョニング済み」によって異なり、オプション料金も異なります。プロビジョニングとは、プロビジョン(provision)という単語がもととなっていて、必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくことです。
オンデマンドモードでは、テーブルで実行したデータの読み取り、および書き込みに対して料金が発生します。
プロビジョニング済みの場合、1 秒あたりの読み込みと書き込みの回数を指定することで、適切なコストパフォーマンスをコントロールできる強みがあります。
具体的にどれくらいの金額になるかについては、公式サイトのツールもご利用ください。
参考:AWS「Amazon DynamoDB 料金」
https://aws.amazon.com/jp/dynamodb/pricing/
おわりに
Amazon DynamoDBはどれだけ大きな規模であっても、数ミリ秒単位のデータアクセスが可能なデータ処理サービスです。
また柔軟なデータ構造によって、データ検索や抽出をより効率的に行うことができるなど、かなり多くの企業にとって魅力的なサービスだと考えられます。
特に、広告業界やゲーム業界など、大量のユーザーやリクエストに対し迅速な対応が必要な事業やサービスには、今後必要不可欠なサービスと言えるでしょう。
ONETECHはベトナムでオフショア開発をしています。近年はクラウドでシステムを構築したいという要望を持ったお客様が増えています。弊社ではすでに多くのAWSの設計、構築、運営をしてきました。今後はサーバレスサービスを積極的に提案してお客様を支援してまいります。
AWSのNoSQLデータベースであるAmazon DynamoDBとは?