AWS提供のデータベースとは?種類や特徴について解説

AWS Lambda

AWS(Amazon Web Services)が提供する多様なデータベースサービスについて、従来のリレーショナルデータベース(RDBMS)から、スケーラビリティに優れたNoSQLまで、各モデルの特徴やユースケースを紹介します。データを効率的かつ簡単に管理・運用する方法を見ていきましょう。

AWSの提供するデータベースの種類

3大クラウドコンピューティングサービスのひとつである「AWS(Amazon Web Services)」では、データベースや、その管理を行う「DBaaS(Database as a Service:ディービーアース、データベースマネージドサービス)」が提供されています。

いずれもクラウド型のデータベースサービスであり、従量課金制です。使用目的や要件に応じて、ストレージタイプを選択したり、ストレージ容量を追加したりできます。さらに、データベースの規模や負荷、ニーズに応じて自動的にスケールされるサービスもあり、データベースの管理・運用を簡略化してくれます。

AWSの提供するデータベースサービスには大きく分けて、以下の2種類です。

  • リレーショナルデータベース管理システム(RDBMS)
  • NoSQLデータベース

ここでは、リレーショナルデータベース管理システムの概要と、NoSQLデータベースの詳細について解説します。

リレーショナルデータベース管理システム(RDBMS)

AWSの提供するリレーショナルデータべース管理システム(RDBMS)は、堅牢性・冗長性・拡張性を備えながらシンプルな仕組みが特徴で、世界中で高いシェアを獲得しています。「Amazon RDS(Amazon Relational Database Service)」とも呼ばれています。データはExcelのようなテーブル形式で格納され、SQL言語で操作するのが一般的です。

AWSでは、データベース以外で提供中の他サービスと併用することで、さらなるパフォーマンスの向上や運用コストの最適化などを図れます。他社のクラウドサービスやオンプレミスで運用しているデータベースも、AWSのRDBMSに容易に移行できるのが特徴です。

NoSQLデータベース

NoSQLとはNot Only SQLの略称で、RDBMS以外のデータベースサービス全般を指します。RDBMSの場合は用途が汎用であるのに対して、NoSQLデータベースは目的や用途に特化したものが多いです。AWSのNoSQLデータベースで展開されているマネージドサービスは、次の7種類の型(モデル)に分類できます。

  • キーバリュー型
  • ドキュメント型
  • カラム型(ワイドカラム型)
  • グラフ型
  • インメモリ型
  • 台帳型
  • 時系列型

上記の型は、データの構造や目的、状況に応じて使い分けます。以下ではそれぞれの型の概要を解説します。

キーバリュー型

キーバリュー型(KVS:Key-Value Store)は、データを「値(バリュー)」と「キー(識別情報)」のペアで扱う、シンプルなモデルです。

大量のデータも高速で処理できるため、リアルタイム分析やセッション管理などで広く利用されています。連携が不要なデータを入出力するだけであれば、RDBMSよりもキーバリュー型NoSQLの方が適しています。

ただし、各バリューにひとつのキーが対応する構造になっており、バリューを結合できないため、複雑な検索処理には向いていません。

ドキュメント型

ドキュメント型は、部分的に構造化された半構造化データを保存するためのデータベースです。JSON、BSON、XMLなど、ドキュメント形式の複雑なデータを扱うのに適しています。

AWSの提供する「Amazon DocumentDB」は、オープンソースで柔軟性の高い非リレーショナルデータベース管理システム「MongoDB」とも互換性があります。

カラム型(列指向型)

キーバリュー型にカラム(列)が追加されたNoSQLデータベースがカラム型(ワイドカラム型)です。テーブルの各行は、データが入力されたひとつ以上のカラムで構成されています。

構造はシンプルでRDBに近く、列に値がなくても動作します。キーに対してカラムを大規模に登録でき、カラム単位で横方向に処理されるため、特定のカラムのみを抜き出して集計する場合などシンプルなオペレーションを素早く行えるのが特徴です。データモデルの変更も比較的容易に行えます。

グラフ型

