Azure Database for PostgreSQLを解説 【シリーズ Azureサービスいちから紹介】

このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の10日目です。

ナレッジコミュニケーションの大柳です(@oyngtmhr)

10日目はAzure Database for PostgreSQLです。昨日紹介したAzure Database for MySQLとほぼ同じ基盤を使っています。

概要

Azure Database for PostgreSQLは、クラウドで提供されるマネージド型のPostgreSQLデータベースです。
データベースへのパッチ適用、バックアップ、監視、セキュリティ、フェールオーバー等のもろもろをAzureがよしなにやってくれます。既存のオンプレをクラウドのマネージドサービスにに移行することで、管理の手間を減らすことができます。
2017年12月7日時点では、パブリックプレビューのステータスです。

・データベース

PostgreSQL 9.6.2とPostgreSQL 9.5.7が利用可能です。
PostgreSQL拡張機能が主要なものはサポートされていますが、ユーザが独自で作成することはできません。
サポートされる拡張機能の一覧は以下にあります。

https://docs.microsoft.com/ja-jp/azure/postgresql/concepts-extensions

・リソース・性能

価格レベルと呼ばれる3つのレベルがあり、さらに各価格レベルの中で、コンピューティングユニットと呼ばれる処理性能を選択できます。

価格レベルは、Basic、Standard、そしてPremiumの3つのレベルがありますが、プレビューではPremiumは2017年12月8日時点では利用できません。

Basic:IOPS保証なしの小規模なワークロード向けです。開発環境や小規模なアプリケーションやWebサイトに向いています。
Standard:高スループットのIOPSが保証されます。中規模以上のWebアプリケーションや分析アプリケーションに向いています。
Premium:大量のトランザクションと低レイテンシが必要なワークロードに最適です。同時実行ユーザーが多く、低レスポンスが要求される、いわゆるミッション・クリティカルなアプリケーションに向いています。プレビュー段階では利用できません。


https://docs.microsoft.com/ja-jp/azure/postgresql/concepts-service-tiers から引用

コンピューティングユニットは、CPU処理性能の測定値で、CPUとメモリリソースの組み合わせです。
100個のコンピューティングユニットが1つのコアに相当します。またメモリ量はコンピューティングユニット数に比例して増えます。
同じコンピューティングユニット数でも、Basicに比べてStandardは2倍のメモリが提供されます。メモリに余裕があるため、クエリを高速に、多数の同時実行数で処理することができます。

・高可用性

ハードウェア障害などでデータベースノードに障害が発生した場合には、Azure内部でフェールオーバーされます。切り替えに伴い、数十秒データベースが中断しますが、ユーザのアプリケーション側での接続先の切り替え等は必要はありません。

・バックアップ

自動バックアップが5分おきに取得されます。バックアップの保持期限はBasicが7日、Standardが35日です。バックアップを使って新しいサーバを作ることで、過去のある時点のデータベース状態に復元することができます。

・セキュリティ

SQL Databaseと同じように許可IPのホワイトリストをAzure Portalから、「サーバー ファイアウォールの設定」から定義できます。

その他

・Standard同士など、同じ価格レベル内でのコンピューティングユニット数の変更は可能(数十秒程度の処理中断あり)。BasicからStandardのように異なる価格レベルへの変更はできない。

・サーバーログは、Azure PortalとAzure CLI、Azure REST APIを使用して、一覧表示およびダウンロードできます。ログの保存期間は既定値は3日間、最大7日間に設定できます。ログのローテーションは、1時間ごとか100MBごとのどちらか早い方のタイミングで行われます。

・マイナーバージョンアップは自動管理される。パブリック プレビュー段階では、メジャー バージョンのアップグレードはサポートされない。PostgreSQL 9.5 から PostgreSQL 9.6へのアップグレードはできない。

・プレビューでは、既存のサーバー上のストレージサイズの変更はできない。サーバー作成時にストレージ容量を選択する。

料金

・現在はプレビュー料金となっているため、今後価格が変更される可能性があります。

・Basicはコンピューティングユニット50と100が選べます。ストレージは50GBを標準で含み、以降はGB単位で課金されます。

・Standardはコンピューティングユニット100/200/400/800が選べます。ストレージは125GBを標準で含み、以降はGB単位で課金されます。ストレージが増えるとGBごとにIOPSも3ずつ増えていきます。

・Premiumは未公開。

まとめ

仮想マシンはAzure Database for MySQLと同じものを使っているようで、価格レベルやコンピューティングユニット数の組み合わせは同じです。プレビュー版ということもあり、SQL Databaseと比べると不足している機能もありますが、今後の機能追加と早い時期に正式サービスとなることを期待したいと思います。

この記事を書いた人

azure-recipe-user