Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
著者: Dylan

Azure Database for PostgreSQLにおける高可用性(HA)とは

Azure Database for PostgreSQLの高可用性(HA)とは、システム障害やサービス停止が発生した際、最小限の停止時間でデータベースサービスを稼働させ続ける機能を指します。事業継続、データ保護、SLA順守を実現する上で企業にとって極めて重要な機能です。

複雑なクラスタツールや手動でのフェイルオーバー設定を要する従来のPostgreSQL環境とは異なり、Azureは完全マネージド型のHAソリューションを提供します。システムが異常を検知すると自動的にフェイルオーバーが実行され、サービスエンドポイントは変更されないため、アプリケーション側で追加設定なしに再接続可能です。

アーキテクチャ概要

プライマリサーバーとスタンバイレプリカを併せてデプロイする仕組みです。Azureが2台のサーバーの正常性を常時監視し、障害発生時にフェイルオーバーを起動します。

  • プライマリサーバー:クライアントからの全読み書き処理を処理します。
  • スタンバイレプリカ同期レプリケーションにより常時同期されたデータコピーを保持します。プライマリ側でコミットされたすべてのトランザクションは即時スタンバイに複製され、データ損失ゼロ(RPO=0)を保証します。
  • Azure正常性監視機能:両サーバーの稼働状況を常時確認し障害を検知、DNSレコードを自動更新します。障害後、手動設定なしでアプリケーションが新しいプライマリサーバーに接続できるようにします。

デプロイモデル:ゾーン冗長HAとゾーン内HA

Azure Database for PostgreSQLには2種類の高可用性デプロイモデルが用意されており、耐障害性、レイテンシ、コストの要件に応じて選択します。

ゾーン冗長型高可用性

ゾーン冗長構成の仕組み

  • 同一リージョン内の別々の可用性ゾーンにプライマリサーバーとスタンバイサーバーをデプロイ
  • 各ゾーンは独立した電源、ネットワーク、インフラを保有

メリット

  • 可用性ゾーン全体の障害からシステムを保護可能
  • ミッションクリティカルな業務に対する高い耐障害性
  • 最大約99.99%の強固な稼働時間SLAを保証

考慮事項

  • ゾーン間のネットワークレイテンシがわずかに上昇
  • ゾーンをまたいだデプロイのためコストが高くなる

本モデルは稼働時間が最重要で停止を許容できないアプリケーションに最適です。

ゾーン内高可用性

ゾーン内構成の仕組み

  • プライマリサーバーとスタンバイサーバーを同一可用性ゾーン内に配置

メリット

  • プライマリとスタンバイ間のレイテンシが低い
  • ゾーン冗長HAと比較してコスト効率に優れる
  • パフォーマンス重視の業務に適している

考慮事項

  • ゾーン単位の大規模障害に対する保護機能なし
  • ゾーン冗長構成と比べ可用性が若干低下

コストや低レイテンシを最大限優先したい場合に多用されるモデルです。

下記の表はAzure Database for PostgreSQLの2種類のHAの主要な違いをまとめたものです。

項目

ゾーン冗長HA

ゾーン内HA

デプロイ先

複数の可用性ゾーンに跨る

単一の可用性ゾーン内

耐障害性

高い(ゾーン単位障害に対応)

中程度

レイテンシ

若干高い

低い

SLA

最大約99.99%

相対的に低い

コスト

高い

安価

実運用では、本番環境やミッションクリティカルシステムにはゾーン冗長HAを推奨し、重要度の低い業務やコスト最適化を優先する環境にはゾーン内HAを採用します。

Azure Database for PostgreSQLの高可用性を有効にする方法

業務要件に応じて、サーバー新規作成時にHAを設定する、または既存サーバーに後からHAを有効化する2通りの手段があります。

