オンプレミスのVMware vSphere上でAmazon RDSを利用できる「Amazon RDS on VMware」を紹介
はじめに
Amazonのクラウドサービス「AWS(Amazon Web Services)」には仮想マシンサービスの「EC2」やストレージサービスの「S3」をはじめ、機械学習用のプラットーフォーム「Amazon Machine Learning 」やビッグデータ処理に適した「Amazon EMR」、データ分析のクエリサービス「Amazon Athena」といった幅広い分野の開発が可能なサービスが提供されています。そのサービス数は100を超えていて、今回取り上げるデータベース関連サービスだけ見てもAmazon RDS、Amazon Redshift、Amazon Auroraというように複数存在する状況です。
またAWSの各サービスはクラウド上で完結する運用だけではなく、それまで利用していたオンプレミス環境と連携して運用することや、AWSのサービスをオンプレミス上で運用することが可能なものもあります。今回はこのうち後者に該当するオンプレミス環境のVMware vSphere上でAmazon RDSを運用できる「Amazon RDS on VMware」について紹介します。
Amazon RDS on VMwareは発表されたのが2018年8月でリリースされたのは2019年10月と2023年現在でまだ4年程しか経っておらず、2006年にサービス開始されたAWSの中では比較的新しいサービスとなります。そのためインターネット上の情報が少なめで、あっても経験者向けの難易度の高いものがほとんどとなっています。今回はまだ経験の浅いクラウドエンジニアやSE(システムエンジニア)、インフラエンジニアの方、あるいはこれからAWSのサービスを利用しようと検討している方に向けてAmazon RDSやVMware vSphere(ブイエムウェア ブイスフィア)がどのようなサービスであるかを解説した上で、Amazon RDS on VMwareの基本的な仕様を紹介します。
Amazon RDSはどんなサービス?
Amazon RDSは「Amazon Relational Database Service」の略でAWSにおけるデータベース関連サービスではありますが、MySQLやOracleのようなデータベースエンジンサービスとは異なります。SQL文を使ってデータの管理・操作を行うシステムのことを「リレーショナルデータベース管理システム(RDBMS)」と呼びますが、このRDBMSに分類される各種データベースエンジンから任意のものを選択したうえでデータベース環境を構築し運用できるサービスがAmazon RDSとなります。
AWSのサービスの多くには無料枠が設けられていますが、RDSにも無料枠があります。「Single-AZ」「db.t2.micro」「db.t3.micro」「db.t4g.micro」といった一部インスタンスを750時間/月利用可能な他、20GBのストレージ、20GBのスナップショット、自動バックアップも無料となっています。無料枠以外の料金は基本的に従量課金制となっており、データベースエンジンやインスタンス、ストレージの種類によって1時間当たりの料金が異なっています。なお、リザーブドインスタンスという定額の契約方法もあり、1年または3年という期間であらかじめインスタンスの利用を予約しておくことで大幅な割引を受けることができます。具体的な料金については変動する可能性もあるため、申し込む直前にAWSの公式サイトで確認してください。
Amazon RDSではOracle、MySQL、MariaDB、SQL Server、PostgreSQL、Amazon Auroraの6種類から選択できるようになっており、管理画面上でその他必要な項目を選択することで簡単にデータベース環境が構築可能となります。オンプレミスでデータベースサーバーを構築しようとすると機器の手配はもちろん、その後のサーバー・ネットワーク設定を行ったうえでさらにデータベースの設定やチューニングを行うことになるので、場合によっては他のサーバーと接続できるようになるまで数日かかることもあります。Amazon RDSを利用することでこれらにかかる工数を大幅に削ることができ、エンジニアはその他の業務や別のプロジェクトに注力しやすくなります。このことはAmazon RDSだけではなくその他のクラウドサービスにも見られる大きなメリットと言えます。
Amazon RDSに絞った特徴としては「マルチAZ配置」「リードレプリカ」という機能があるという点が挙げられます。特にマルチAZ配置は聞き慣れない言葉かもしれませんが、AZは「Availability Zone」の略で複数のデータセンターを使い分けることで可用性を保つ機能のことを表しています。各データセンターはそれぞれ電力系統が独立しているものの高速なネットワークで接続されているため、仮に一つのデータセンターで障害が発生しても自動的に別のデータセンターに切り替えてシステム稼働を継続することができます。この仕組みは普段稼働させるプライマリとバックアップ用のスタンバイレプリカをそれぞれ別の環境に配置することで実現しますが、その分費用が多くかかるという点には注意が必要です。なお、マルチにするかシングルにするかはオン・オフの設定で変更可能です。
もう一方のリードレプリカは、一言で表すと読み取り専用のデータベースのことです。リードレプリカを利用することで負荷分散が可能となり、プライマリのデータベースに高負荷が発生してもパフォーマンスを落とすことなく安定した運用が可能となります。プライマリ側で更新処理を行い、リードレプリカ側で読み取りのリクエストを処理するという状態となるためデータの更新は非同期は非同期となります。そのためリードレプリカは処理の高速化には向いているものの、整合性を重視する場合は向いていません。整合性もとりたいという場合は前述したマルチAZ構成を別途設定すると良いでしょう。なお、リードレプリカは複数持つことができるということも覚えておきましょう。
以上がAmazon RDSの大きな特徴ですが、その他の細かい特徴も簡単に紹介しておきます。RDSには「メンテナンスウインドウ」という制御機能があり、この設定を行うことでメンテナンス作業を自動化することができます。例えばソフトウェアへのパッチ適用や設定変更、バックアップの実行時間を設定しておくことで、その時間にエンジニアが不在でも自動的に作業が進められるようになります。RDSのマネージドサービスであるためAWS側で行われるメンテナンスがあるものの、ユーザーが管理しなければならない部分が皆無というわけではないので、RDSを運用するうえでメンテナンスウインドウは有用です。なおパッチには必須のものと実施の延期が可能なものの2つがあり、必須のものに関してはメンテナンスウインドウで設定されていない時間帯に実施されることがあることを頭に入れておきましょう。
またRDSはAES-256暗号化アルゴリズムによってインスタンスを暗号化することが可能な他、自動バックアップ、リードレプリカ、スナップショット用の基本的なストレージの暗号化もできます。さらにOracle、SQL Serverといったデータベースエンジンに関してはTransparent Data Encryption (TDE) によるインスタンスの暗号化も可能となっています。「AWS CloudHSM」や「AWS Key Management Service」といった暗号化サービスを利用して、よりセキュリティを強固にすることも可能なので高いレベルのセキュリティを求められるシステムでの利用にも適していると言えます。実際にAWSの公式サイトではデータベースエンジンごとにdocomoや毎日新聞、NETFLIX、BANDAI NAMCOといった多くの有名企業で導入されている各事例が紹介されていました。
各データベースエンジンの特徴
Amazon RDSの紹介の最後に、RDSで選択できる各データベースの特徴を簡単に紹介します。特にクライアント等からデータベースの指定がなく選定に迷うという方、初めてデータベースを利用するのでどれを利用して良いかわからないという方は参考にしてみてください。なおRDSで利用可能なバージョンは限りがあり、更新される可能性があるため、料金同様に利用可能なバージョンについてはあらかじめ公式サイトで確認しておくことをおすすめします。特にオンプレミス環境からデータベースを移行する場合は、これまで利用していたバージョンと一致しているかを注意深く確認する必要があります。
一つ目の「Oracle」はOracle社によって1979年から長い間提供されている商用のデータベースです。そのため通常はライセンス料を支払って利用することとなりますが、RDSにおいては「ライセンス込み」「Bring-Your-Own-License (BYOL)」のいずれかから選択可能となっており、「ライセンス込み」の場合は別途ライセンスを購入する必要がなくなります。一方のBYOLは、すでにユーザーが所有しているライセンスをRDS上で適用できる仕組みです。高度なデータウェアハウス機能を備えていることや、高可用性があること、機械学習にも利用できる点が特徴です。
二つ目の「MySQL」はオンプレミス、クラウドにかかわらず幅広い分野のシステムで利用されているオープンソースのデータベースの一つです。システムの規模においては大小かかわらず利用可能で操作性もシンプルで情報量も多いため、初めてデータベースを利用する際におすすめです。
三つ目の「MariaDB」はMySQL5.5から派生したオープンソースのデータベースであるためMySQLとの共通点が多いですが、大きな違いとしてはクラスター構成による負荷分散が可能ということが挙げられます。スケーラビリティや機能性、セキュリティの面においてはMySQLより向上しているものの、派生元がMySQLということもあり互換性が高いという点もメリットの一つと言えます。
四つ目の「SQL Server」はMicrosoftからリリースされているデータベースです。そのためWindowsOS環境のシステムで相性が良く、GUIでの操作も可能となっているのでコマンド操作が苦手という方にはおすすめです。利用するためにはライセンス料が伴いますが、Oracleと異なってRDS上では「ライセンス込み」のみが用意されており、ユーザーにて別途SQL Serverのライセンスを購入する必要がありません。
五つ目の「PostgreSQL」はMySQLと同じく人気の高いオープンソースのデータベースです。Linux、Windows、MacOSといった様々なOSで利用できる他、オブジェクト指向のデータベースエンジンであるという点が大きな特徴となっています。なおRDSのPostgreSQLでは多くの部分でオンプレミスのPostgreSQLと同じコードやアプリケーション、ツールの利用が可能です。ただし今回詳しくは取りあげませんが、一部利用できない機能もあるため利用の際はあらかじめ公式サイトで相違点を調べておくことをおすすめします。
六つ目の「Amazon Aurora」はAWSが提供するクラウドサービス用に最適化されたデータベースです。MySQLやPostgreSQLと互換性がありながら弱点となっていた性能面や拡張性を向上させ、それぞれMySQLの5倍、PostgreSQL3倍の処理能力を持ち合わせたデータベースとなっています。またMySQLやPostgreSQLからAmazon Aurora、あるいはその逆への移行も標準ツールを利用することで簡単に実施できるようになっています。さらにリードレプリカに関しては最大15個までの設置が可能です。Auroraはクラスタ構成となっていることも大きな特徴で、SQLでの処理が行われるインスタンス層とデータを保存するストレージ層が分離しており、可用性を保ちやすい仕様になっています。
VMware vSphereはどんなサービス?
AWSにも仮想マシンサービスとしてEC2がありAWS自体のサービス開始当初の2006年から存在していましたが、クラウドサービスが主流となる以前からも仮想化技術は普及していました。そんな仮想化サービスの一つがVMware社の提供する「VMware vSphere」というパッケージです。VMware vSphereの中にはハイパーバイザーの「vSphere ESXi」や複数のコンピュータを一元管理・監視できる「vCenter Server」、直接の操作画面となる「vSphere Client」「vSphere Web Client」といったソフトウェアが含まれています。
なお、ハイパーバイザーとは、物理的な1台のコンピュータを仮想化して複数のVMを存在させることができるソフトウェアのことを指します。稼働しているコンピュータは同じなので当然ながら物理的なハードウェアは共通であるものの、そこに仮想的なハードウェアを構築することでCPUやメモリ、ハードディスクを各VMで分割して利用できるようになります。複数のVMが存在しているというのは、社内に複数の独立した社員ごとのパソコンがある状況をイメージしてもらえればわかりやすいことでしょう。1台の物理的なコンピュータを稼働させるだけで、仮想的に複数のパソコン環境が提供できるという仕組みです。vSphere ESXi以外にもHyper-VやKVM(Kernel-based Virtual Machine)、Citrix XenServerといったハイパーバイザーが有名です。
仮想化には大きく「ホスト型」「ハイパーバイザー型」「コンテナ型」の3種類があり、ホスト型はホストOS上でゲストOSを動かすタイプ、ハイパーバイザーはホストOSを持たずに直接ゲストOSを動かすことが可能なタイプとなります。ホストOSがない分ハイパーバイザー型の方が処理速度が早くなります。最後のコンテナ型はアプリやミドルウェア、ライブラリ等が組み込まれたコンテナと呼ばれるものを動作させるタイプです。
VMware vSphereはWindows、Linuxの他にも様々なOS上での動作が可能なサービスであり、利用することでリソース状況を監視したうえでの各VMへの適切なリソースの自動割り当て、VMを稼働させたままでのメンテナンスやパッチの適用、臨機応変なリソースの追加等が可能となります。また1台の物理的なコンピュータ内に複数のサーバーを構築することも可能なため、必然的に用意するサーバーの台数が減ることになりコスト削減も可能となります。
VMware vSphereには最初に紹介したソフトウェア以外にも細かいものがたくさんありますが、High Availability(HA)、vMotion、Storage vMotion(SVMotion)、Distributed Resource Scheduler(DRS)、仮想マシンテンプレート、クローン、Fault Tolerance(FT)、Hotadd等が特に利用されることの多いコンポーネントとなります。
High Availability(HA)は「高可用性」を表す用語であり、物理サーバーに障害が発生した際に別のリソースに余裕がある物理サーバーで仮想マシンを再起動することが可能です。この機能によりダウンタイムを最小限に留めることができます。なおvCenter Serverで設定されていることが前提とはなるものの、万が一vCenter Serverで障害が発生したとしても機能はします。
vMotionはダウンタイムを発生させることなく別の物理サーバーへ仮想マシンを移行することが可能(ライブマイグレーション)な機能です。稼働した状態のまま移行元と移行先の差分がなくなるまでコピーが行われ、メモリ情報もそのままコピーするためOS上の処理も移動可能です。なお次に紹介するStorage vMotion(SVMotion)も名称・機能共に似ていますが、SVMotionの場合は名称にもあるように共有ストレージ間にて移動が行われます。また実際vMotionの場合、ユーザーが気づかない程度の短い間のサービス停止が発生し、共有ストレージが停止した場合は仮想マシンも停止することとなりますが、SVMotionの場合は共有ストレージが停止したとしても仮想マシンは稼働し続けられる仕組みとなっているという違いがあります。このように見るとSVMotionの方が優れているように見えますが、共有ストレージ間でのデータ転送が行われるためネットワークの状況や転送するデータ量によってはVMotionより時間がかかることもあるという点は覚えておきましょう。
Distributed Resource Scheduler(DRS)は、クラスタ構成された仮想マシンのCPU・メモリといったリソースを監視して高負荷が発生した場合はリソースに余裕がある別の物理サーバーへ自動で移動する機能です。DRSの目的は不均衡の解消(ロードバランシング)となるため、一つの仮想マシンのリソースがなくなった場合は均衡を保とうと負荷を最適化します。ただし多少のばらつきが発生していたとしてもリソースが確保されていればDRSが機能することはありません。
仮想マシンテンプレートは、既存の仮想マシンをテンプレートイメージとすることでそのイメージを元にいくつもの仮想マシンを複製できる機能です。これを利用することで毎回仮想マシンに同じ設定を施す必要がなくなります。なおクローンも仮想マシンの複製機能ですが、クローンの場合は仮想マシンを起動したままでの複製が可能です。
Fault Tolerance(FT)は「耐障害性」を表す用語であり、本番稼働している仮想マシンと全く同じ環境を別のvSphere ESXi上にコピーしておくことで、本番環境に障害が発生してもコピーした環境にダウンタイムを発生させることなくフェールオーバーすることで可用性を保ち、データの損失も防ぐことができる機能です。障害を自動で検知できる他、フェイルオーバー後は自動的に新たなセカンダリの仮想マシン作成を実施する、ファイバチャネル、NAS、iSCSIといった様々な共有ストレージ上で動作が可能といったメリットがあります。
最後のHotadd(ホットアド)は仮想マシンの停止を発生させることなくデバイスを追加して認識させることが可能な機能です。この機能により特別メンテナンスの時間を設けることなく、クラウドサービスのようにCPU・メモリといったリソースの追加作業が可能となります。ただしゲストOSがこの機能に対応している必要がある点には注意が必要です。
Amazon RDS on VMwareはどんなサービス?
ここまではAmazon RDS、VMwareについて紹介してきたのである程度概要をつかんでいただけたことでしょう。次に紹介するのはこの2つのサービスが重なった「Amazon RDS on VMware」ですが、ここまで順に読み進めていただいた方はこのサービスを理解するのに苦労することはないと言えます。Amazon RDS on VMwareは、Amazon RDSをオンプレミス環境のVMwareで構成されたコンピュータ上で稼働できるサービスです。
それまでAWSのクラウド環境内でVMwareを利用できる「VMware Cloud on AWS」は提供されていましたが、ちょうどその対照となるサービス「Amazon RDS on VMware」が2018年のVMwareの講演で発表されて実際2019年10月にリリースされた状況です。
もちろんVMwareでもRDSのメリットは生かされるので、通常オンプレミス環境で必要となるデータベースサーバーの構築を省いてデータベース環境を簡単に構築でき、システム稼働中のスケーリングも容易にできるようになる他、データベースのプロビジョニング(必要なリソースの準備)や各種パッチ適用、バックアップ、ポイントインタイムリストア、コンピュートスケーリング、インスタンスのヘルスモニタリング、フェイルオーバー等を自動化できます。しかしながら通常のRDSでは6種類のデータベースが利用できましたが、VMware上で利用できるデータベースはMicrosoft SQL Server、PostgreSQL、MySQLの3種類のみとなります。ただし今後利用可能となるデータベースが追加される可能性もあるので最新情報のチェックも欠かさず行いましょう。
RDSをVMware上にデプロイする方法は、オンプレミス環境のvSphereクラスターを準備する方法と、RDS on VMwareをクラスターにオンボードする方法の2種類があります。またRDS on VMwareでは「RDSコネクタ」が利用されますが、これによってAWSの各リージョンからVPN(専用仮想プライベートネットワーク)を経由してオンプレミス環境にあるRDSの管理が可能となります。RDSコネクタ以外にもエッジルーターやデータストア、スナップショットマネージャーとオブジェクトストア、イベントプロセッサ、イベントサービスアグリゲーター、VDMEといったコンポーネントがあり、これらによってVMware上でのRDSのプロビジョニングや管理を可能としています。RDS on VMwareはオンプレミスとクラウドを掛け合わせて運用するサービスとなるため、利用する際の前提条件も細かく定められています。そのため実際に利用する前にはAWSの公式サイト内に掲載されている前提条件を詳しくチェックしておくことをおすすめします。
まとめ
今回の記事において、Amazon RDSは複数のRDBMSから任意のものを選択して簡単にデータベースシステムを構築できるサービスであること、VMware(vSphere)は一台のコンピュータ内に複数の独立した仮想マシン(VM)を立ち上げることができるサービスであること、Amazon RDS on VMwareはRDSをオンプレミスのVMware上で運用できるサービスであること、また対照となるサービスとして「VMware Cloud on AWS」があること等を紹介してきました。
近年は大企業・政府機関のシステムであってもクラウド環境に移行する傾向が顕著ですが、状況によってはオンプレミス環境を残しておく必要があるという状況も発生することでしょう。そのような場合はクラウドとオンプレミスを連携しての運用が発生するため、今回紹介したようなAmazon RDS on VMwareの利用が欠かせない状況が発生する可能性もあります。オンプレミスからAWSへの移行や連携が発生する場合は、ぜひ今回の記事を参考にしていただけると幸いです。