AWS - データベース

2025年11月10日 (月) 23:29時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == <br><br> == リレーショナルデータベースサービス == ==== Amazon RDS (Relational Database Service) ==== Amazon RDSは、リレーショナルデータベースのセットアップ、運用、スケーリングを簡単に行うことができるマネージド型サービスである。<br> MySQL、MariaDB、PostgreSQL、Oracle Database、SQL Serverという6つのデータベースエンジンから選択できる。<br> <br> 一般的…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要



リレーショナルデータベースサービス

Amazon RDS (Relational Database Service)

Amazon RDSは、リレーショナルデータベースのセットアップ、運用、スケーリングを簡単に行うことができるマネージド型サービスである。
MySQL、MariaDB、PostgreSQL、Oracle Database、SQL Serverという6つのデータベースエンジンから選択できる。

一般的に、データベースを構築する際にはサーバーの準備やインストール・設定が必要であるが、Amazon RDSではインストール、パッチの適用やバックアップも自動で行うことができる。
このマネージド型サービスの最大のメリットは、データベースの運用管理をAWSに委任できることで、開発者はアプリケーション開発に集中できる点である。

RDSでは、自動バックアップ期間を0~35日で設定でき、デフォルトは7日間となっている。
0日に設定することでバックアップを無効化することも可能となる。

また、マルチAZ配置を行うことで、高可用性を実現することができる。
マルチAZ構成では、プライマリサーバとスタンバイサーバが異なるアベイラビリティゾーンに配置され、障害時には自動的にフェイルオーバーが実行される。

Amazon Aurora

Amazon Auroraは、AWSがクラウド向けに独自開発したリレーショナルデータベースで、MySQLおよびPostgreSQLと互換性がある。
標準的なMySQLと比べて最大5倍、PostgreSQLと比べて最大3倍高速である。

Auroraの最大の特徴は、その独自のアーキテクチャにある。
AuroraはDBクラスタという単位で提供され、DBインスタンス、クラスタボリューム、エンドポイントの3つで構成される。

Auroraのストレージは6重化されており、1つのアベイラビリティゾーンに2個のデータ、3つのAZに跨って合計6個のコピーが保持されるため、ディスクが3本故障しても読み込みが可能である。

料金面では、RDSと比較するとAuroraの方が高い傾向にあるが、Auroraは高速フェイルオーバーや高い可用性といった特徴があるため、これらのメリットを重視する場合にはAuroraの採用が適している。
特にシングルAZ構成でも、Auroraはストレージ部分が3つのAZにまたがって6つのコピーを持つため、"データの耐久性は必要だがある程度の障害が許容できる要件"であれば、
RDSのマルチAZ構成よりもコストパフォーマンスが良い。

Auroraでは自動バックアップ期間は1~35日で、デフォルトは1日となっており、バックアップを無効にすることはできない。

また、Auroraでレプリカを追加する場合、インスタンスのみが増えていく。
これに対してRDSでは、リードレプリカを追加すると "インスタンス + EBS + ミラーリングEBS" のセットが増えていく。

Amazon Redshift

Amazon Redshiftは、PostgreSQLと互換性のある大規模データ向けのデータウェアハウスで、主にデータ分析に用いられる。

小規模なデータから大規模まで柔軟にスケールでき、オンプレミスのデータウェアハウスと比較してコストを抑えた構築ができる。
BIやAIと組み合わせ、Amazon Redshiftに保存したデータを可視化・分析するケースが多く見られる。


NoSQLデータベースサービス

Amazon DynamoDB

Amazon DynamoDBは、AWSが提供するフルマネージドのNoSQLデータベースサービスで、キーバリュー型とドキュメント型の両方のデータモデルをサポートしている。

DynamoDBは、大規模な分散システムのために設計されており、高いスケーラビリティと低レイテンシーが特徴である。
DynamoDBは、あらゆる規模のワークロードでレイテンシーを10ミリ秒未満に維持するように設計されており、
10ユーザーの場合でも1億ユーザーの場合でも、一貫した1桁ミリ秒のパフォーマンスを提供する。

DynamoDBでは、サーバのプロビジョニングや、ソフトウェアへのパッチの適用、管理、インストール、保守、運用は必要ない。
ダウンタイムのないメンテナンスを提供し、メンテナンスウィンドウも存在しない。

