【図解】AWSが提供する3つのデータベースを徹底解説

★悩み★
・AWSでデータベースを使いたいんだけどどうすればいいのだろうか。
・AWSのデータベースでは暗号化ができるのだろうか。
・AWSにデータベースを移行したいんだけどどうすればいいのだろうか。

こういった「悩み」に答えます。

★本記事の内容★
(1) AWSが提供する3つのデータベースをご紹介
(2) AWSのデータベースでの暗号化をご紹介
(3) AWSにデータベースを移行する方法をご紹介

これからご紹介する「AWSが提供する3つのデータベース」を理解しておくことで、「AWS 認定 ソリューションアーキテクト アソシエイト」の資格に合格しやすくなります。

本記事の前半では「AWSが提供するデータベースとは?」を具体的に解説し、本記事の後半では「AWSのデータベースの暗号化や移行方法」をご紹介します。

この記事を読み終えることで、「AWSが提供するデータベースサービス」を理解した状態になります。

「AWSとは何か?」や「AWSの基礎的なサービスは何か?」を知りたい方は、以下の記事をご覧ください。

AWSが提供する3つのデータベース

AWSが提供する3つのデータベースに関してご紹介します。

★ご紹介の流れ★
・AWSが提供するデータベースの種類をご紹介
・AWSが提供するリレーショナル型データベースをご紹介
・AWSが提供する非リレーショナル型(NoSQL型)データベースをご紹介

上記の流れで「AWSが提供する3つのデータベース」をご紹介していきます。

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

AWSが提供するデータベースの種類に関してご紹介します。

★AWSが提供するデータベースの種類★
・リレーショナル型データベース
 例)Oracleデータベース/MySQL/PostgresSQLなど

・非リレーショナル型データベース(NoSQL)
 例)MongoDB/Redisなど

AWSでは、上記の2種類のデータベースをサービスとして提供しています。

リレーショナル型データベースとは?

「リレーショナル型データベースとは何か?」を解説します。

★リレーショナル型データベースとは★
リレーショナル型データベースでは、データが行と列に保存されます。
下図のように列ごとに格納するデータの種類を決めていきます。


リレーショナル型データベースでは、SQL(構造化クエリ言語)を用いてデータを探索します。

★SQL(構造化クエリ言語)の例★
例)著者テーブルの全データを取得する場合
select * from 著者テーブル;

例)書籍テーブルからタイトル「XXXX-YYYY」を取得する場合
select ‘タイトル’ from 書籍テーブル where ‘タイトル’ = ‘XXXX-YYYY’;

以上が、「リレーショナル型データベースとは?」となります。

非リレーショナル型(NoSQL型)データベースとは?

「非リレーショナル型データベースとは何か?」を解説します。

★非リレーショナル型(NoSQL型)データベースとは★
非リレーショナル型データベースでは、データを「キー値ペア」や「ドキュメント」などで保存します。
下図のように構造を決めずにデータを格納することができます。

以下の場合、非リレーショナル型データベースを選択します。

★非リレーショナル型(NoSQL型)データベースを選択する場面★
・DBをスケールアウト(マシン台数を増やして性能UP)したい場合
・格納するべきデータを構造化できない場合
・複雑な集計を必要とせず、高速なデータ取り出しが必要な場合

以上が、「非リレーショナル型(NoSQL型)データベース」となります。

AWSが提供するデータベースの種類は、2種類と覚えておきましょう。

AWSが提供するリレーショナル型データベース

AWSが提供するリレーショナル型データベースに関してご紹介します。

リレーショナル型データベースのサービスとして、Amazon RDSがあります。

★Amazon RDSとは★
・リレーショナル型データベースのサービス
・数分でデータベースをプロビジョニング可能
・マウスを数回クリックするだけでスケールアップ(性能アップ)が可能

Amazon RDSでは、以下のデータベースを選択することができます。

★Amazon RDSで選択できるデータベースの種類★
・MySQL、MariaDB、PostgreSQL、Oracle
・Aurora for MySQL、PostgreSQL

Amazon RDSが提供するAuroraには、以下の利点があります。

★Aurora for MySQL/PostgreSQLの利点★
・MySQLやPostgreSQLと互換性あり
・MySQLの最大5倍のスループット
・PostgreSQLの最大3倍のスループット
・3つのAZでデータを複製してくれるため高い信頼性あり

以上が、「AWSが提供するリレーショナル型データベース」となります。

AWSが提供する非リレーショナル型(NoSQL型)データベース

AWSが提供する非リレーショナル型(NoSQL型)データベースに関してご紹介します。

非リレーショナル型(NoSQL型)データベースのサービスとして、Amazon DynamoDBやAmazon DocumentDBがあります。

今回は、Amazon DynamoDBに関してご紹介します。

★Amazon DynamoDBとは★
・非リレーショナル型データベースのサービス
・マウスを数回クリックするだけスケールアウトが可能
・単純なデータが大量に存在、迅速なスケーリングが必要、複雑なデータ集計が不要なアプリケーションに対して利用

Amazon DynamoDBは、下図のようにしてデータを格納します。


