はじめに
本稿は、AWSが提供しているデータベースサービスAmazon RDS(Amazon Relational Database Service)で利用可能なデータベースエンジンの種類・RDSの機能について主に触れていきます。
RDSとは
RDSとはMySQLやOracleなどの6つのDBエンジンから好きなものを選んで使うことができるAWSマネージドサービスです。 マネージドサービスであることの利点として以下の点があります。
- ハードウェアの用意・保守をAWSに任せることができる。
- データベースのインストールやバックアップといったセットアップ作業が不要になる。
- スケールアップ・スケールダウン・パラメーターの変更を簡単な操作で実行することができる。
- データベースセキュリティを利用することができる。
- 冗長化もマネージメントコンソールで簡単に設定できる。
- リードレプリカを用意することで、アプリケーションパフォーマンスの向上につながる。
- 従量課金制であり、使用状況に応じて柔軟に料金体系を選択することができる。
RDSで利用可能なデータベースエンジン
RDSでは以下のデータベースエンジンが利用可能です。
それぞれ特徴があるので、利用目的に合わせて選択してください。
・MySQL
操作がシンプルで、あらゆる規模の開発に使用できます。
バックアップやストレージオプションなどはPostgreSQLと同じ性能です。
・PostgreSQL
オブジェクト指向のリレーショナルデータベースのことです。
macOSやWindows、Linuxといったさまざまなプラットフォームで使用できるマルチプラットフォーム対応が特徴とされています。
・Oracle
フルマネージド型のDBエンジンです。
フルマネージド型とは、セットアップや管理、バックアップなどの作業が自動的に処理され、ユーザーが作業を行う必要がないもののことを指します。
・MariaDB
MySQLの開発者が作成したオープンソース型のDBエンジンです。
MySQLとの違いとしては、複数のサーバーを連携させて1つのサーバーで動いているかのように動かせるクラスター構成が可能であり、負荷を分散させたり障害に備えたりできます。
MySQLと同様に、バックアップやストレージオプションなどはPostgreSQLと同じ性能です。
・Amazon Aurora
AWSが提供しているフルマネージド型のプラットフォームです。
MySQLとPostgreSQL双方との互換性があります。
MySQLとPostgreSQLと比較してスループットがより多く処理できます。
耐障害性においてリードレプリカを最大15個追加することが可能です。
・SQL Server
Microsoft社が開発したリレーショナルデータベースのことです。
Windows環境で一緒に使われることが多く、Amazon RDSにおいてはフルマネージドで使用できます。
RDSの主だった特徴
RDSとはのマネージドサービスであることの利点の中でも
RDSの主要となる特徴をより掘り下げて紹介します。
データベースセキュリティ(外部と隔離したネットワークやデータ暗号化)を利用することができる。
外部と隔離したネットワーク:
AWSでは、データベースインスタンスをAmazon VPCで実行することを推奨しています。
VPCで実行することによって、外部(インターネット等)からアクセスできないプライベート空間内で構築・運用できる様になります。
さらにNACLやセキュリティグループを利用することで、ネットワークアクセスを制御することが可能になります。
また、別途設計・構築は必要になりますが、オンプレミスからのVPN接続や、専用線によるセキュアな接続も可能です。データ暗号化:
Amazon RDSでは、AWS Key Management Service (KMS) で管理するキーを使って、データベースを暗号化できます。
暗号化されたデータベースインスタンスでは、ストレージに保存されるデータ、バックアップ、スナップショットも暗号化されます。
リードレプリカ利用時にはプライマリ DB インスタンス同様暗号化する必要があります。
Amazon RDSは、SQL ServerおよびOracleのTransparent Data Encryptionをサポートします。
OracleのTransparent Data Encryptionは、AWS CloudHSMと統合されています。
これにより、AWSクラウドにあるシングルテナントのHardware Security Module (HSM) アプライアンスで安全に暗号化キーを生成、保存、管理できます。
https://aws.amazon.com/jp/kms/
公式:AWS Key Management Service (KMS)
https://aws.amazon.com/jp/cloudhsm/
公式:AWS CloudHSM
冗長化もマネージメントコンソールで簡単に設定できる。
- マルチAZ構成:
Amazon RDSマルチAZ配置は、データベースインスタンスの可用性と持続性を高め、プロダクションデータベースのワークロードに最適です。
マルチAZデータベースインスタンスをプロビジョニングすると、Amazon RDSは異なるアベイラビリティーゾーン (AZ) のスタンバイインスタンスにデータを複製します。
- マルチAZ構成:
リードレプリカを用意することで、アプリケーションパフォーマンスの向上につながる。
リードレプリカ:
マスターになるDBインスタンスから複製した読み取り専用のDBインスタンスのことです。
リードレプリカを利用することで、読み取り頻度の高いデータベースの処理に対して、マスターDBインスタンス単体での処理の制限を超えて、伸縮自在にスケールアウトをより簡単におこなうことができます。
特定のソースDBインスタンスのレプリカを複数作成し、アプリケーションの大容量読み取りトラフィックを複数のデータコピーから提供することにより、全体の読み込みスループットを向上させることができます。
リードレプリカはAmazon RDS for MySQL、MariaDB、PostgreSQL、Oracle、Amazon Auroraで利用できます。
https://aws.amazon.com/jp//rds/features/read-replicas/
公式:Amazon RDSリードレプリカクロスリージョンレプリカ:
Amazon RDSのリージョン間リードレプリカを使用すると、ソースDBインスタンスとは異なるリージョンにMariaDB、MySQL、Oracle、PostgreSQL、または SQL Serverのリードレプリカを作成できます。
これをクロスリージョンリードレプリカといいます。
料金体系
料金体系は従量課金制であり、使用できる割引プラン(リザーブドインスタンス)や所有しているライセンスの持ち込みもできるなど、使用状況に応じて柔軟に料金体系を選択できます。
見積もりや、コスト改善を実施する場合は、その都度公式ドキュメントを参照しましょう。
https://aws.amazon.com/jp/rds/pricing/
公式:Amazon RDSの料金
終わりに
今回は、Amazon RDS(Amazon Relational Database Service)について取り上げました。
データベースを構築し稼働させるとなると、費用面と初期構築の敷居が高く感じますが、Amazon RDSを利用することで、知識を必要とするパラメーターや、コストが高くなりがちな冗長化に対しての敷居はある程度は緩和できます。データベースを触ったことのない方でも、データベースの入門として、まずは、Amazon RDSに触れることをおススメします。