#はじめに
オンプレミス環境上の PostgreSQL を使用したシステムを Azure へ移行することを検討する場合、Azure上で選択可能な PostgreSQL 関連リソースの種類が多く、どのデータベース リソースを選択すべきか、悩まれる方がいるのではないかと思います。
今回、ありそうであまり見かけない、Azure移行に向けた**「PostgreSQL マイグレーション フローチャート」**を作成してみました。
#目次
1. Azureで選択可能なデータベース
2. PostgreSQL マイグレーション フローチャート
3. 最後に
4. 参考情報
#1. Azureで選択可能なデータベース
Azureで選択可能な PostgreSQL 関連リソース一覧をまとめてみます。
※ 本記事は、オンプレミス環境で PostgreSQL を使用している想定で記載しています。
種類 | デプロイ モード | サービスレベル | 簡易説明 |
---|---|---|---|
PostgreSQL on Azure 仮想マシン | - | - | Azure 仮想マシン上に PostgreSQL をインストールする構成。ゾーン冗長を考慮した構成にするためには、PostgreSQLがインストールされたAzure 仮想マシンを各アベイラビリティ ゾーンに配置し、各PostgreSQL間で ストリーミング レプリケーションを構成する必要があります。また、障害発生時のリカバリプランをオンプレミス環境と同様に考慮する必要がある。 |
Azure Database for PostgreSQL | 単一データベース | 仮想コア | 使用可能なCPUリソースを予約。価格レベルとして「Basic」,「汎用目的」,「メモリ最適化」を選択することが可能。サービスエンドポイント、プライベートリンクを経由したプライベート通信によるアプリケーションからのアクセスを実施する必要がある場合は、「汎用目的」もしくは「メモリ最適化」を選択する必要がある。 |
Azure Database for PostgreSQL | フレキシブル サーバー(プレビュー) | 仮想コア | 現時点にてプレビュー機能であるが、Azure Database for PostgreSQLで唯一ゾーン冗長を構成することが可能。価格レベルでは「汎用」,「メモリ最適化」の他に、「バースト可能」が用意され、選択可能な仮想コアは最大2個しか選択することができないが、継続的に最大のCPUリソースを必要としない場合、突発的なトラフィック増加に対応しつつコストを削減することが可能。また、一時的な停止機能 (最大停止期間 : 7日間) により、ストレージ以外の課金の発生を抑え、コストを削減することが可能。 |
Azure Database for PostgreSQL | ハイパースケール (Citus) | 仮想コア | シャーディングを使用して複数のマシン間でクエリを水平にスケーリングすることが可能。大規模データベースに対する応答を迅速化するため、サーバー間でクエリを並列で実行するなど、リアルタイム分析や高スループットのトランザクション ワークロードに最適なデプロイモード。 |
※ Azure Database for PostgreSQL フレキシブル サーバー/ハイパースケール (Citus) の両デプロイモデルでは、Azure Database for PostgreSQL 単一サーバー (汎用目的/メモリ最適化) と同様に、サービスエンドポイント、プライベートリンク、VNET統合などを使用したプライベート通信によるアプリケーションからのアクセスが可能になっている。 |
#2. PostgreSQL マイグレーション フローチャート
#3. 最後に
今回、PostgreSQL マイグレーション フローチャート を作成してみました。
このフローチャートは完璧なものではないと思いますので、アドバイスをいただければ、ブラッシュアップしていこうと思います。
#4. 参考情報
・サービス レベル アグリーメント
・Azure Database for PostgreSQL - Single Server
・Azure Database for PostgreSQL - フレキシブル サーバー
・Azure Database for PostgreSQL - Hyperscale (Citus) とは