はじめに
データベースの運用は大変です。負荷分散やバックアップ、パッチ適用など考えなければいけないことがたくさんあります。障害が起きた時には、さらに大変です。ハードウェアを交換したり、バックアップから復旧したりと大忙しになります。もっと手間の掛からない方法はないのでしょうか?選択肢の一つは、「Amazon Relational Database Service(以下RDS)」です。
この記事では、データベースのクラウド移行を考えているエンジニアの方のために、RDSの概要やメリット、移行の方法などについてお伝えしていきます。
RDSの概要
RDSは、Amazon Web Services(以下AWS)のフルマネージドデータベースサービスです。サーバーやOSの管理なしに、リレーショナルデータベース(RDB)を利用できます。主要なRDBMS製品と互換性があるため、既存のデータベースの移行も可能です。EC2よりも、さらに簡単にデータベースを運用できます。
RDSを使うメリット
すぐに利用できる
OSやデータベースのインストールが不要なため、数分で利用を開始できます。AWSのコンソールから、データベースの種類やサイズなどを指定するだけです。または、コマンドラインツールやAPIからも作成可能です。
保守管理が不要
定期的に提供されるパッチは、自動的に適用されます。常に最新のパッチが適用されるため、セキュリティが高まります。パッチの適用は、指定したメンテナンスウィンドウ時間内に行われます。この際には、ダウンタイムが発生しますが、マルチAZ配置にすることで、ダウンタイムを最小限に抑えられます。
専用のモニタリングサービス
RDSのインスタンスは、Amazon CloudWatchを使ってモニタリング可能です。CPU使用量やメモリ使用量、ネットワーク使用量などを監視できます。アラームを設定すれば、しきい値を超えた時に自動スケールさせることも可能です。
いつでもスケールアップ/ダウンできる
インスタンスクラスを変更することで、簡単にCPUパワーやメモリサイズ、ネットワーク性能をスケールアップできます。数分ほどダウンタイムが生じますが、変更はいつでも可能です。また、データベースサイズの変更はダウンタイムなしで行えます。自動スケール設定も可能です。
バックアップのサポート
RDSでは、デフォルトで自動バックアップが有効になっています。最大で35日間バックアップを保持し、万が一の際には復元できます。また、スナップショットを使えば、任意の時点のデータベースを保存可能です。スナップショットから新しいインスタンスを作成すれば、全く同じデータベースを再現できます。
可用性の向上
マルチAZ配置では、プライマリのRDSインスタンスに障害が起こった場合、自動的に別のインスタンスにフェイルオーバーします。この処理は、1~2分程度で行われるため、ダウンタイムを抑えられます。プライマリのデータは、他のインスタンスに常にミラーリングされています。
RDSにできないこと
フルマネージドサービスであるため、OSにログインすることができません。OSへのログインが要件にある場合には、EC2上でのデータベース運用を検討しましょう。また、互換性のあるデータベースでも、すべての機能がサポートされているわけではありません。データベースエンジンごとにサポートレベルは異なります。
RDSがサポートするデータベースエンジン
RDSでは、次の6つのデータベースエンジンをサポートしています。
- Amazon Aurora
- Oracle
- Microsoft SQL Server
- PostgreSQL
- MySQL
- MariaDB
下の5つは一般的なデータベースエンジンですが、「Amazon Aurora」はRDSのために作られたエンジンです。MySQLと互換性を持つように設計されているため、MySQLからの移行が容易です。MySQL 5.6と比べて、最大5倍のスループットを持っています。3つのAZに渡り、6つのレプリカが作成されるため、データ損失があった場合でも自動的に修復できます。もちろん、ダウンタイムは発生しません。
RDSの料金体系
RDSの料金は、データベースエンジンやインスタンスクラス、マルチAZ配置の有無により異なります。インスタンスクラスについては、1年間や3年間の前払いを行うと値引きが適用されます。また、OracleやSQL Serverといった商用製品は、ライセンスを持ち込むと料金が安くなります。もちろん、ライセンス込みのインスタンスも使用できます。
課金は、インスタンスの起動時間とストレージの使用量、データ転送量に対して行われます。RDSのデータ受信については無料で、データの送信についてのみ課金されます。また、バックアップは、データベースサイズを超えない部分については無料です。
なお、新規アカウント取得から12ヶ月間は、次の無料利用枠が適用されます。
- 750時間の単一AZ t2.microインスタンスの使用
- 20GBのストレージ使用
- 20GBバックアップ
- 1,000万I/O
- 15GBのデータ送信(※全サービス共通)
無料利用枠を使って、動作検証をしましょう。
既存のデータベースを簡単に移行する
AWS Database Migration Service(DMS)を使えば、既存のデータベースからRDSに簡単にデータを移行できます。AWSコンソールから操作するだけで、SQL文を使うことなく移行を開始できます。移行中も既存のデータベースを停止させる必要はありません。全てのデータはRDSに同期されるため、移行開始後に変更されたデータも含まれます。移行が終わったら、後はデータベースを切り替えるだけです。
もちろん、一般的なSQL文によるデータインポートも行えます。ただし、その場合は、データベースの停止やスケジュールの調整など気がかりなことが増えるでしょう。
まとめ
RDSに移行すれば、様々なメリットが得られ、運用も楽になります。メジャーなデータベースを全てサポートしているので、ほとんどの環境から移行できるでしょう。移行のための専用サービスも用意されています。運用しながらでも移行できますので、スケジュールの調整も簡単です。ぜひ移行を検討してみましょう。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments