2021/06/17

AWS「Amazon DynamoDB」とは?特徴やメリットについて解説

 
  

NoSQLデータベース「Amazon DynamoDB」とは?


Amazon DynamoDBは、Amazon Web Services(AWS)が提供する完全マネージド型NoSQLデータベースです。Amazon DynamoDBは、NoSQLデータベースのタイプではキーバリューストアとドキュメント型データベースに対応しています。

また、システムの規模にかかわらずAmazon DynamoDBが利用できるよう、システムの規模にかかわらず、自動的にスケールアップ・スケールダウンを調整し、高速で一貫したパフォーマンスを提供しています。

NoSQLデータベースとは?


NoSQLデータベースという言葉が聞き慣れない方もいるでしょう。NoSQLデータベースはOracle Databaseなどのリレーショナルデータベース(RDBMS)が解決できない問題を解決するために、開発されたデータベースの総称です。

NoSQLデータベースには様々な特徴があるため、今回はRDBMSと比較した観点と、NoSQLデータベースのタイプ毎の観点で特徴を説明していきます。

NoSQLデータベースとリレーショナルデータベースの比較

NoSQLデータベースはリレーショナルデータベース(RDBMS)の問題を解決するために開発されました。NoSQLデータベースがRDBMSの問題に対してどのような答えを出したのか、RDBMSと比較することで、NoSQLデータベースの特徴をより理解できるでしょう。

次の表にRDBMSとNoSQLデータベースを比較した内容をまとめましたので、参考にして見てください。

比較観点 リレーショナルデータベース NoSQLデータベース
メリット データの一貫性が高い。多次元的に素早く分析できる 処理速度が速い
データの格納形式 格納形式は行と列で構成されるテーブルのみ キー値やグラフなどの様々なデータを格納する形式がある
データの一貫性 高い 低い
パフォーマンス NoSQLデータベースに比べると遅い データの一貫性と引き換えに高速なパフォーマンスを実現
スケールアウト 煩雑 容易
データ操作の手段 SQL オブジェクトベースの API

NoSQLデータベースのタイプ

NoSQLデータベースのタイプは全部で4つです。4つのタイプはそれぞれ別のデータ構造を持ち、特徴も異なります。ここではNoSQLデータベースのタイプ毎に特徴を説明します。

キーバリューストア

キーバリューストアとは、キーとバリュー(値)のデータを管理するデータストアです。データ構造が簡単なため、RDBMSに比べて読み書きが高速で、ゲームや広告技術、IoTなどに適しているとされています。

代表的な製品は「Radis」です。AWSのサービスでは「Amazon ElastiCache」と「Amazon DynamoDB」が対応しています。

ドキュメント型データベース(文書指向データベース)

ドキュメント型データベースは、JSONやXMLなどの記述書式で書かれた不定形なデータを管理するデータベースです。不定形なデータを自由に保存できるため、複雑なデータモデリングが実現できます。

代表的な製品は「MongoDB」です。また、AWSのサービスでは「Amazon DocumentDB(MongoDB互換)」と「Amazon DynamoDB」が対応しています。

グラフ指向データベース

グラフ指向データベースは、データ間を相互に結び付け、グラフ構造でデータを格納するデータベースです。データ同士の複雑な関連性をグラフ化できるため、SNSや詐欺検出などで利用されます。

代表的な製品は「Neo4j」です。AWSのサービスでは「Amazon Neptune」が対応しています。

カラム型データベース(列指向データベース)

カラム型データベースは、キーバリューストアを拡張し、カラム単位でデータを効率的に扱えるように設計されたデータベースです。ログなどの大量のデータを分析することに適しているとされています。

代表的な製品は「Apache Cassandra」です。AWSのサービスでは「Amazon Keyspaces (Apache Cassandra 向け)」が対応しています。

Amazon DynamoDBの特徴


Amazon DynamoDBの代表的な特徴として「パフォーマンスを向上」「サーバー管理が不要」「ストレージ容量が無制限」「可用性を向上」「料金プランが選択可能」「AWSがSQL互換のクエリ言語を提供」などが挙げられます。

これらの特徴を知ることでAmazon DynamoDBを上手く活用することができます。

パフォーマンスの向上

NoSQLデータベースは構造上RDBMBに比べて、処理速度が速いという特徴がありますが、Amazon DynamoDBはより一層のパフォーマンスの向上が実現可能です。Amazon DynamoDBは、システムの規模にかかわらず、一貫して数ミリ秒台の応答時間をサポートしています。

また、Amazon DynamoDB用インメモリキャッシュ「DynamoDB Accelerator(DAX)」を利用することで、データの読み取りパフォーマンスを大幅に向上させ、マイクロ秒の応答時間を実現します。

サーバー管理が不要

AWSがサーバーを自動管理するため、ユーザーはサーバーを管理する必要がありません。

Amazon DynamoDBはサーバーレスのため、パッチ適用などのデータベース管理タスクがありません。スケーリングは負荷状況に応じて、AWS側で自動的にスケールアップ・スケールダウンして調整します。

また、システムの可用性を向上する仕組みが既にAmazon DynamoDBの機能に組み込まれています。このようにAWSが代わりにサーバー管理を行うため、ユーザーはサーバーを管理する必要がなく、アプリケーション開発に集中できるのです。

ストレージ容量が無制限

Amazon DynamoDBのストレージ容量は、事実上無制限に増やすことが可能です。また、Amazon DynamoDBのグローバルテーブルを利用した場合、ストレージの利用状況に合わせて自動的に容量をスケーリングします。

可用性の向上

Amazon DynamoDBのグローバルテーブルを利用することで、複数の地域にデータベースを作成し、自動的にデータをレプリケートすることが可能です。

複数の地域にデータベースを作成することで、ある地域全体で障害が発生し、その地域のAmazon DynamoDBが利用できない場合も、別の地域でAmazon DynamoDBが稼働しているため、システムが継続して稼働できます。

AWSがSQL互換のクエリ言語を提供

AWSではAmazon DynamoDB向けにSQL互換のクエリ言語「PartiQL」を提供しています。

NoSQLデータベースのデータ操作は、RDBMSのデータ操作で標準となるSQLではなく、各製品で独自に提供するAPIで操作しますが、PartiQLを利用するとSQLでAmazon DynamoDBのデータを操作できるようになります。

料金プランが選択可能

Amazon DynamoDBの料金はデータの読み書きや保存の他に、有効にしたオプションに対して発生し、システムの利用予測に応じて料金プランを選択できます。

Amazon DynamoDBは「オンデマンドキャパシティー」と「プロビジョニング済みキャパシティー」という2種類の料金プランがあり、料金プランごとにデータ読み書きの請求オプションが設定されています。

オンデマンドキャパシティー

オンデマンドキャパシティーは、システムがAmazon DynamoDBに対してデータを読み書きした回数に対して料金が発生するプランです。

データを読み書きする回数を予測して、請求オプションを指定する必要がないため、データを読み書きする回数が予測できない場合におすすめです。

プロビジョニング済みキャパシティー

プロビジョニング済みキャパシティーは、システムがAmazon DynamoDBに対する1秒あたりのデータ読み書き回数を指定し、指定した回数を元に料金が算出されるプランです。

システムの1秒あたりのデータ読み書き回数を予測でき、パフォーマンスを確保しつつ、コストを削減したい場合におすすめです。

まとめ


今回はAmazon DynamoDBの特徴やNoSQLデータベースの特徴について紹介しました。Amazon DynamoDBはRDBMSと異なる特徴を持っています。各データベースの特徴を理解した上で、データベースを利用しましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】