Amazon DynamoDBでのキーに関する考え方は以下となります。

★DynamoDBでのキー★
・パーティションキー
 データをどのパーティションに配置するかを決定する。
 各パーティションに属すキー数が均一だとアクセス効率が良い。

・ソートキー
 各パーティション内でのデータの並びを決定する。

・プライマリーキー
 「パーティションキー」/「パーティションキーとソートキー」のこと。
 このキーを用いてデータを一意に特定できるようにすること。

以上が、「AWSが提供する非リレーショナル型(NoSQL型)データベース」となります。

AWSのデータベースでの暗号化

AWSのデータベースでの暗号化に関してご紹介します。

★ご紹介の流れ★
・Amazon RDSのセキュリティ管理
・Amazon DynamoDBのセキュリティ管理

上記の流れでAWSのデータベースでの暗号化に関してご紹介します。

Amazon RDSのセキュリティ管理

Amazon RDSのセキュリティ管理に関してご紹介します。

アクセスコントロール

Amazon RDSを利用する場合、アクセスコントロールを意識しましょう。

すなわち、「誰がデータベースにアクセスし操作可能か」を決めましょう。

Amazon RDSでは、「DBセキュリティグループ」という機能により、RDSへのアクセスコントロールを実現することができます。

格納されたデータの暗号化

Amazon RDSに格納されたデータの暗号化を意識しましょう。

Amazon RDSでは、「暗号化」機能により、RDSのストレージ/バックアップされたデータ/リードレプリカを暗号化できます。

暗号化機能を有効化したRDSにアクセスした際に、RDS側が自動で暗号化されたデータを複合します。

そのため、データベースへアクセスするアプリケーション側で複合化処理を実装する必要はありません。

転送中のデータの暗号化

Amazon RDSに転送するデータの暗号化を意識しましょう。

Amazon RDSでは、SSLをサポートしています。

そのため、データ転送をする際にSSLを利用することで、データ転送の暗号化を実現することができます。

以上が、Amazon RDSで意識するべきセキュリティとなります。

Amazon DynamoDBのセキュリティ管理

Amazon DynamoDBのセキュリティ管理に関してご紹介します。

アクセスコントロール

Amazon DynamoDBを利用する場合、アクセスコントロールを意識しましょう。

Amazon DynamoDBでは、下図のようにGUI上からデータベースのテーブルや格納されたデータに対して、アクセス権を設定できます。

格納されたデータの暗号化

Amazon DynamoDBに格納されたデータの暗号化を意識しましょう。

Amazon DynamoDBでは、暗号化機能を利用することができます。

ただし、暗号化機能を利用するためには別途料金が必要となります。

転送中のデータの暗号化

Amazon DynamoDBに転送するデータの暗号化を意識しましょう。

データ転送をする際にSSL/TLSを利用することで、データ転送の暗号化を実現することができます。

以上が、Amazon DynamoDBで意識するべきセキュリティとなります。

AWSにデータベースを移行する方法

AWSにデータベースを移行する方法に関してご紹介します。

AWSにデータベースを移行する際に利用するサービスは以下となります。

★AWSにデータベースを移行する際に利用するサービス★
・AWS Database MigrationService
・AWS Schema Conversion Tool

以降で、上記サービスに関してご紹介します。

AWS Database MigrationService

AWS Database MigrationServiceを使うことでデータベースの移行ができます。

★AWS Database MigrationServiceとは★
Oracleなどの商用データベースやMySQLなどのオープンソースデータベース間での移行ができます。

AWS Database MigrationServiceを使うことで、以下の移行ができます。

★AWS Database MigrationServiceで移行できるパターン★
・Amazon EC2上に構築したDB <=> オンプレミスのDB
・Amazon RDS <=> オンプレミスのDB
・Amazon EC2上に構築したDB <=> Amazon EC2上に構築したDB
・Amazon RDS <=> Amazon EC2上に構築したDB
・Amazon RDS <=> Amazon RDS

ただし、オンプレミス間のデータベース移行はサポートしていません。

また、スキーマ変換やコード変換はサポートしていないため、異種DB間での移行には最新の注意が必要です。

AWS Schema Conversion Tool

AWS Schema Conversion Toolを使うことでスキーマ変換を実現できます。

★AWS Schema Conversion Toolとは★
現在使用しているデータベースのスキーマを異なるDBエンジンのスキーマへ変換することができます。

AWS Schema Conversion Toolを利用することで「MySQL → PostgreSQLなどの移行を実現」することができます。

異なるDB間でのデータベース転送をする場合は、AWS Schema Conversion ToolとAWS Database MigrationServiceを利用しましょう。

【まとめ】AWSが提供する3つのデータベースを徹底解説

今回の記事を通して、「AWSが提供する3つのデータベース」をご紹介することで、以下の悩みを解消しました。

★悩み★
・AWSでデータベースを使いたいんだけどどうすればいいのだろうか。
・AWSのデータベースでは暗号化ができるのだろうか。
・AWSにデータベースを移行したいんだけどどうすればいいのだろうか。

「AWSが提供するデータベースとは?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

 

 


 

コメント

タイトルとURLをコピーしました