2020年度WG3活動成果報告
クラウド検証編
Azure PostgreSQL PaaS検証～FlexibleServer 机上調査～
PostgreSQL エンタープライズコンソーシアム
WG3 パブリッククラウド検証チーム
日鉄ソリューションズ株式会社 永井 光

責任範囲


本資料は、PGEConsが独自に検証した結果であり、結果はPGEConsの責任の元、公開しています。

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

2

机上調査結果(アーキテクチャ紹介)
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

3

AzureにおけるPostgreSQL PaaS
 Azure Database for PostgreSQLでは、従来の2つのデプロイオプションに加え新オプションが追加されたため、機能調査を実施
 SingleServer Hyperscale(Citus)
 FlexibleServer SingleServerの強化版

アーキテクチャから変更が入り、機能面が向上

 2021/3時点でFlexibleServerはパブリックプレビュー(東日本リージョンで試用可)
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

4

FlexibleServer

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

5

注意事項
 FlexibleServerは2021/3現在パブリックプレビュー中のため、機能の更新が入る可能性大 変更見込については判明している範囲で本資料には記載

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

6

サービス・アーキテクチャ概要(FlexibleServer)
 Linux上のDockerコンテナ上で動く、PostgreSQLのマネージドサービス
 SingleServerはService Fabric上のWindowsコンテナ

 PostgreSQLは、公開されているものをカスタマイズ無しでそのまま利用している
 2021年3月現在で、12.4,11.9が利用可能
 マイナーバージョンは指定不可能Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

7

FlexibleServerの特徴①
 DBアクセスの際、エンドポイントからの接続が不要となり、PostgreSQLサーバへの直接接続が可能に SingleServerはエンドポイント(GW)経由の接続が必須

SingleServerと比べるとGatewayへの接続がなくなり、latencyの向上が期待される

出典：https://docs.microsoft.com/ja-jp/azure/postgresql/flexible-server/overview
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

8

FlexibleServerの特徴②
 ゾーン冗長構成が使用可能
 SingleServerは不可であり、リストアなどの復元が必要

 ただし、リードレプリカ作成、およびDR対策としてのGEO冗長バックアップは現状不可 SingleServerはどちらも可能

ゾーン間のデータ同期はPostgreSQLのストリーミングレプリケーション機能を使用。

出典：https://docs.microsoft.com/ja-jp/azure/postgresql/flexible-server/overview
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

9FlexibleServerの特徴③
 インスタンスモデルに”バースト可能”が登場

安価かつ突発的なアクセスに対応可能
 バースト可能 : SingleServerのBasicの代替

1-2vCPU 汎用 : 一般的なワークロード用

2-64vCPU
 メモリ最適化 : “汎用”のメモリサイズを増加 2-64vCPU
 ストレージも512GB以下を選択した場合、IOPS上限がバースト可能 例: 256GBのストレージ 通常時 : 1100IOPS→ 3500IOPSまでバースト可能

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

10FlexibleServerの特徴④ インスタンスの一時停止が利用し、コスト削減が可能
 SingleServerは停止不可であり、削除のみ可能

 ただし、2021/3月時点では7日後に自動的に再開 PostgreSQLパラメータ設定
 SingleServer同様、AzurePortal/AzureCLIからの変更が必要(ALTER SYSTEM不可)だが、変更可能パラメータが増加
 性能管理 SingleServerで利用可能なQuery Performance Insightは現状利用不可。DB側で直接確認する必要有
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

11非機能要求の達成度(FlexibleServerとSingleServerの比較)
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

12可用性項目

比較の観点

継続性

復元可能な直近の時間は 障害発生の5分前まで復元出来ることを保証
何分前か
HA構成における切り替え
時間の目安

FlexibleServerSingleServer

ゾーン冗長で構成され、障害時は別ゾーンのレプリカが ダウンタイムの目安(数値)について公開されている情昇格する
報は無いが、対象インスタンスが稼働するコンテナを別フェイルオーバーの時間は60-120秒程度の予測のホストで起動し直し、GWのルーティングを変更する形での切替となるため、短時間での切替は可能とのこと

99.99% (SLAとして公表)
SLAとして年間何%の稼働 パブリックプレビュー時点では、SLAは無し※GA後においても、SingleServerの99.99%よりは下が率を規定しているからない見込み

耐障害性

災害対策

HAとしてサーバを多重化する仕組みは何があるか

ゾーン冗長構成をONにすると、自動的に別の可用性ゾーンにスタンバイレプリカが構成される
データはPostgreSQLのストリーミングレプリケーション機
能によって同期データの多重化の仕組み
として何があるか