グラフ型は、さまざまなデータの関係性を管理するのに特化したデータベースです。複数の点とそれらを結ぶ線分とのつながりでデータを図形的に表現する「数学的グラフ理論」にもとづいています。

データの構造がネットワーク状になっているため、データとデータの関係性のモデリングや、SNSのようなサジェスト、SNSでのボットアカウントの判別などに利用できます。データ同士の関係性に注目することで、不正を検知しやすい点も特徴です。

インメモリ型

インメモリ型データベース(IMDS)は、コンピューターの内部メモリでデータを管理する型です。メインメモリデータベース(MMDB)やリアルタイムデータベース(RTDB)もIMDSを指します。

補助記憶装置であるハードディスクやSSDなどを使用しないため、ほぼ瞬時に必要なデータにアクセスでき、リアルタイム性が特に重要視される場面で利用されています。

台帳型

台帳型は、台帳機能に特化したデータベースです。

一般的なデータベースとは異なり、データの不正操作や改ざんを防止するために、一度登録されたデータと変更履歴は一切変更・削除ができません。各トランザクションの実行者やタイムスタンプ、内容などもすべて追跡できます。

完全な変更履歴が維持されるイミュータブル(不変)性が大きな特徴です。

時系列型

時間情報(タイムスタンプ)をもつ時系列データの管理に特化したデータベースです。IoT機器のセンサーデータや金融取引、株価、気象情報など、絶えず生成されるビッグデータを管理するのに適しています。

時系列データを活用することで、予測分析や異常検知なども行えます。特定の時間にもとづく集計や、特定の期間の平均値・最大値などの計算も容易です。

RDBMSでは、時系列データを膨大に扱うと高負荷になるため、効率的にデータを管理・運用するためには高いスケーラビリティを備えた時系列型データベースが不可欠です。

リレーショナルデータベース管理システムとNoSQLデータベースの違いとは?

リレーショナルデータベース管理システム(RDBMS)とNoSQLデータベースとの特徴の違いを以下で解説します。

リレーショナルデータベース管理システムの特徴

リレーショナルデータベースの歴史は古く、1970年に当時、IBMに在籍していたEdgar Frank Codd氏が「A Relational Model of Data for Large Shared Data Banks(大規模共有データバンクのデータ関係モデル)」という論文で提唱したのがはじまりだとされています。1980年代にさまざまな商用データベースが登場し、現在でも多くの企業・組織で活用されています。

リレーショナルデータベースは「データを入力する表」「SQL」「SQLによって表を制御するデータベースエンジン(DBMS:データベースマネジメントシステム)」で構成されており、これらを効率的に管理・運用する仕組みがリレーショナルデータベース管理システム(RDBMS)です。

RDBMSの大きな特徴は、ACIDトランザクションをサポートし、整合性・一貫性を強力に維持するように設計されていることです。ACIDとは、以下の頭文字を取った、データの整合性を保つ概念をいいます。

  • Atomicity(原子性)
  • Consistency(一貫性)
  • Isolation(独立性)
  • Durability(永続性)

ACIDトランザクションでは、データの一部にエラーが含まれる場合、トランザクションはまったく実行されません。

RDBMSはSQLで操作します。「Schema-on-Write(スキーマ・オン・ライト)」の方式で、あらかじめスキーマを定義したうえで、スキーマに適合するようにデータを入力し、関連性のある複数の表(テーブル)を格納します。

この方式によって、蓄積されたデータを効率的に管理することが可能です。RDBMSは従来、単一のサーバで運用されるのが一般的でしたが、クラウドサービスの利用によって、より簡単にスケールアップできるようになりました。

NoSQLデータベースの特徴

NoSQLとはNot Only SQLであり、文字通りSQLが必須ではないデータベースのことを指します。あらかじめ定義されたスキーマ構造は不要であり、半構造化データ(JSON・XMLなど)や非構造化データ(画像・動画など)、非リレーショナルデータを柔軟に扱えることが特徴です。

一見すると相互に関連性のないデータ、例えばIoT機器によって常時得られるビッグデータや株価などの時系列データも管理・分析できます。水平方向に比較的容易にスケールアウトできることもNoSQLデータベースの利点のひとつです。

