Amazon RDS編~MySQLとAmazon RDSとの比較~


こんにちは!Rookieです。

以前のレシピに引き続き、今回もAmazon RDS編です!
今回はMySQLとAmazon RDSの比較についてお話していきたいと思いますが、その前にAmazon RDSに関する情報をご紹介します!

先日、AWSの方でAmazon RDSにイベントサブスクリプション機能が追加されたと発表がありました。
この機能は、Amazon RDSのインスタンスに関連づけられたさまざまなイベントに対して、SNSを介し通知を受け取れるようになるというものです。
Amazon RDS DBインスタンスのストレージ不足や障害等が発生してしまった場合でも、すぐにプッシュ通知で確認することが可能です。
他にもバックアップの開始や終了、データベースのシャットダウンや再起動など40以上の通知タイプが利用可能です。

SNSとの連携でEメールメッセージとして通知を受信することもできるので、
いつでもすぐにサービスの状態を確認することができてより詳細でより安全にシステム運用をすることができますね!

さて、ここから本題に入りまして、今回は物理サーバ環境でのMySQLでデータベースを利用した場合と、クラウド環境であるAmazon RDSでデータベースを利用した場合とでの比較についてお話していきたいと思います。

Amazon RDSはMySQLを通常にサーバにインストールして使うのに比べて、さまざまな機能が簡単に利用できるようになっています。
以下にMySQLとAmazon RDSとの比較をまとめてみます。

■簡単に調達できる!

データベースが必要になった際、Amazon RDSであれば、AWSの管理コンソールから操作をすることでたった数分で用意をすることができます。

以前のレシピ「Amazon RDS編~DBインスタンスを立ちあげてみよう!~」を参照いただいても、簡単に立ちあげをおこなえることがお分かりいただけるかと思います。
201304150101

■Multi-AZ機能による冗長化構成が可能!

冗長性を上げる方法としてホットスタンバイのデータベースを作り、運用系に何かがあると切り替える(フェイルオーバー)という手法があるのですが、Amazon RDSにはそれを実現することのできるMulti-AZという機能があります。
Multi-AZ機能を利用することで2つのデータセンターにまたがりレプリカを作成し、運用系に何らかの障害が発生すると自動的にフェイルオーバーします。
通常だとレプリケーションラグというタイムラグが発生してしまうのですがAmazon RDSでは同期をおこなっているため、タイムラグが発生しません。
このMulti-AZを活用することでAmazon RDSは劇的に安定します。

また、Amazon RDSでは定期的にメンテナンスがありフルバックアップを取ったり、MySQLのマイナーバージョンアップをしたりするのですが、その間データベースサーバは停止してしまいます。
(※このメンテナンス時間は、開始から終了まで数分のみを要します。)

しかし、このMulti-AZ機能使うことでその作業はスタンバイ側のデータベースでおこなうことができるようになり、停止時間はほぼなくなります。
201304150102
なお、Amazon RDSのMulti-AZ機能の詳細については、
以前のレシピ「Amazon RDS編~Multi-AZでできること~」を参照してください。

■バックアップ機能も充実!


Amazon RDSでは自動でデータベースとトランザクションログのバックアップをしています。
最大35日間で指定した期間のバックアップ保持をすることができ、最短で5分前の状態に戻すことができます。
通常に物理サーバでMySQLを運用した場合だと、定期的なバックアップも独自に設定しなければならないので、これは大きなメリットです。

さらに、任意のタイミングのスナップショットを取得することもでき、MySQLのデータをスナップショットとして残しておいて、そのスナップショットを使って新しくデータベースサーバを立ち上げるということも可能です。
201304150103

■ディスク容量の増減が容易!


データベースを物理サーバで運用する際に問題となるのが、ディスク容量不足です。
マスター/スレーブなどのレプリケーション構成を取っていればなおさらで、溜まっていくデータがディスクを圧迫します。
物理サーバでこのような状態になると、とても厄介かと思いますが、かといって最初から容量の大きいディスクを用意するのも無駄が多いです。

Amazon RDSはクラウドサービスなので、もちろんその点も解決済でHDDの容量を後から増やすことも可能です。
最初10GBから初めて足りなくなってきたら20GB、また足りなくなったら200GBというように使っていきながら容量を増やしていくことができます。

これを物理環境で実現しようとしたら、高価なストレージサーバを用意するなどたくさんの費用がかかってしまいますがAWSは従量課金制なので、拡張性だけでなくコスト面のメリットも得られます。
201304150104

■スケールアップも簡単!


Amazon RDSはクラウドサービスですので、負荷が高くなりデータベースが耐えられなくなってきたら、簡単によりハイスペックなデータベースサーバにすることが可能です。
それもたったの数分で終わります!
ただスケールアップをおこなう際、数分間インスタンスを停止する必要があるので注意しましょう!

また、Amazon RDSにはリードレプリカという機能もあり、書込みはできませんが読込み専用のデータベースを作成することができます。
リードレプリカの詳細については、
以前のレシピ「Amazon RDS~リードレプリカ編パート①パート②~」に記述がありますので、
そちらを参照してください。

201304150105

いかがでしたでしょうか?
このようにAmazon RDSを利用すればデータベースを簡単に用意することができ、
さらに、上記に記述したようなさまざまメリットもあります。
是非、確認していただきデータベース運用を効率良くおこないましょう!

次回は「Amazon S3編~S3バケットを作成してみよう!~」と題して、バケットの作成についてお話していきたいと思いますのでお楽しみに!