AWSエンジニアのためのブログメディア
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と異なる特徴を持っています。各データベースの特徴を理解した上で、データベースを利用しましょう。
Search キーワード検索
Popular 人気の記事
reccomended おすすめ記事
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
通信キャリア向け基盤構築/東京都渋谷区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/在宅ワーク
月給65万~65万円東京都渋谷区(神泉駅) -
各種対応/東京都新宿区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給60万~60万円東京都新宿区(高田馬場駅) -
要件定義、構築/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給60万~60万円東京都千代田区(飯田橋駅) -
運用構築/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給56万~56万円東京都千代田区(飯田橋駅) -
監視システムの保守、更改/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給55万~55万円東京都千代田区(神保町駅)