元オンプレエンジニアがAWSを使ってみた(RDS編 概要)

こんにちは、大柳です。

元オンプレエンジニアが、AWSを使った感想、オンプレとの違いについて紹介していくシリーズ、2つめのテーマはAmazon RDS(Amazon Relational Database Service )です。
今回もRDSを使ってみた感想を紹介していきます。まずはRDS概要編です。

Amazon RDSの概要

Amazon RDSはマネージド型リレーショナルデータベースで、ハードウェアからOS、データベースソフトウェアまでAWSが面倒を見てくれます。
オンプレのようなインストール作業、ストレージやネットワークの構築作業は不要で、ほとんどクリックだけでDBを構築できます。

Black Belt Online Seminar AWS Amazon RDSより引用

上の図にあるように、AWSを利用したDB構築は、EC2上にRDBMSをインストールして構築する方法もあります。
RDSはマネージド型サービスであり一部機能が使えない制約もあるため、オンプレシステムのクラウド移行を検討する場合には、この方式も選択肢になります。
しかしながらRDSを利用することで、DBの構築、バックアップ、可用性、スケーリングまでAWSで提供されるので、開発者はDBインフラの準備期間を短縮し、アプリケーション開発にリソースを集中することができるというメリットを享受できます。

利用できるRDBMS、エディション・バージョン

RDSでは商用、OSSの一般的な6種類のRDBMSがサポートされています(2017年1月現在)。

・Amazon Aurora…Amazonが開発クラウドに特化したMySQL互換のRDBMSです。
・Maria DB…MySQLの流れをくむOSSのRDBMSです。Wikipedia英語版やGoogle内部でも利用されています。
・MySQL、Oracle、Microsoft SQL Server、PostgreSQL…有名どころのRDBMSも利用できます。

さらに各RDBMSでは主要なエディション、バージョンが選択できるので、例えば現行オンプレシステムを移行する場合、同じDB構成を保つことができ、アプリケーションや業務DB設計への影響を小さくできそうです。
例えばMySQL、Oracleだと、以下のエディション、バージョンが利用可能です。

・MySQL
5.7、5.6、5.5、5.1

・Oracle
Standard Edition One、Standard Edition Two
Standard Edition、Enterprise Edition ※ライセンスを自分で用意する必要あり(BYOL)
バージョン 12.1.0.2、12.1.0.1、11.2.0.4、11.2.0.3、11.2.0.2

逆にいうと、RDS未対応のRDBMS、エディション、バージョンはRDSとして構築することはできません。
未対応のものをAWSで使いたい場合は、ライセンスやインストール媒体を準備したうえで、EC2上にサーバを立てて、オンプレと同じようにインストールする必要があります。DBはマネージドにはなりませんが、EC2としてのマネージドサービスのメリットは享受することができます。

なお、ライセンス料はAWS利用料に含まれる場合と、ライセンスを自分で別途調達するケースがあります。
上記のOracleだとSE、EEではライセンスの個別調達が必要になります。

インスタンス構成

EC2と同様にインスタンスタイプごとにCPUとメモリの組み合わせは固定されており、利用者で変えることはできません。
スタンダード、メモリサイズ重視のメモリ最適化インスタンス、小規模向けのマイクロインスタンスが提供されます。

Black Belt Online Seminar AWS Amazon RDSより引用 http://www.slideshare.net/AmazonWebServicesJapan/black-belt-online-seminar-aws-amazon-rds

DBを運用していると、メモリサイズ不足によりサイズを拡張することがありますが、RDSの場合はCPUだけ、メモリだけといった拡張はできません。
CPUとメモリをセットにして、上位のインスタンスに切り替えることになります。
そのためメモリを拡張したいだけなのにコア数も増えて、その結果、ソフトウェアのライセンスも追加になるケースも出そうです。
このあたりはオンプレと比較すると融通が利かない部分です。

ディスクの構成

こちらもEC2と同じく、RDSでも汎用SSD、高IOPSを実現できるプロビジョンド IOPS (SSD)、HDDであるマグネティックボリュームが選べます。
高IOPSを求める場合はプロビジョンドIOPSの利用を検討します。
RAIDを組むなどしてIOPSを高くするアプローチは、マネージド型であるRDSでは使えません。

サポート

オンプレのOracleの場合は、SR(サービス・リクエスト)でOracle社へのサポート・問い合わせができますが、RDS上で稼働するOracleの場合ももちろんサポートは受けられます。
なお、サポート窓口はライセンスの調達方法により違いがあります。

ライセンス込みの場合:AWS Premium Support
自分でライセンスを調達する場合(BYOL):AWS Premium SupportとOracleの両方

オンプレの場合はOracle SRに直接、またはベンダ経由の問い合わせですが、RDSの場合はOracle、AWSとの連携体制を事前にきちんと確認した上で、サポートを受ける必要がありそうです。

まとめ

Oracle経験が長いのでRDS for Oracleの話が多くなってしまいましたが、オンプレと比べてRDSでは構築期間の短縮、アプリケーション開発への集中といったメリットがある一方で、制約もあることがわかりました。

引き続き、次回も元オンプレエンジニアシリーズ RDS編をお届けします。
次回はRDSの各種DB設定について取り上げます。

お楽しみに!