前提条件:✎…
同期ストリーミングレプリケーションを支える十分なパフォーマンス、スケーラビリティ、リソース安定性を備える汎用プランまたはメモリ最適化プランを選択する必要があります。
ゾーン冗長HAを利用する場合は、対象リージョンが当機能に対応しているか確認してください。PostgreSQLフレキシブルサーバーのインスタンス→設定→高可用性の順に確認し、項目がグレーアウトしている場合は非対応です。
アプリケーション側に接続リトライロジックを実装する必要があります。
フェイルオーバー後にDNSレコードがスタンバイサーバーを指すよう更新されるため、アプリケーションでプライマリサーバーのIPアドレスをキャッシュしないようにしてください。

方法1:サーバー作成時にHAを有効化

手順1. Azureポータル(portal.azure.com)にアクセスし、Azureアカウントでサインインします。

手順2. 「Azure Database for PostgreSQL フレキシブルサーバー」を検索し、検索結果からサービスを選択します。

手順3. 「作成」をクリックして新規サーバーのプロビジョニングを開始し、必要な基本情報(サブスクリプション、リソースグループ、サーバー名、リージョン、PostgreSQLバージョン、管理者認証情報)を入力します。

手順4. 「コンピューティングとストレージ」タブで汎用プランまたはメモリ最適化プランを選択し、SKU規模、ストレージ容量、バックアップ保持期間を設定します。

手順5. 「高可用性」タブへ移動(HA有効化の重要な手順)。ここでゾーン耐障害性を設定し、サーバーを複数可用性ゾーンで保護するかどうかを指定します。

手順6. HAで使用するゾーンを選び、「有効」を選択します。

手順7. 「同一ゾーンへのフォールバックを許可」オプションを有効にします。選択したゾーン構成のリソースが不足した場合、Azureが両サーバーを同一ゾーンにデプロイしてデプロイ失敗を回避するための設定です。

手順8. 全設定を確認後、「作成」をクリックしてHA機能付きサーバーをプロビジョニングします。

Azureがプライマリとスタンバイの2台を同時にデプロイするため、デプロイ処理には通常5~10分を要します。

Azure CLIコマンドを使用する場合

サーバー作成時にゾーン冗長HA、同一ゾーンHAを構成するCLIスクリプト例を下記に記載します。

►ゾーン冗長HAのCLIスクリプト例

# ゾーン冗長高可用性を持つPostgreSQLフレキシブルサーバーを作成
az postgres flexible-server create \
--resource-group myResourceGroup \  # 自身のリソースグループ名に置き換え
--name my-pg-ha-server \            # 一意のサーバー名に置き換え
--location eastus \                 # 使用するAzureリージョンを指定(複数ゾーン対応推奨)
--admin-user pgadmin \              # 管理者ユーザー名に置き換え
--admin-password 'StrongPassword123!'  # 安全なパスワードに置き換え
--sku-name Standard_D4ds_v4 \       # 汎用プランSKU(業務に合わせ調整)
--tier GeneralPurpose \             # 汎用またはメモリ最適化プラン必須
--version 16 \                      # PostgreSQLバージョン(HA利用時は14以上推奨)
--storage-size 128 \                # ストレージ容量GB(最小32GB)
--zonal-resiliency Enabled \        # HAを有効(廃止された--high-availabilityの代替パラメータ)
--zone 1 \                          # プライマリ可用性ゾーン
--standby-zone 3 \                  # スタンバイ可用性ゾーン(ゾーン冗長の場合はプライマリと別)
--allow-same-zone true              # ゾーン間リソース不足時に同一ゾーンへフォールバック

►同一ゾーンHAのCLIスクリプト例

# 同一ゾーン高可用性を持つPostgreSQLフレキシブルサーバーを作成
az postgres flexible-server create \
--resource-group myResourceGroup \
--name my-pg-samezone-ha-server \
--location eastus \
--admin-user pgadmin \
--admin-password 'StrongPassword123!' \
--sku-name Standard_D2ds_v4 \
--tier GeneralPurpose \
--version 16 \
--storage-size 64 \
--zonal-resiliency Enabled \
--zone 2 \                          # プライマリとスタンバイが同一ゾーン
--standby-zone 2 \

方法2:既存のAzure PostgreSQLサーバーにHAを追加

