Amazon RDSでPostgreSQLを運用する3ステップ!オンプレミスとも比較!
PostgreSQLをRDSに導入するハードルが非常に低かったので、メリット、デメリットを交えて導入のための3ステップを示していきます。
ぬこのたのしいぽすぐれ教室 第8回
- 2018年06月18日公開
こんにちは、Amazon RDS でPostgreSQLを約1年間使用して、すっかりRDSに馴染んでしまった、けんいち@NTT-TXです。
これまで、PostgreSQLはオンプレで扱ってきたのですが、RDSの導入ハードルが非常に低かったので、メリット、デメリットを交えて導入のための3ステップを示していきますね。
ステップ1:AWSのマネージドサービスを理解する
マネージドなサービスとは?
マネージドなサービスとは、データベースの利用に必要な環境構築や運用管理をAWS側で行ってくれるサービスです。オンプレミスの場合はサーバの調達から環境構築後の障害対策にいたるまで作りこんでいく必要がありますが、このサービスのおかげで、ユーザは、心置きなくデータベースを使うことだけに注力することができるんですね。
データベース環境構築の自動化
まず、Amazon RDSでは、PostgreSQLの利用環境を作るための以下の作業が全て自動化できます。
- サーバ、ストレージの準備
- OSのインストール
- ソフトウェアのインストール
- データベースの作成
OSのインストールとソフトウェアのインストールだけでも、3時間程度の短縮が可能です。また、インストールの失敗といったリスクも発生しません。
データベース運用の自動化
RDSの利用開始後は以下の運用が自動化されます。
- 毎日のバックアップ
- 障害発生時のスタンバイへの切り替え(マルチAZの場合)
- アップデートの適用
バックアップのためのディスクの確保も自動化されています。さらに、障害発生時にデータベースを復旧する時もバックアップメディアからコピーするなどの作業が自動で行われるため、作業量を減らし、作業時間短縮、および作業ミスの発生確率を下げることが期待できます。
オンプレミスではこれら全ての運用を自前で行うように仕組みを作る必要がありましたが、Amazon RDSでは全て自動で行ってくれます。便利。
ステップ2:RDSとオンプレミスPostgreSQLとの違いを理解する
オンプレミスでは非常に大変だけど、RDSだとマネージドサービスで容易に利用できる、またはオンプレミスPostgreSQLだとできたことがRDSではできない、といったことがいくつかあります。
RDSを使用するメリット
環境周りにおいて、RDSを使用するメリットが非常に大きいです。性能が足りなくなった場合にも、比較的容易にスペック変更による性能改善が可能です。
- CPU性能、メモリ量、ディスク性能などのスペックを自由に変更できる
- ディスク容量も自由に増やせる(減らすことはできない)
- リードレプリカ用のDBサーバも自由に増やせる
- 高可用化が簡単
- バックアップの自動化
- 全ての管理がWEBブラウザ上で実施できる
RDSを使用するデメリット(制限事項)
あくまで、オンプレミスでできたことがRDSではできないこともある、というレベルの話であり、利用の仕方によってはデメリットにはなりませんが、RDSを利用する際の制限事項として理解しておく必要があります。
- sshでサーバに接続できない(OSコマンドによる確認や操作ができない)
- PostgreSQLの同期レプリケーション機能が使用できない
- 導入できるPostgreSQLの拡張機能に制限がある
- スナップショット+WALによる、最新状態への復旧はできない(Point-in-time-recoveryによる5分前までの復旧は可能)
ステップ3:料金計算と、マルチAZについて理解する
料金計算について
AWSにはいくつかの料金体系がありますが、ここでは「オンデマンド」、つまり、利用した時間分だけ課金される体系で計算してみます。
RDSの料金計算は、以下の要素で決まります。
- インスタンスタイプ(CPU、メモリのスペック)
- ディスク性能
- ディスク容量
- 月間の利用時間
たとえば、毎日朝に起動し、夜に落とすような運用の場合だと、以下のような料金になります。 週末も使用しない場合だと、もっと安くなりますね。検証環境の場合は、必要なときだけ利用するといった運用ができます。
マルチAZで運用する場合の料金
商用運用の場合は、障害が発生してデータベースサービスが停止した場合、自動的にスタンバイに切り替わって欲しいですね。
そのような場合はマルチAZを使用しますが、マルチAZでは利用しない時間帯もRDSは停止することができないため、月間の利用時間は100%で計算する必要があります。
マルチAZの場合、スタンバイ用のサーバ費用も発生するので、シングルAZで使用する場合に比べ、倍になります。さらに、シングルAZではサーバ停止中に料金はかかりませんが、マルチAZではサーバを停止できないため、使用しない時間帯にも課金が必要になります。
トータルコストは?
5年間利用するとして、トータルコストで比較してみましょう。
単純な金額比較だと、サーバを購入しちゃったほうが安いですね。
しかしながら、AWSのマルチAZは激甚災害への対応がされており、ユーザ側で物理的な対応する必要がありません。 またサーバ設置のために必要な場所や設備の費用がかからないこと、スペックの柔軟な変更が可能なこと、サービス休止時の手仕舞いが容易なことなど、手元に資産を持たないことのメリットも含め、検討する必要がありそうです。
ところで、5年間トータルではサーバを購入したほうが安いという結論になりましたが、導入時の初期コストはRDSのほうが安いです。では、どの時点でRDSの費用がサーバを購入した際の費用を上回るのでしょうか?
RDSの費用がサーバを購入した際の費用を上回るのは、およそ、1年4ヵ月後ですね。
まとめ
Amazon RDSでPostgreSQLを運用する3つのステップということで、オンプレミスと Amazon RDSで PostgreSQLを利用する際のメリット、デメリットを比較しました。
オンプレミスでの利用には、数年間のトータル費用が安く、かつ PostgreSQLの全ての機能を使えるというメリットがあります。
Amazon RDS の利用には、PostgreSQLの利用のハードルを思いっきり下げるというメリットがあります。 特に、高可用化の容易性と、バックアップの自動取得、サーバスペック変更が自由にできることは、Amazon RDSを選択する大きな理由になりえますね。
NTTテクノクロスでは、OracleからPostgreSQLへの移行や、
運用支援のサービスを提供しています
Oracle、PostgreSQL 両方のデータベースを熟知。特にOracle→PostgreSQLへのデータベース移行が得意。 初めて触ったデータベースはOracle8i。のちにOracle10g RACを使ったシステムを構築し、 オラクルマスター10g GOLDを取得するも、いつの間にかPostgreSQLひとすじに。 当然のようにネコ好き。