RDBMSがACIDをベースとしているのに対して、NoSQLを構成する概念になっているのが「BASE」であり、以下の頭文字を取ったものです。

  • Basically Available(基本的に常に応答可能)
  • Soft-State(整合性を常に保証する必要はない)
  • Eventual Consistency(最終的には全体で整合性が保証される)

この概念が表している通り、NoSQLは柔軟性やパフォーマンスの向上、すばやさを優先して設計されています。NoSQLでは、データを利用したいときに、利用したいデータ構造に当てはめる「Schema-on-Read(スキーム・オン・リード)」の方式で、フレキシブルにデータを利活用できます。

実は、AWSのマネージドサービスを含めて、ACIDトランザクションの要素も取り入れているNoSQLもありますが、ACIDとBASEとはトレードオフの関係です。データの質・量、目的、要件などを踏まえたうえで、適切なサービスを選定しましょう。

AWSが提供する7つのデータベースサービス

ここでは、AWSが提供しているマネージドサービスおよびその関連サービスについて、リレーショナルデータベース管理システムと、NoSQLデータベースの7種類の型(モデル)のうちカラム型を除いた6種類の、計7種類のサービスを紹介します。

1. リレーショナルデータベース管理システム

AWSがリリースしているRDBMSには大きく分けて、以下の2種類があります。

  • Amazon Aurora
  • Amazon Relational Database Service

Amazon Relational Database Serviceには「MySQL」「PostgreSQL」の両方と互換性がある「Amazon Aurora」など、6種類のリレーショナルデータベースエンジンがあります。AWSのリレーショナルデータベース管理システムについて詳しくは次の関連記事をご覧ください。

関連記事:Amazon RDSとは?選べる6つのエンジンの特徴、料金について解説

2. キーバリュー型データベース

AWSが提供しているキーバリュー型データベースには、以下の2種類があります。

  • Amazon DynamoDB(アマゾン・ダイナモ ディービー)
  • Amazon Keyspaces(Apache Cassandra向け)

Amazon DynamoDB

シンプルなキーバリュー型のフルマネージドデータベースサービスです。ドキュメントデータ型をサポートしており、JSON形式のデータも格納できます。

1桁ミリ秒単位という高いパフォーマンスが大きな特徴で、リアルタイム性が重視されるオンラインゲームの開発や、モバイルアプリケーションの開発、入札システムの運用などに適しています。

サーバレスなので、設定、チューニング、バックアップ、スケーリングなどの手間がかからないことも特徴のひとつです。アプリケーションの負荷やニーズにあわせて自動的にスケーリングされる機能は非常に便利です。

Amazon Keyspaces(Apache Cassandra向け)

オープンソースのNoSQL分散データベース「Apache Cassandra」と互換性のあるマネージドデータベースサービスです。ソフトウェアのインストール、スケールアップ/ダウン、保守・運用の手間を省けます。データは暗号化されたうえで継続的にバックアップされるため、大量のログデータのリアルタイム分析などに適しています。

3. ドキュメント型:Amazon DocumentDB

「MongoDB」と互換性のある、フルマネージドのネイティブJSONドキュメントデータベースです。

MongoDBはクエリが柔軟でスキーマが不要であることが特徴ですが、Amazon DocumentDBではMongoDBの利点に高いセキュリティと耐久性が追加され、アプリケーションのアジャイルな開発などを行えます。

コンテンツの管理やユーザープロファイルの管理などにも適しています。トラフィックの量などに応じて、柔軟にスケールアップ/ダウンも可能です。

4. グラフ型:Amazon Neptune

「Amazon Neptune」は、完全マネージドのグラフ型データベースです。データの背後に隠された関係性を明らかにします。クエリに使用するのは、SPARQLやGremlinという専用のグラフデータベース言語です。このデータベースサービスの魅力を、具体的な活用シーンと共に紹介します。

まず1つ目は、マーケティングです。永続的かつ一元的なプロファイルを作成できるため、ターゲットの設定やパーソナライズ、顧客の行動・購買パターンの解析などを、より的確に行えます。購買履歴や閲覧履歴、商品評価などの情報から顧客の次の行動を予測し、最適なタイミングで購入を後押しするクーポンを発行することも可能になるでしょう。