DynamoDBの主な特徴

  • 自動スケーリング機能
    DynamoDBは、アプリケーションのトラフィックが増減するにつれて、自動的にスループット容量を調整する。
    開発者はトラフィックの変動に対応するためにスループット設定を手動で調整する必要がない。
  • 高可用性とデータ耐久性
    DynamoDBはデータを自動的に複数のアベイラビリティゾーンに渡って複製し、高い可用性とデータ耐久性を実現する。
    同じAWSリージョン内の3つの施設間でデータが同期的にレプリケートされます。
  • 料金体系
    DynamoDBの料金は、使用したストレージの量、プロビジョンされたスループット、データ転送量に基づいて計算される。
    オンデマンド価格設定またはプロビジョンドスループット価格設定のいずれかを選択でき、アプリケーションの使用パターンに応じてコストを最適化できる。
  • ストレージコスト
    東京リージョンでは、ストレージ料金は0.285 [USD/GB]
    Auroraが0.11 [USD/GB]であることと比較すると約2倍、S3のStandardが0.025 [USD/GB]と比較すると約10倍となるため、大容量のデータ保管には向いていない。
    ただし、Standard-IAというストレージクラスを選択することで、アクセス頻度の低いデータについては最大60%のコスト削減が可能となる。
  • ユースケース
    DynamoDBは、ミリ秒単位のアクセスレイテンシーが求められるシステムと相性が良く、モバイル、Web、ゲーム、広告技術、IoTのようなサービスのバックエンドとしてよく利用されている。
    オンライン広告のリアルタイムビッドシステムでは、毎秒数百万のリクエストを処理し、ユーザがWebページを訪れた瞬間に最適な広告を表示する必要があり、DynamoDBはこの高いスループット要件と低遅延を実現している。
    また、DynamoDBはAWS Lambdaとも相性が良く、API Gateway + Lambdaと合わせて利用されることが多い。


Amazon DocumentDB

Amazon DocumentDBは、MongoDBと互換性のあるドキュメント型データベースサービスである。

AWS側でスケーリングやバックアップの管理タスクを行うため、ユーザーがデータベースの管理タスクを気にする必要はない。

主な利用用途

  • ショッピングサイトのカタログ管理
  • ユーザプロファイル管理



その他の特殊用途データベース

Amazon ElastiCache

Amazon ElastiCacheは、RedisとMemcachedの両方と互換性のある、フルマネージドインメモリキャッシングサービスで、低レイテンシーで高スループットのワークロードに対応します。
アプリケーションからのリアルタイムレスポンスを必要とする場合に、ディスクベースのデータストアではなく、インメモリデータストアとして利用される。

Amazon Keyspaces

Amazon Keyspacesは、Apache Cassandraと互換性があるマネージド型のデータベースである。
Apache Cassandraで使用されるクエリ言語APIコードやドライバ、開発者ツールをそのままAWS上で使用することができる。

システムの規模にかかわらず、安定的に1桁ミリ秒の応答時間を提供できるよう、AWSがサーバの利用状況に応じて自動でスケーリングする。

Amazon Neptune

Amazon Neptuneは、クラウド向けの高速なグラフ指向データベースサービスである。
GremlinとSPARQL向けのオープングラフAPIをサポートしており、ナレッジグラフやデータの不正検出などで利用されることを想定している。

Amazon Timestream

時系列データの保存・分析に特化したデータベースで、IoTアプリケーションの記録や金融取引の記録など、様々な時間毎のデータを分析する際に利用される。

Amazon QLDB

Amazon Quantum Ledger Database (QLDB) は、AWSがフルマネージドする台帳データベースサービスである。
SQL互換クエリ言語が利用でき、銀行取引の履歴追跡やサプライチェーンでの商品の追跡などに利用される。


データベース選択のポイント

AWSでは、多様なデータベースサービスを用途に応じて使い分けることにより、最適なシステムアーキテクチャを構築することができる。
データベースを選択する際は、以下に示す観点から検討することが重要である。

  • データの性質
    構造化されたデータでトランザクション処理が必要な場合はRDSやAurora、柔軟なスキーマが必要な場合はDynamoDBやDocumentDBが適している。
  • パフォーマンス要件
    ミリ秒単位の低レイテンシーが求められる場合はDynamoDB、大規模なデータ分析が必要な場合はRedshiftが適している。
  • スケーラビリティ
    急激なトラフィック増加が予想される場合は、自動スケーリング機能が充実しているDynamoDBやAuroraが有利となる。
  • 運用コスト
    マネージド型サービスを利用することで、データベースの管理負荷を大幅に削減できるが、料金体系やストレージコストも考慮に入れる必要がある。