Azure Database for PostgreSQL の Flexible Server とは?
Ignite で、Azure Database for PostgreSQL の新しいデプロイ オプションのプレビューを発表しました: Flexible Server です。Flexible Server は、クラウドで Postgres を利用するユーザーに、再考されたデータベース サービスを提供するための、複数年にわたる Azure のエンジニアリングの試みの結果です。過去数年間、Postgres エンジニアリング チームは、Azure Database for PostgreSQL の Single Server デプロイ オプションに関するお客様の課題と期待について、多くの皆さんから学ぶ機会を得ました。お客様のフィードバックと私たちが学んだことは、Flexible Server の作成に知見を提供しています。
Azure Database for PostgreSQL Flexible Server の技術的な概要と、主な機能について、以下の記事で説明します。
Flexible Server は モダンなアプリケーションの要件を満たすように設計されています
私たちのPostgres の Flexible Server デプロイ オプションは Azure Database for PostgreSQL – Hyperscale (Citus) と同じプラットフォームでホストされ、このオプションは PostgreSQL を水平にスケールアウトするものです(Postgres にCitus オープン ソース拡張を活用しています)。
Flexible Server は、Azure 上のシングルテナント仮想マシン (VM) でホストされ、これはPostgres エンジン アーキテクチャが元々想定している Linux ベースのオペレーティング システムにおかれます。Postgresアプリケーションとクライアントは、Flexible Server に直接接続できるため、ゲートウェイを介したリダイレクトの必要がなくなります。直接接続により、Flexible Server のユーザー名に @servername サフィックスを含める必要もなくなります。さらに、アプリケーションだけでなく、Flexible Server のコンピューティングとストレージも同じ Azure 可用性ゾーンに配置できるようになり、ワークロードを実行するためのレイテンシーが短くなります。ストレージの場合、Postgres のFlexible Server オプションでは、Azure Premium Managed Diskを使用します。今後は、Azure Ultra SSD Managed Disk を使用するオプションを提供します。データベースと WAL アーカイブ (WAL は先行書き込みログの略) はゾーン冗長ストレージに格納されます。
データ/ログバックアップ用のゾーン冗長ストレージと、同じアベイラビリティーゾーン内のクライアント、データベースコンピューティング、ストレージを備えたVMでホストされているPostgreSQLエンジンを示すFlexible Serverアーキテクチャ
マネージド Postgres サービスを使用する利点は数多くあり、多くのユーザーは既に運用上の複雑さを簡素化または排除するために Azure Database for PostgreSQL を使用しています。Flexible Server では、開発者のエクスペリエンスをさらに向上させ、データベースをより詳細に制御するシナリオのオプションを提供しています。
開発者に親和性が高いマネージド Postgres サービス
多くのユーザーにとって、主な焦点はアプリケーション (およびアプリケーションを利用する顧客) です。アプリケーションがデータベース バックエンドを必要とする場合は、データベースをプロビジョニングして接続するエクスペリエンスが直感的でコスト効率の高い状態にする必要があります。Azure Database for PostgreSQL Flexible Server に関する開発者エクスペリエンスは、いくつかのキーとなる方法で簡略化されました。
- 直感的でシンプルなプロビジョニング エクスペリエンス。 Flexible Server をプロビジョニングする際に、一部のフィールドはプロファイルに基づいて自動的に入力されます。たとえば、管理者ユーザー名とパスワードはデフォルトを使用しますが、いつでも上書きできます。
- 簡素化された CLI エクスペリエンス。たとえば、1つのコマンドで仮想ネットワーク内に Flexible Server をプロビジョニングできるようになったので、ローカル コンテキストを使用してコマンドのキータイプを減らすことができます。詳細については、Flexible Server CLI リファレンスを参照してください。
Flexible ServerをプロビジョニングするCLIコマンド
- 接続文字列の要件。ユーザー名にサフィックス @servername を含める要件は無くなりました。これにより、オンプレミスまたは仮想マシン上で実行されている他の PostgreSQL エンジンと同じように、Flexible Server に接続できます。
- 接続管理: Pgbouncer は、PostgreSQL コネクションプールを簡素化するためにネイティブに統合されました。
- バースト可能なコンピューティング: 低コストでバースト可能なコンピューティング SKU を使用してコストを最適化し、必要な場合にのみパフォーマンスに対して支払うことができます。
- 停止/起動: 必要に応じて Flexible Server を停止/起動したり、実行中のサービスを停止したり、停止したサービスを開始したりできるため、コストを削減できます。これは、24時間365日稼働するデータベースが不要な開発またはテスト シナリオに最適です。Flexible Server が停止すると、ストレージの料金を支払うのみですみ、Azure ポータルでクリックするだけで簡単にバックアップを開始できます。
運用が不要な場合に、Azure Database for PostgreSQL Flexible Server でコンピューティングを停止する方法を示す Azure ポータルのスクリーンショット
作業を再開する準備ができたら、Azure Database for PostgreSQL Flexible Server のコンピューティングを開始する方法を示す Azure ポータルのスクリーンショット
データベースの制御を最大化
Flexible Server は、アプリケーションのニーズを満たすのに役立つ主要な機能を備えた、マネージド Postgres データベースに対してより柔軟性と制御性を提供します。
- メンテナンスのスケジュール: エンタープライズ アプリケーションは常に利用可能である必要があり、業務時間のピーク時に中断が発生すると、混乱が発生する可能性があります。同様に、あなたがもし大量のデータロードやインデックス作成/再構築操作など、長いトランザクションを実行しているデータベース管理者であれば、中断によってトランザクションが不完全な状態になります。ビジネス SLA を満たすために Azure のメンテナンス 期間を制御する機能を求める人もいます。Flexible Server は、選択した時点で30日ごとに1つのメンテナンス期間をスケジュールします。多くのお客様にとって、システム管理のスケジュールは問題ありませんが、一部のミッション クリティカルなワークロードでは、制御オプションが役立ちます。
Azure ポータルでの Azure Database for PostgreSQL Flexible Serverのメンテナンス設定のスクリーンショットで、メンテナンス スケジュールの曜日と開始時刻を選択できる場所を示します。
- パラメータの設定: Postgres は、データベース エンジンのパフォーマンスを微調整するための幅広いサーバ パラメータを提供し、マネージド サービスでも同様の制御を望むものもあります。たとえば、オンプレミスまたは VM に含まれる設定に揃える必要がある場合があります。Flexible Server では、Max_Connectionsなどの追加のサーバー パラメータを制御でき、さらに多くのサーバーパラメータを追加します。
- レイテンシーの短縮: アプリケーションに低レイテンシーを提供するために、Azure Database for PostgreSQL と、アプリケーション (同じ可用性ゾーン) を物理的に近い場所に共存させる機能を求めるユーザーもいます。Flexible Server は、クライアント、データベース、およびストレージを併置して、レイテンシーを短縮し、利用時のパフォーマンスを向上させます。社内テストとお客様の声に基づいて、私たちははるかに優れたパフォーマンスを確認しています。
- ネットワークの分離: 外部アクセスから完全にロックダウンするために、独自の VNet またはサブネットでサーバーをプロビジョニングする機能が必要な場合もあります。Flexible Server プライベート エンドポイントを使用すると、データベース ワークロードからパブリック エンドポイントを排除することで、ネットワークを完全に分離できます。パブリック エンドポイントまたはプライベート エンドポイント上のサーバーへの接続はすべて、SSL/TLS v1.2 でデフォルトでセキュリティ保護され、暗号化されます。
ゾーン冗長の高可用性
Azure Database for PostgreSQL の新しい Flexible Server オプションを使用すると、ゾーン冗長高可用性 (HA) を有効にすることができます。その場合、マネージド Postgres サービスは、コンピューティングとストレージの両方について、まったく同じ構成のホット スタンバイを別のアベイラビリティーゾーンでスピンアップします。これにより、プライマリ サーバーの可用性ゾーンが使用できなくなった場合に、高速フェールオーバーとアプリケーションの可用性を実現できます。
プライマリ サーバー上の障害は自動的に検出され、新しくプライマリになるスタンバイにフェールオーバーします。アプリケーションは、接続文字列を変更せずにこの新しいプライマリに接続できます。
ゾーンの冗長性は、計画的または予期しないダウンタイムイベント中のビジネス継続性を支援し、ミッションクリティカルなデータベースを保護します。ゾーン冗長構成では、フル スタンバイ レプリカ サーバーが提供されるため、コストに影響があり、ゾーンの冗長性をいつでも有効または無効にすることができます。
可用性ゾーン1にあるプライマリ サーバーと可用性ゾーン2にあるスタンバイ サーバーによる、ゾーン冗長 HA 構成の Azure Database for PostgreSQL Flexible Server を示すAzure ポータルのスクリーンショット。
今日からFlexible Serverを始めましょう!
Azure Database for PostgreSQLで現在プレビューになっている、新しい Flexible Server のデプロイ オプションを使用する方法を確認する必要があります。試してみる準備ができたら、最初のクイックスタートをいくつか紹介します:
- Create an Azure Database for PostgreSQL Flexible Server using Azure portal
- Create an Azure Database for PostgreSQL Flexible Server using Azure CLI
- Create an Azure Database for PostgreSQL Flexible Server using ARM template
Azure Database for PostgreSQL Single Serverは、Flexible Server が GA になるまで、ミッション クリティカルなワークロードに適したエンタープライズ対応データベース プラットフォームのままです。また、Flexible Server に移行する場合、Single Server から Flexible Server への移行を最小限のダウンタイムで実現するためにも、作業を進めています。
さらに詳しく知りたい場合は、新しいFlexible Serverのドキュメントを利用して作業に取りかかり、Web サイトにアクセスして マネージド サービスであるAzure Database for PostgreSQLの詳細を確認してください。私たちは常にあなたのフィードバックを熱望していますので、Ask Azure DB for PostgreSQLを使用して電子メールで連絡してください。
Sunil Agarwal
Twitter: https://twitter.com/s_u_n_e_e_l