概要
AWSを利用してデータベースを構築する際、データベースの選定に悩むときがあります。本投稿では、AWSが提供するデータベースサービスの種類や、各データベースサービスにどのような機能があるかご紹介します。
AWSが提供するデータベースサービスの種類
こちらでは、AWSが提供するデータベースサービスの種類について紹介します。AWSが提供するデータベースサービスの詳細はAWSの公式サイトに記載がありますが、簡易的に説明すると、大きく分類してRDSとNoSQLといった2種類のデータベースサービスに分類されます。
先ずは、RDSについてですが、こちらは、送信元からデータベースに対して、SQLクエリを実行し、表を跨ぐ複雑なデータを抽出できることができます。
一方、NoSQLについては、Key,Valueでデータを保存する為、端的なlotデータなどを保管するケースが推奨されています。それぞれのデータベースの違いは以下の通りです。
RDS(リレーショナルデータベース)
6つのDBエンジンを選択することが可能。その中でもMySQLとPostgreSQLは特によく利用される。SQLクエリを投げて表を跨いだ複雑な処理ができる。その為、高度なデータ集計や検索が必要な場合に利用される。
NoSQL
NoSQLはKey,Value形式でデータを保管する。SQLクエリを実行しない為、高度な検索処理はできないが、単純な大量データを保管する際に利用される。
Amazon RDS
こちらでは、Amazon RDSサービスが、具体的にどのような機能があるかご紹介します。Amazon RDSは、AWSのマネージドリレーショナルデータベースサービスであり、PostgreSQLやMySQLを含む6つのDBエンジンから選択し、DBを構築することができます。
RDSは非AuroraかAuroraか選択することができ、非Auroraは手動でストレージの割り当てやスケーリング設定を行う必要がありますが、Auroraはその辺りの設定を自動で行なってくれます。
特にRDSの設定に対して要件がない場合は、Auroraを利用した方が自動で可用性やバックアップの設定をおこなってくれる為、データベースの管理が少なくなります。但し、非Auroraと比較しAuroraの方がコストがかかるため、注意が必要です。
Amazon Auroraについて
Amazon Auroraは、Amazon RDSの拡張サービスであり、Amazon RDSでデータベースを構築する際、エンジンオプションでAuroraを利用するか非Auroraか選択する事ができます。
Auroraは、非Auroraと比較して、追加オプションや高速化の仕組みなど、高性能な仕様となってます。
詳細は、Auroraの公式ドキュメントに記載されてます。
また、Auroraは、グローバルデータベースを利用する事で、構築リージョンと別リージョンに同スペックのレプリケーションを作成する事ができます。
Auroraのグローバルデータベースについて
Auroraは、可用性を維持するためにグローバルデータベースの機能を持っています。グローバルデータベースを利用することで別リージョンにセカンダリクラスタ(レプリカ)を作成し、プライマリがフェイルオーバー(障害が発生)した際に自動でセカンダリクラスタに切り替わる機能を持っています。
但し、グローバルデータベースを利用すると、別リージョンにレプリカを作成した分だけコストがかかり、セカンダリクラスタを停止することができない為、注意が必要です。
RDS Proxy
RDS Proxyは、接続元(クライアント)と接続先のRDSの間に設置し、DBアクセスを中継する役割を果たします。
既存のDBからRDSに移行する場合、RDS Proxyを利用することで、クライアント(アプリケーション)からの接続を維持しながら自動的にRDSへ接続することができます。
また、接続先のRDSに対する接続を抑える事ができます。
ログのモニタリング
RDSでは、データベースに対する監査ログ等の様々な種類のログを収集する事ができ、ログの連携先としては、CloufWatchLogが利用できます。
但し、RDSとS3は連携サービスとして提供されていない為、S3でRDSのログを保管する際は、実装方法を検討する必要があります。例えば、CloudWatchLogsに保管されたログをサブスクリプションフィルターを通し、Amazon Kinesis Data Firehose経由でS3にログを出力するケースが実際の構築現場では多く見られます。
これらのRDSが取得できるログについては、次のような種類が存在します。
一般ログ
クライアント側でエラーが疑われるとき、クライアントが mysqld に送信した内容を正確に知りたい場合に使用する。
エラーログ
mysqld が開始および停止された時期を示す情報と、サーバーが実行中に発生したあらゆるクリティカルエラーを知りたい場合に使用する。
スロークエリログ
実行に要した時間を指定して、その範囲のログを知りたい場合に使用する。
RDS on VMwareとは
RDS onVMwareとは、AWSがRDSをVMware上に提供するサービスです。
特徴としては、RDS onVMwareはフルマネージドサービスの為、VMware vSphereクラウド上のRDSの管理を安易にすることができます。
RDS onVMwareが提供する機能は、以下の通りです。
- 自動バックアップでバックアップを取得できる。
- CloudWatchでモニタリングが可能。
- ※基本的にはAWS RDSと同じ機能を提供する。
オンプレミス環境へのリードレプリカ展開の方法
オンプレミス環境へのRDSリードレプリカの展開方法は、以下の通りです。
- RDS on VMwareを利用して、オンプレミスの VMware 環境で Amazon RDS マネージド型データベースをデプロイする。
- IPsec VPNで接続し、mysqldumpでオンプレRDSにデータベースを転送する。
コメント