実データが格納されるストレージ層は、データ同期方式で三重化されている

広域圏災害における、DRの方式は何が用意されているか・ゾーン冗長による別ゾーンへの自動フェイルオーバが可能
・GEO冗長バックアップは現状未サポートなため、別リージョンへのリストアはpg_dumpを使用するなど、利用者側で仕組みを検討する必要ありコンテナ層は多重化されておらず、設定変更等で多重化させることも出来ない。そのため、障害時には別ノードでの再起動となる(再起動は自動で実行される)・リードレプリカを別リージョンに作成しておき、有事の際には手動で切り替える(自動切替機能は未実装)
・GEO冗長バックアップをONにし、有事には別リージョンでインスタンスを手動リストアする

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

13

拡張性①
項目

比較の観点

CPUの特性と拡張性
リソースの特性と拡張性

メモリの特性と拡張性

ストレージの特性と拡張性(データベース ファイル、一時ファイル、トランザクション ログ、およびPostgreSQL サーバー ログに使用される領域)

FlexibleServerSingleServerSingleServerのBasicモデルの代わりに、バースト可能 Azureの仮想マシンサービスでは、ハイパースレッドはモデルが存在。他モデルについても選択可能なコア適用せず、物理コアを1vCPUとして割り当てられる。
数が増加
DBインスタンスのモデルが3種類用意されており、モデルによって選択可能コア数が変化
バースト可能：1 or 2コア
Basic:1 or 2コア
汎用:2,4,8,16,32,48,64 コアから選択

汎用:2,4,8,16,32,64 コアの中から選択

メモリ最適化:2,4,8,16,32,48,64コアから選択

メモリ最適化:2,4,8,16,32 コアの中から選択

コア数に応じてメモリは決定
バースト可能:2GB～4GB(仮想コアあたり2GB)

CPUコア数によってメモリは決定(選択不可)
Basic:2GB～4GB(仮想コアあたり2GB)

汎用:8GB～256GB(仮想コアあたり4GB)

汎用:10GB～320GB(仮想コアあたり5GB)

メモリ最適化:13.5GB～512GB(仮想コアあたり6.75-8GB)

メモリ最適化:20GB～320GB(仮想コアあたり10GB)

固定サイズからの選択

Basic:5GB～1TB

選択できるサイズは以下
汎用:5GB～16TB
32GiB,64GiB,128GiB,256GiB,512GiB,1TiB,2TiB,4TiB,8TiB,16TiB
メモリ最適化:5GB～16TB※スケールダウン、自動拡張は不可※１GB単位で増分指定が可能※スケールダウンは不可※自動拡張も可能

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

14拡張性②項目

比較の観点

ディスクI/O
リソースの特性と拡張性

読み取り専用インスタンスの利用可否FlexibleServerSingleServer

インスタンスタイプとストレージサイズの組み合わせで プロビジョニングするストレージの合計容量によって、最大IOPSが決まる
I/O性能値が決まる
また、512GB以下のストレージにおいては、3500IOPSまでバーストすることが可能
Basic:変数(最小 120 IOPS 最大 18,000 IOPS)
汎用: 3 IOPS/GB(最小 100 IOPS 最大 20,000 IOPS)

リードレプリカは作成不可だが、GA後対応予定

メモリ最適化: 3 IOPS/GB(最小 100 IOP 最大 20,000 IOPS)
最大5つまでリードレプリカを作成可能
マスタと別リージョンに作成することも可能

拡張方法

・スケールアップ・ダウン方式に対応
・スケールアップダウン時にサービス停止が発生する

自動フェイルオーバは出来ないが、手動フェイルオーバは可能。
・スケールアップ・ダウン方式に対応
・スケールアップダウン時にサービス停止が発生する

最大同時接続数

最大同時接続数の制限は存在するが、pg_bouncerを使用することで変更可能(上限は5000まで)

インスタンスのサイズに応じて、最大同時接続数が決められているため、注意が必要(MS社サイトで公開されている)

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

15

運用・保守性①
項目

比較の観点

FlexibleServerSingleServer

バックアップ

実行可能なバックアップ方式についてAzureサービス側での自動バックアップサービスあり
・対象はデータファイルとトランザクションログ
・頻度は、フルバックアップは週1回、スナップショットバックアップは1日1回～2回となる(サイズにより変わる)・バックアップデータの冗長化サービスあり。(ローカル/GEO) GEOを選択すると、別リージョンにバックアップデータが保存される・バックアップの保存期間は7～35日

