今回はAzure Database for PostgreSQLの概要とPaaSのメリットについて記載します。Azure Database for PostgreSQLはAzure上で展開される、PostgreSQLのPaaSサービスです。
AWSでもRDS for PostgreSQLと呼ばれるPaaSサービスがありますが、単純に素早くPostgreSQLを利用したい場合、設定などがほとんどいらないこちらのPaaSサービスの方が非常にシンプルで簡単に起動可能です。
#Azure Database for PostgreSQLの概要
まずはAzure Database for PostgreSQLの概要を簡単にまとめます。
- Azure Database for PostgreSQLはMicrosoft AzureのPaaSサービス
- データベースエンジンはPostgreSQL(9.5、9.6、10、11) ※2020年9月時点
- 単一サーバ(Single Server)とHyperscale(Citus)が存在 ※本項では単一を中心に説明
- Single Serverデプロイオプションにて次の事を実現可能
- SLA 99.99%の高可用性
- 数秒以内の必要に応じたスケールアップ
- デフォルトで監視およびアラートを実現
- 保存中、転送中のデータの暗号化
- 自動バックアップとポイントインタイムリカバリ(最大35日)
- 単一サーバでは3つの価格レベルが提供されている
- Basic・・・・・・ 開発環境やお試し環境、小規模なアプリケーション目的の価格レベル。
- 汎用・・・・・・・大部分のワークロード選択すべき価格レベル。
- メモリ最適化・・・高速トランザクション処理が必要な場合に選択すべく価格レベル。
#PaaSの利用によりユーザの運用コストは下がる
次にPaaSサービスがユーザにとって何がうれしいのかについて考えます。
PaaSサービスがユーザにとってメリットを与えてくれることは何か、それはずばり運用コストの削減が可能であるという事です。クラウド上でDatabaseを導入、管理、運用する場合、「仮想マシンなどのIaaS上にDatabaseを導入して利用する」パターンと、「Azure Database for PostgreSQLのようなPaaSを利用する」パターンの2種類があります。この2種類を比較すると以下のようなメリット/デメリットが存在します。
この2つのDatabase環境とオンプレミスのDatabase環境との運用コストを以下の表で記します。
薄い青の部分がユーザ自身が管理していかなければならない部分となり、濃い青の部分がクラウドベンダの管理領域となります。クラウド化することによって、多くのタスクにおいてユーザから解放されている事がわかっていただけると思います。さらに、PaaSサービスを利用した場合にはユーザが管理しなければならないのは基本的にアプリケーションのみ、すなわちDBの中に格納されているデータのみとなります。
PaaSサービスを利用すると多くのタスクが削除できることが理解できたかと思います。
#具体的なデータベースの管理タスクの解放例
さらに具体的なデータベースの設計/構築/運用時に実施しなければならないタスクにて、PaaSの利用でどのように変化するのか紹介します。私の経験上、Databaseを導入し管理、運用する際に以下のようなタスクを実施しなければなりません。
データベースの設計/構築/運用での検討事項
- Databaseのインストール
- 耐障害性(冗長構成)を考えたデータベース設計
- バックアップ
- リストア/リカバリ
- バージョンアップとパッチ適用
- Databaseサーバの増強(スケールアップ/スケールアウト)
- 開発環境のデータ作成
- ログメンテナンス
PaaSを利用するとこれらのタスクは以下のように解放されます。
-
Databaseのインストール
Databaseの起動はわずか数クリックで完了する。 -
耐障害性(冗長構成)を考えたデータベース設計
データベースの冗長構成はデフォルトまたは数クリックで実現可能 -
バックアップ
自動でオンラインバックアップの取得がされる -
リストア/リカバリ
バックアップされているデータから数クリックでポイントインタイムリカバリが可能 -
バージョンアップとパッチ適用
パッチの適用の簡単に自動または任意のタイミングで実施可能 -
Databaseサーバの増強(スケールアップ/スケールアウト)
数クリックでマシンのスケールアップやスケールアウトが可能 -
開発環境のデータ作成
バックアップデータを使って別のデータベースとしてコピーを作成し起動することが可能 -
ログメンテナンス
自動でログのメンテナンスを実施
#最後に
データベースは一般的に運用コストの高いミドルウェアです。導入/管理に大きな運用コストがかかりましたが、PaaSの利用によりこれらから解放されて運用コストを下げることが可能になります。(私の仕事なくなってしまわないかしら。。。)
##次回は
Azure Database for PostgreSQLの具体的な機能説明を記載する想定です。