【もう迷わない！】AWSデータベースの選び方とは？

## はじめに
こんにちは、uiroleです！  
業務でAuroraを使っていますが、AWSのその他のデータベース事情をよくわかっておらず、不安になってAWSのデータベースの特徴について調べてみました。

この記事では、**AWSの主要なデータベースサービス**について解説し、各サービスのメリットと使いどころを紹介します！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871776/cfe9c331-1025-1136-6ea9-99b8332b1633.png)


### 対象者
- AWSで提供されているデータベースサービスについて知りたい人
- アプリケーションの要件に合ったデータベースを選びたいと考えているシステム管理者やエンジニア

### 前提
- AWSの基本的な用語や概念に関する理解がある
- クラウドデータベースやオンプレミスデータベースの基本的な知識がある

### この記事を読んで解決すること
- AWSで提供されている主要なデータベースサービスの違いを理解し、自分の用途に適したデータベースを選択する方法を学べる
- 各データベースサービスの特性と代表的なユースケースを把握し、最適なデータベース戦略を構築するための知識を得る
- AWSデータベースサービスのセキュリティ対策や適切な管理手法についての理解が深まる

## AWSデータベースの特徴
以下は、AWSが提供する主要なデータベースサービスと各特徴を一覧にした表です。

| データベースサービス | 特徴  | ユースケース|
|----------------|--------------|------------------|
| **Amazon RDS (Relational Database Service)** | フルマネージドのリレーショナルデータベース。<br>対応エンジンはMySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Aurora。<br>マルチAZ、リードレプリカで高可用性。| ・トランザクションが多い業務システム<br>・データ分析<br>・ECサイトなど |
| **Amazon Aurora**| 高性能なMySQLおよびPostgreSQL互換のリレーショナルデータベース。<br>自動スケーリングと高速なバックアップ復旧機能を備える。 | ・ミッションクリティカルなアプリケーション<br>・SaaSサービス       |
| **Amazon DynamoDB** | フルマネージドのNoSQLデータベース。<br>低遅延で自動スケーリングが可能。<br>ドキュメントやキー・バリュー形式のデータに対応。| ・モバイル・ウェブアプリ<br>・IoTアプリケーション<br>・リアルタイムデータ |
| **Amazon ElastiCache** | RedisおよびMemcached互換のインメモリデータベース。低遅延でキャッシュやセッション管理に最適。| リアルタイム分析、アプリケーションのキャッシュ、セッション管理 |
| **Amazon MemoryDB** | Redis互換のインメモリデータベースで、データの永続化機能を提供。フルマネージドで、低遅延かつ耐久性が必要なアプリケーションに適応。| ・リアルタイムデータ処理<br>・ランキングやリーダーボード<br>・チャットやメッセージング |
| **Amazon DocumentDB** | MongoDB互換のフルマネージドドキュメントデータベース。<br>スケーラブルなストレージと高可用性を提供。| ・コンテンツ管理<br>・カタログ管理<br>・ドキュメントストレージ |
| **Amazon Neptune** | グラフデータベースで、RDF/SPARQLやProperty Graphモデルをサポート。<br>高速なグラフクエリが可能。   | ・推薦システム<br>・ソーシャルネットワーク<br>・詐欺検知 |
| **Amazon Keyspaces** | ・Apache Cassandra互換のフルマネージドNoSQLデータベース。<br>大規模なデータに対応し、低遅延のクエリが可能。| ・リアルタイムアプリケーション<br>・IoT |
| **Amazon Timestream**| フルマネージドの時系列データベース。<br>センサーやIoTデータの効率的な管理とクエリが可能。  | ・IoTアプリケーション<br>・産業オートメーション<br>・運用監視 |

各サービスは、AWS上で異なるタイプのデータ処理要件をサポートしており、用途に合わせた選択が可能です。

https://aws.amazon.com/jp/products/databases/


## そもそもデータベースってどんな種類があるの？
AWSには多様なデータベースオプションがあり、以下のカテゴリに分けられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3871776/1bf55806-a44d-3f7d-ce9b-b378f2a431f9.png)


### 1. リレーショナルデータベース
リレーショナルデータベースは、テーブル構造でデータを格納し、**SQL**によるデータ操作が可能です。以下がAWSで提供される代表的なリレーショナルデータベースです。

- **Amazon RDS（Relational Database Service）**  
   RDSは、管理が容易なリレーショナルデータベースです。PostgreSQL、MySQL、MariaDB、Oracle、SQL Serverなど、さまざまなエンジンをサポートします。自動バックアップや冗長化オプションもあり、可用性が高いのが特徴です。

- **Amazon Aurora**  
   RDSの高性能バージョンで、特に**MySQL**と**PostgreSQL**互換である点が強みです。低レイテンシーと高スループットを実現し、スケーラビリティや可用性も確保されています。

### 2. NoSQLデータベース
非リレーショナルデータベースとして、構造化データやスケーラビリティが求められるユースケースで使われます。

- **Amazon DynamoDB**  
   フルマネージドのNoSQLデータベースで、キー・バリュー形式とドキュメントデータをサポートしています。スケーラブルかつ低レイテンシーで、多くのIoTやモバイルアプリケーションで利用されています。

- **Amazon DocumentDB（MongoDB互換）**  
   JSONドキュメントモデルを採用し、MongoDBの操作と互換性があるNoSQLデータベースです。スケーラブルなドキュメント管理が必要なアプリケーションに適しています。

### 3. インメモリデータベース
データをメモリ内に保存し、高速アクセスを実現するデータベースです。

- **Amazon ElastiCache**  
   RedisとMemcachedの2つのエンジンをサポートするキャッシュデータベースで、レイテンシーの低いデータアクセスが求められるアプリケーションに適しています。

- **Amazon MemoryDB for Redis**  
   データ永続性を備えたインメモリデータベースで、Redis互換のサービスです。ミッションクリティカルなアプリケーション向けに設計されています。

### 4. グラフデータベース
エンティティ間の関係性を管理するデータベースです。

- **Amazon Neptune**  
   フルマネージドのグラフデータベースで、リレーショナルでは表現しにくい関係性を活用したアプリケーションに利用されます。SNS、推薦システム、知識グラフなどに適しています。


## データベースのセキュリティ対策
AWSのデータベースサービスでは、セキュリティが重要です。データの保護とコンプライアンスの維持には以下の対策が推奨されます。

- **暗号化**: ストレージや転送中のデータを暗号化
- **アクセス制御**: IAMを使用してアクセス許可を細かく管理
- **監視**: CloudTrailやCloudWatchによるモニタリング



## まとめ
AWSはさまざまなデータベースソリューションを提供しており、特定のユースケースに合わせたデータ管理が可能です。
適切なサービスを選び、セキュリティ対策を講じながらAWSデータベースの力を最大限活用しましょう。

少しでも、記事がいいなと思っていただけたら、いいねボタンを押していただけたら嬉しいです！