HAが無効なPostgreSQLフレキシブルサーバーを既に保有している場合、AzureポータルまたはCLIから簡単にAzure Database for PostgreSQLのHA機能を追加できます。

本操作ではAzureがスタンバイサーバーをプロビジョニングし同期レプリケーションを設定するため、一時的に(通常30~60秒)接続が遮断されます。業務影響を抑えるためメンテナンス時間帯に実施してください。

Azureポータル操作手順

手順1. Azureポータルにて、既存のPostgreSQLフレキシブルサーバーインスタンスを開きます。

手順2. 左側メニューの「設定」配下から「高可用性」を選択します。

手順3. ゾーン耐障害性の項目で「有効」を選択しHAを起動。ゾーン冗長型または同一ゾーン型のHAモード設定項目が表示されます。

Azure Database for PostgreSQL ゾーン耐障害性有効化画面

  • ゾーン冗長HAの場合:プライマリとスタンバイにそれぞれ異なる可用性ゾーンを選択。リージョンが複数ゾーンに対応していない場合は本項目がグレーアウトし、自動的に同一ゾーンHAとなります。
  • 同一ゾーンHAの場合:プライマリとスタンバイの可用性ゾーンを同一に設定、またはAzureに自動割り当てさせます。

手順4. リソース不足時のフォールバック用に「同一ゾーンを許可」にチェックを入れます。一時的にゾーン間リソースが不足してもHAを有効化できるようにする設定です。

手順5. 「保存」をクリックし設定を適用します。スタンバイサーバーが作成されコストが増加する旨のダイアログが表示されるため、「高可用性を有効にする」をクリックして処理を続行します。

Azureポータルの通知からデプロイ進捗を監視可能です。処理には5~10分かかり、HA有効化完了時に通知が届きます。

既存サーバーにHAを有効化するAzure CLIコマンド

az postgres flexible-server updateコマンドに–zonal-resiliency Enabledパラメータを付与することで、既存サーバーにAzure Database for PostgreSQLのHA機能を追加できます。2種類のHAモードのコマンド例を下記に記載します。

# 既存サーバーにゾーン冗長HAを有効化

az postgres flexible-server update \
--resource-group myResourceGroup \
--name my-existing-pg-server \
--zonal-resiliency Enabled \
--zone 1 \
--standby-zone 2 \
--allow-same-zone true

 

# 既存サーバーに同一ゾーンHAを有効化

az postgres flexible-server update \
--resource-group myResourceGroup \
--name my-existing-pg-server \
--zonal-resiliency Enabled \
--zone 3 \
--standby-zone 3 \
--allow-same-zone true

補足事項

  1. 既存サーバーへのHA有効化処理時間はサーバー規模やリージョンにより5~10分程度です。
  2. スタンバイサーバーの作成とレプリケーション設定時に30~60秒程度の接続断が発生します。業務負荷の低いメンテナンス時間帯に実施し影響を最小限に抑えてください。
  3. 選択したゾーン構成のリージョン内リソースが不足した場合、「同一ゾーンを許可」のフォールバックにより両サーバーが同一ゾーンに配置されます。後日ゾーン間リソースが確保できたタイミングで通知が届き、ゾーン冗長HAへ切り替え可能です。

Azure Database for PostgreSQLのHA正常性監視方法

高可用性が正常に稼働しているか確認するため、サーバーのHAステータスを定期的に検証する必要があります。

ステータス確認にはAzureポータルとAzure CLIの2種類の手段が利用可能です。

Azureポータル

PostgreSQLフレキシブルサーバー画面を開く→「概要」タブの右サイドバーにある「高可用性」ステータスカードを確認します。このカードには下記情報が表示されます。

  • 現在のHAモード(ゾーン冗長または同一ゾーン)
  • プライマリサーバーの配置ゾーンと状態(実行中/正常)
  • スタンバイサーバーの配置ゾーンと状態(実行中/正常/同期中)
  • レプリケーション状態(同期完了/未同期):データ損失ゼロの状態か確認する重要な指標