リストア

実行可能なリストア方式についてポイントインタイムリカバリは可能
別リージョンへのリストアは不可だが、対応予定

上記バックアップを用いて、バックアップのリテンション期間内の任意の時点へ、ポイントインタイムリカバリが可能
別リージョンにリストアするためには、バックアップデータの冗長化でGEOを選択する必要有

障害監視

サーバダウン等の障害を検知～通報してくれるサービス
障害監視の実現方式につ Azureモニタは利用可能
各メトリクスのAzureモニタへの反映ラグはSingleServer は無いが、Azureモニタの閾値監視を利用すれば、インいてより改善
スタンスの死活監視は可能(SingleServerは約1分、FlexibleServerは数秒レベル)

性能管理

性能管理の実現方式につ リソース監視はSingleServerと同等
いて(反映ラグは改善)
Query Performance Insightは利用不可

計画停止

CPU,メモリ,IO といったリソース監視は、Azureモニタで監視可能
クエリ ランタイム統計や待機イベントといったDB層の性能監視は、Query Performane Insightで監視可能。ただしクエリストア機能を事前にONにしておく必要がある
ため注意が必要

計画停止の有無・タイミン 計画停止は無し。動作するVMのセキュリティパッチ適用 月一回程度、計画停止によるコンテナのマイグレーショ
グなどについてなど、緊急性の高いメンテナンスが必要になった場合は ンが発生。事前に通知は来るが、停止タイミングの調整事前に通知が来る。停止タイミングの調整も可能は不可能。ダウンタイムは1分程度
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

16

運用・保守性②
項目

比較の観点

FlexibleServerSingleServer

バージョン管理バージョンアップの方式

自動バージョンアップ機能は無し。新バージョンの別インスタンスを起動し、Database Migration Serviceやpg_dump等のサービス・ツールを利用し、利用者側でデータを移行する形を採用する必要有

ライフサイクル管理とEOS

2021/3時点で未定義バージョンの追随

リリースタイミング次第だが、内部でのテストが完了し次第、可能な限り速やかに新バージョンが提供されるサポート体制

サポート契約の種類と内容 MicrosoftAzureのサポート仕様に従う。
PostgreSQLのバグ調査も、MS社部隊で対応可能
ただし、修正パッチ等のリリースは開発コミュニティを経由して行われる(Azure環境にだけ適用することはしない)

データロード

データロードの方式

COPYコマンドはクライアントサイドにデータを用意するパターンで実行可能

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

17セキュリティ
項目

比較の観点

FlexibleServerSingleServer

DB接続制御From/To でIP指定可
能？
ポート指定可能？
SSL接続の強制が可能？
パブリック/プライベートの選択が可能？

・セキュリティ機能で、接続元IPアドレスを制御することが可能
・SSL接続強制は必須
・プライベートIPアドレスの付与が可能(VNet統合)
但し、利用するVNet内のsubnetに委任設定が必要
で、subnetにはFlexibleServer以外のサービスが利用不可

・セキュリティ機能で、接続元IPアドレスを制御することが可能
・SSL接続強制は可能
・プライベートIPアドレスを付与することは不可能。その場合、サービスエンドポイント機能を併用する必要有

データの秘匿pgcrypto関数の利用可否 ・pgcrypto関数はどちらも利用可能
やその他の暗号化につい ・透過的暗号化(TDE)はどちらも不可・どちらもストレージレベルの暗号化は可能て権限管理

権限ロール管理が出来る どちらもalter role で制御は可能だが、スーパーユーザ権限は設定不可能か？
新しくロールを追加できるか？
スーパーユーザが利用できるか？

不正追跡・監視セキュリティログの取得やロ どちらもlog_connections,log_statement等のパラメータを変更し、PostgreSQLログに情報出力は可能
グ監視
pgauditの利用も可能

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

18

コミュニティ版PostgreSQLとの違い/制約事項①
項目

比較の観点

FlexibleServer

VACUUM/ANALY VACUUM/ANALYZEの実 すべてコミュニティ版PostgreSQLと同様でZE
行方法、実行タイミングな autovacuumも可能(autovacuumのOFFは設定可能)
どSingleServer
実行方法や実行周期・起動トリガなど、すべてコミュニティ版Postgresと同様。autovacuumも実行可能だが、逆にautovacuumをOFFにすること不可(パラメータ変更不可)

インデックスリビ
ルド

REINDEXやpg_repackの利用可否など

reindexコマンドは実行可能
pg_repackは未サポート