また、カスタマージャーニーの可視化も得意です。顧客がどのような経路で購入したか、離脱の原因はどこにあったのかを分析し、Webサイトの改善などに繋げられます。

2つ目のユースケースは、不正検知です。トランザクションの不正な取引パターンを特定し、ほぼリアルタイムで警告を出せます。期待されるのが、金融業界などのセキュリティ面での利用です。

さらに、データ同士の隠れたパターンの検出にも力を発揮します。これにより、企業は新たなインサイトを得て、戦略的な意思決定の材料を得られるでしょう。

5. インメモリ型:Amazon ElastiCache

「Amazon ElastiCache」は、クラウド上でキャッシュ機能を提供する、インメモリ型のフルマネージドサービスです。データをメモリ上に格納することで高速な読み書きを実現します。

インメモリデータストアエンジン「Redis」「Memcached」と互換性があり、RedisおよびMemcachedを利用するためのクライアントライブラリは、C++、Python、Rubyなど、数多くのプログラミング言語で利用可能です。そのため、既存のアプリケーションを簡単に移行できます。

大きな特徴は、キャッシュを活用することで、標準的なデータベースクエリと比較して大幅にパフォーマンスを向上させている点です。ハイパフォーマンスであることから、オンラインゲームの開発やECサイトの商品情報表示、医療機器のモニタリング、IoT機器が取得したセンサーデータのストリーミングなど、迅速性が求められる場面での利用に適しています。

負荷が増えた場合には、パフォーマンスを維持したまま自動でスケーリングされるので、リソースの増減を手動で調整する必要がなく、手間がかかりません。

6. 台帳型:Amazon Quantum Ledger Database(QLDB)

台帳型データベース「Amazon Quantum Ledger Database(QLDB)」も同じくフルマネージド型です。

金銭などの重要なデータを扱うことが多いデータベースであるという性質上、過去のデータを永続的に改ざん不能にする仕組みが備わっています。変更履歴は暗号化されたうえで保存されるため、特定の取引の整合性などを証明したい場合に適切です。トランザクションは完全にシリアル化されるので、整合性のない実行は一切行われません。

このような仕組みから、金融取引や医療・薬剤の記録管理、選挙管理、サプライチェーンにおける各プロセスのデータ共有・管理、物流の移動履歴の追跡など、とりわけデータの透明性が重要視される場面で活用されています。SQL互換クエリ言語であるPartiQLでクエリを実行でき、構造化データと半構造化データとを保存することも可能です。

7. 時系列型:Amazon Timestream

時系列データに特化した、サーバレスのデータベースです。スキーマの定義が不要で、構築・設計・運用の手間を省きながら、データを柔軟に取得・分析できるのが特徴です。

タイムスタンプ(時刻)は、属性情報などと一緒に記録されます。データの差分記録、一定時間の平均値の算出なども可能です。そのため、IoT機器が取得したセンサーデータの分析、交通状況のモニタリング、物理システムの正常性のモニタリング、配送状況の管理、DevOpsなどにも用いられます。

まとめ

ビッグデータやIoT、ML/AIなどの普及によって、今後はさらにデータベースの利用が進み、データベースエンジニアへの需要が高まることが予想されます。成長する分野で活躍したいと考えているのであれば、データベース関連の案件に携わってみるのがおすすめです。

IT領域職種のフリーランス・副業の方向けの案件紹介サービス「FLEXY(フレキシー)」には、クラウドエンジニアを募集する案件が数多く掲載されています。例えば、AWSに関して一定の経験をもつエンジニアを対象に、各種リソースの社内提供や、リソースの制御ポリシー評価などを行ってくれる人などを募集しています。

FLEXYサービスを見る

LINEでフリーランスの案件情報や最新Tipsを受け取る

FLEXYとはABOUT FLEXY

『FLEXY』はエンジニア・デザイナー・CTO・技術顧問を中心に
週1~5日のさまざまな案件を紹介するサービスです