Azure CLIコマンド

下記コマンドを実行すると、レプリケーション正常性やゾーン情報を含む詳細なHAステータス情報を取得できます。

# CLIからAzure PostgreSQLのHAステータスを確認
az postgres flexible-server show \
--resource-group myResourceGroup \
--name my-pg-ha-server \
--query "{haMode: zonalResiliency, primaryZone: zone, standbyZone: standbyZone, replicationStatus: replicationState}"

実行結果には「haMode”: “Enabled」「replicationStatus”: “Synchronized」といった値やプライマリ・スタンバイのゾーン情報が出力され、プログラム上からHAの正常性を簡易検証できます。

データベースに高可用性を実装するより簡易なソリューション

Azure Database for PostgreSQLのHAは堅牢な機能ですが、リージョンの制約といった制限点が存在します。また完全な災害復旧ソリューションではなく、リージョン全体の障害、データ破損、誤削除、ランサムウェア攻撃への対策には対応していません。

ここで総合的な高可用性ソリューションであるi2Availabilityを紹介します。本ソリューションは本番環境と災害復旧環境間のデータ変更を常時監視・複製します。リアルタイムでファイルシステムの書き込み処理を捕捉し、不要なデータをフィルタリング、重要な変更点を暗号化・圧縮して転送します。

完全な災害復旧環境を構築したい場合、Info2Softは下記製品も提供しています。

  • i2Backup:PostgreSQL、仮想マシン、各種サーバーなど重要システム・データ向けの集中型自動バックアップソリューション
  • i2CDP:継続的データ保護ソリューション。全てのデータ変更を常時捕捉・複製し、任意の過去時点へシステムを復元可能。秒単位のデータ復旧とほぼゼロのデータ損失を実現します。
  • i2Stream:アクティブ・アクティブ型データストリーミングアーキテクチャを提供。複数のシステム(ノード、リージョン、データセンター)が同時に稼働し、リアルタイムでデータを処理・配信します。
60日間無料トライアル
安全なダウンロード

まとめ

本記事ではAzure Database for PostgreSQLの高可用性の設定手順を解説しました。データベース新規作成時と既存環境への後付け設定の2通りの方法を紹介しています。事業継続を担保するHA環境の構築にお役立てください。また、より簡単に堅牢なHAまたは完全な災害復旧ソリューションを導入したい場合はInfo2Softがサポートいたします。

概要は準備中です

関連記事

マルチクラウド災害復旧:計画ガイド【2026年版】
本記事ではマルチクラウド災害復旧、計画の重要な要素、Info2soft i2Availabilityがマルチクラウド環境全体の自動復旧をどのように支援するかについて解説します。
記事を読む
PostgreSQLデータベース高可用性向け自動フェイルオーバー
PostgreSQLデータベースに自動フェイルオーバー機構を導入することは、データ災害発生時の業務継続性確保と停止時間の最小化に不可欠です。本ガイドでは汎用的な高可用性ツールを紹介し、段階的な構築手順を通じて堅牢なPostgreSQL自動高可用性戦略の策定を支援します。
記事を読む
PostgreSQLデータベースをコピーする方法:同一サーバーおよびサーバー間での手法
PostgreSQLデータベースのコピーは、テスト環境の迅速な作成や新サーバーへの移行に役立ちます。本記事では、PostgreSQLデータベースをコピーする手順をステップバイステップで解説します。
記事を読む
高可用性と災害復旧:何が違うのか
高可用性と災害復旧を解説:根本的な相違点、主要指標(RTO、RPO、MTTR)、ベストプラクティス。統合ソリューションがレジリエンスを強化し、日常的な障害と大規模災害の両方から防御し、事業継続性を高める仕組みを紹介します。
記事を読む
ビジネスデータのセキュリティ強化を始めませんか?

· 世界中のエンタープライズおよびミッドマーケットのお客様

· トライアル期間中、サポートチームが対応します

· 60日間の無料トライアルまたはデモで、Info2Softが企業データをどのように保護するかをご確認ください。

フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}