psql

psqlによる接続の可否、利用制約、注意事項など

SingleServerと異なり共通のGW経由の接続ではなくなったため、”@”を使った明示的なホスト名、DB名の指定は不要となった

アプリケーション
接続
パラメータ設定

アプリケーションからの接 コミュニティ版PostgreSQLとの違いは特にない
続方法、接続用ドライバ等
設定方法
変更可能なパラメータは「サーバーパラメータ」として用意されており、AzurePortalからはもちろん、AzureCLIからも変更可能。ただしALTER SYTEMコマンドは実行不可能
コミュニティ版との違い/制約事項
SingleServerより設定変更可能なパラメータは増加

EXTENSION

EXTENTIONの対応状況

適用可能なExtensionはSingleServerとは異なる
Extensionの比較は別紙に記載
SingleServer同様、
pg_hint,pg_dbms_statsに対応していないことに注意(pg_available_extensionsを用いた確認方法や、create extensionを用いた適用方法は同様。)

コミュニティ版Postgres同様、利用可能だが、接続先ホスト名・DB名・ユーザ名は接続時に明示的に指定する必要がある。(対話式が未対応)→ 全利用者で共通のGWを経由して振り分けられるためエンドポイントURLを指定する以外、コミュニティ版
PostgreSQLとの違いは特にない

WALアーカイブをOFFに出来ないなど、バックアップ運用を決定するようなパラメータは軒並み変更不可。また
autovacuumもOFFに出来ない、shared_bufferが変更出来ないなど、全体的にAWSのPaaSと比較すると変更可
能なパラメータはやや少ない(104個のみ)適用可能なextension、およびそのバージョンは、MS社
サイトに公開されている情報、もしくはpg_available_extensionsビューを参照すれば確認可能
pg_hint,pg_dbms_statsに対応していないことに注意
適用にはcreate extensionを用いる

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

19

コミュニティ版PostgreSQLとの違い/制約事項②
項目

比較の観点

FlexibleServerSingleServer

ファイル構成の変更

PGDATAとWAL保存領域の分離

分離不可能

PostgreSQLの実行バイナリ

コミュニティ版PostgreSQLとバイナリの違いはあるか

コミュニティ版ソースコードをビルドし、そのままデプロイされている(ただしビルド環境が同一ではないため、バイナリ互換とまではいかない)

エクスポートpostgresql.confやlogなど、 PostgreSQLパラメータはAzureCLIでエクスポート/インポート可能
どこまでエクスポートが可 PostgreSQLログはエクスポート可能
能か

休眠可否

利用しないタイミングで停止し、費用を抑えることは可能か。

インスタンスの停止が7日以内なら可能
インスタンスの停止は不可※パッチ適用や継続利用の確認のために7日後に自 休眠させるにはインスタンスの削除が必要
動的に再開される

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

20

ライセンス
本作品はCC-BYライセンスによって許諾されています。 ライセンスの内容を知りたい方はこちらでご確認ください。 文書の内容、表記に関する誤り、ご要望、感想等につきましては、PGEConsのサイトを通じてお寄せいただきますようお願いいたします。


Amazon Web Services、"Powered by Amazon Web Services"ロゴ、Amazon EC2、Amazon S3、Amazon
Relational Database Service (Amazon RDS)およびAmazon Auroraは、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
IBMおよびDb2は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
Linux は、Linus Torvalds 氏の日本およびその他の国における登録商標または商標です。
Red HatおよびShadowman logoは、米国およびその他の国におけるRed Hat,Inc.の商標または登録商標です。
Microsoft、Microsoft Azure、Windows Server、SQL Server、米国 Microsoft Corporationの米国及びその他の国における登録商標または商標です。
MySQLは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
Oracleは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
PostgreSQLは、PostgreSQL Community Association of Canadaのカナダにおける登録商標およびその他の国における商標です。
TPC, TPC Benchmark, TPC-B, TPC-C, TPC-E, tpmC, TPC-H, TPC-DS, QphHは米国Transaction
Processing Performance Councilの商標です。
その他、本資料に記載されている社名及び商品名はそれぞれ各社が 商標または登録商標として使用している場合があります 。
Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

21著者（企業・団体名順）
版

所属企業・団体名

部署名

氏名

第1.0版
（2021年度
WG3）

日鉄ソリューションズ株式会社

流通・サービスソリューション事業本部
アドバンストテクノロジー部

伊藤 春
永井 光
小野 晋也

Copyright © PostgreSQL Enterprise Consortium, All Rights Reserved.

22