★悩み★
・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が提供するデータベースとは?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント