様々なエンジンが選べる「Amazon RDS」
RDBMSをAWSに移行するには、オンプレミスのRDBMSのイメージをそのまま「Amazon EC2」の仮想サーバーに載せる方法がある。この場合はEC2で動く仮想サーバーのroot権限が得られるので「自由度は高く、従来と同じような運用ができます」と話すのは、アシスト クラウド技術本部の神山太一氏だ。
しかしながら、この方法では運用管理はオンプレミスとほとんど変わらず、管理におけるスキルやコストは従来通りとなる。対してAmazon RDSはマネージドサービスのため「DBA(データベース管理者)のわずらわしいタスクをAWSにオフロードできます」と神山氏。データベースの構築、可用性の確保、バックアップの実装などが容易で、専門的なスキルもそれほど必要ない。反面、マネージドサービスには制限もあり、従来のオンプレミスの運用を変える必要も出てくるという。
Amazon RDSは、MySQL、PostgreSQL、MariaDB、SQL Server、Oracle Database、そしてAurora(MySQLおよびPostgreSQLに対応)など、現在(2022年7月時点)では7つのエンジンが選択でき、オンプレミスやAmazon EC2ベースで運用するよりも管理タスクをAWSにオフロードできる範囲は大きくなる。
Amazon RDSの中身は、仮想サーバーのAmazon EC2とブロックストレージの「Amazon EBS」の組み合わせだ。Auroraを除くエンジンに関しては、次の構成をとることができる。プライマリインスタンスを1つのAZ(アベイラビリティーゾーン)で構成し、レプリカは別のAZにスタンバイ・インスタンスとして作成可能だ。この場合、レプリカはAWSの機能を用いた同期レプリケーションとなり、フェイルオーバー先としてしか利用できないという。ただ、別途リードレプリカ・インスタンスを5つまで作ることができ、こちらはデータベースエンジンの機能を用いる非同期レプリケーションとなる。
RDBMSをクラウドに最適化したAurora
Auroraは「AWSがRDBMSをクラウド時代に最適化し、再設計したものです」と神山氏。従来のRDBMSはすべての要素を1つのエンジンにまとめたモノリシック構成だが、Auroraはスケーラビリティ、可用性、耐久性の観点から「コンピュートレイヤーとストレージレイヤーを個別のエンジンとして明確に分離しています」とのこと。
AuroraはPostgreSQLとMySQLの2つが選択でき、現在(2022年7月時点)Aurora PostgreSQLはオープンソース・ソフトウェア(OSS)のPostgreSQLバージョン10、11、12、13、14と強い互換性を保持している。そのため「SQL、クライアントアプリケーション、プロシージャーや拡張モジュールなどをそのままPostgreSQLからAuroraに移行できます」と神山氏は述べる。
また、3つのAZに対し読み書き可能なWriterインスタンス、読み取り専用のReaderインスタンスを構成可能である。Readerインスタンスは3つのAZに対し最大15個まで追加でき、Writerインスタンスに障害が発生した際は、Readerインスタンスが即時にWriterインスタンスに昇格し可用性を確保するという。
そして、Auroraの最大の特長がクラスターボリュームだ。これはストレージレイヤーの機能で、3つのAZに2つずつ、合計6つのデータコピーを冗長化して保持する論理的な“共有ディスク構成”となる。