このエントリは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と比べると不足している機能もありますが、今後の機能追加と早い時期に正式サービスとなることを期待したいと思います。