オンプレミス PostgreSQL データベースを Aurora PostgreSQL に移行する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

オンプレミス PostgreSQL データベースを Aurora PostgreSQL に移行する

作成者: Baji Shaik (AWS) および Jitender Kumar (AWS)

環境:PoC またはパイロット

ソース: オンプレミス PostgreSQL データベース

ターゲット: Aurora PostgreSQL 互換

R タイプ:リプラットフォーム

ワークロード:オープンソース

テクノロジー: 移行、データベース

AWS サービス: Amazon Aurora、AWS DMS

[概要]

Amazon Aurora PostgreSQL 互換エディションは、ハイエンドの商用データベースのパフォーマンスと可用性と、オープンソースデータベースのシンプルさとコスト効率を組み合わせています。Aurora は、同じ AWS リージョン内の 3 つのアベイラビリティーゾーンにストレージをスケーリングすることでこれらの利点を実現しており、最大 15 のリードレプリカインスタンスをサポートして読み取りワークロードをスケールアウトし、1 つのリージョン内で高可用性を実現します。Aurora グローバルデータベースを使用すると、PostgreSQL データベースを最大 5 つのリージョンに複製して、リージョンに障害が発生した場合のリモート読み取りアクセスとディザスタリカバリができます。このパターンは、オンプレミス PostgreSQL ソースデータベースを Aurora PostgreSQL 互換データベースに移行する手順を説明します。このパターンには、AWS データ移行サービス (AWS DMS) を使用、またはネイティブ PostgreSQL ツール (「pg_dump」、「pg_restore」、「psql」など) 、またはサードパーティツールを使用する 2 つの移行オプションが含まれます。 

このパターンで説明する手順は、 Amazon Relational Database Service (Amazon RDS) と Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをターゲットとする PostgreSQL データベースにも適用されます。

前提条件と制限

前提条件 

制限

製品バージョン

アーキテクチャ

ソーステクノロジースタック

  • オンプレミスの PostgreSQL データベース

ターゲットテクノロジースタック

  • Aurora PostgreSQL 互換 DB インスタンス

ソースアーキテクチャ

オンプレミス PostgreSQL データベースのソースアーキテクチャ

ターゲットアーキテクチャ

Amazon Aurora 上の PostgreSQL データベースのターゲットアーキテクチャ

データ移行アーキテクチャ

AWS DMS の使用

AWS DMS を使用してオンプレミスの PostgreSQL データベースを Aurora へ移行する

ネイティブ PostgreSQL ツールの使用

pg_dump と pg_restore を使用してオンプレミス PostgreSQL データベースを Aurora へ移行する

ツール

  • AWS Database Migration Service (AWS DMS)は、データストアを AWS クラウドに移行、またはクラウドとオンプレミス設定の組み合わせ間で移行する際に役立ちます。このサービスは、さまざまなソースデータベースとターゲットデータベースをサポートしています。AWS DMS での使用がサポートされている PostgreSQL のソースデータベースとターゲットデータベースのバージョンとエディションを検証する方法については、AWS DMS ソースとして PostgreSQL データベースを使用するを参照してください。最も包括的なバージョンと機能サポートのため、AWS DMS の最新バージョンを使用することをお勧めします。

  • ネイティブ PostgreSQL ツールには、pg_dumppg_restorepsql が含まれます。

エピック

タスク説明必要なスキル

ソースとターゲットデータベースのバージョンを検証します。

AWS DMS を使用している場合は、サポートされているバージョンの PostgreSQLを使用していることを確認してください。

DBA

ストレージタイプと容量の要件を特定します。

  1. ソースデータベースインスタンスに割り当てられたストレージを計算します。

  2. ソースデータベースインスタンスの過去の増加メトリクスを収集します。

  3. ターゲットデータベースインスタンスの将来の成長予想を予測します。

  4. ソースデータベースの読み取り/書き込み IOPS の合計数を計算してストレージを割り当てます。汎用 SSD (gp2) ボリュームは 1 GB の各ストレージに 3 IOPS を提供します。

DBA、システム管理者

適切なインスタンスタイプ、容量、ストレージ機能、ネットワーク機能を選択します。

ターゲットデータベースインスタンスのコンピュート要件を決定します。追加の注意が必要と思われる既知のパフォーマンス問題を確認します。以下の要素を考慮して適切なインスタンスタイプを決定してください。

  • ソースデータベースインスタンスの CPU 使用率

  • ソースデータベースインスタンスの IOPS (読み取り/書き込み操作)

  • ソースデータベースインスタンスのメモリフットプリント

詳細については、Aurora ドキュメントの Aurora DB インスタンスクラスを参照してください。

DBA、システム管理者

ソースデータベースとターゲットデータベースのネットワークアクセスセキュリティ要件を特定する。

アプリケーションがデータベースと通信できるようにする適切なセキュリティグループを決定します。

DBA、システム管理者

アプリケーション移行戦略を特定します。

  • アプリケーションの複雑さに基づき、移行カットオーバー戦略を決定します。 

  • プリケーションの目標復旧時間 (RTO) と目標復旧時点 (RPO) を決定し、それに応じてカットオーバーを計画します。

DBA、アプリ所有者、システム管理者
タスク説明必要なスキル

VPC を作成します。

ターゲットデータベースインスタンス用の新しい仮想プライベートクラウド (VPC) を作成します。

システム管理者

セキュリティグループを作成します。

(前のエピックで決めたように)VPC 内にセキュリティグループを作成して、データベースインスタンスへのインバウンド接続を許可します。

システム管理者

Aurora DB クラスターを構成して起動します。

新しい VPC とセキュリティグループを使用してターゲットデータベースインスタンスを作成し、インスタンスを起動します。

システム管理者
タスク説明必要なスキル

移行前の手順を完了します。

  1. ソースデータベースのデータをクリーンアップします。

  2. レプリケーションインスタンスを作成します。

  3. ソースおよびターゲット DB エンドポイントの作成

  4. 移行できるテーブルとオブジェクトの数を特定します。

DBA

移行前の手順を完了します。

  1. 外部キーの制約とトリガーをターゲットデータベースにドロップします。

  2. ターゲットデータベースのセカンダリインデックスをドロップします。

  3. 全ロードタスクを使用して、ソースからターゲットデータベースにデータを移行します。

  4. 外部キーを有効化します。

  5. フラッシュカット移行を使用中で、アプリケーションのダウンタイムを最小限にする必要がある場合は、変更データキャプチャ(CDC) を有効化して、進行中の変更を複製します。

  6. トリガーを有効化します。

  7. シーケンスを更新します。

  8. ソースとターゲットデータベースを検証します。

DBA

データを検証します。

データがソースからターゲットに正確に移行されたことを確認するためには、AWS DMS ドキュメントのデータ検証手順に従います。

DBA
タスク説明必要なスキル

ソースデータベースを準備します。

  1. pg_dump backup を格納するディレクトリがない場合は作成します。

  2. データベースオブジェクトで pg_dump を実行する権限がある移行ユーザーを作成します。

  3. EC2 インスタンスに接続し、pg_dump backup を実行します。

詳細については、pg_dumpドキュメントと AWS DMS ドキュメントのウォークスルーを参照してください。

DBA

ターゲットデータベースを準備します。

  1. データベースオブジェクトで pg_restore を使用する権限がある移行ユーザーを作成します。

  2. pg_restore を使用してデータベースダンプをインポートします。

詳細については、pg_restoreドキュメントと AWS DMS ドキュメントのウォークスルーを参照してください。

DBA

データを検証します。

  1. ソースデータベースとターゲットデータベースのデータベースオブジェクト数を比較します。

  2. オブジェクト数に不一致が見つかった場合は解決します。

DBA
タスク説明必要なスキル

アプリケーション移行戦略に従います。

最初のエピックで作成したアプリケーション移行戦略を実装します。

DBA、アプリ所有者、システム管理者
タスク説明必要なスキル

アプリケーションクライアントを新しいインフラストラクチャに切り替えます。

  1. オンプレミス PostgreSQL データベースを指すすべてのアプリケーションサービスとクライアント接続を停止します。

  2. AWS DMS タスクを実行します

  3. 必要に応じて、ロールバックタスク (Aurora PostgreSQL 互換からオンプレミス PostgreSQL データベースへのリバース CDC) を設定します。

  4. データを検証します

  5. 新しい Aurora PostgreSQL 互換 DB インスタンスに Amazon Route 53 を設定して、新しいターゲットでアプリケーションサービスを開始します。

  6. 新しい Aurora PostgreSQL 互換 DB インスタンスに Amazon CloudWatchPerformance Insights のモニタリングを追加します。

DBA、アプリ所有者、システム管理者

移行をロールバックする必要がある場合。

  1. Aurora PostgreSQL 互換データベースを指す、すべてのアプリケーションサービスを停止します。

  2. 前のストーリーで作成した AWS DMS タスクを使用して、変更をソースのオンプレミス PostgreSQL データベースにロールバックします。

  3. オンプレミス PostgreSQL データベースから Aurora PostgreSQL 互換データベースで実行中の AWS DMS タスクを停止します。

  4. ソースのオンプレミス PostgreSQL データベースを指すようにアプリケーションを設定します。

  5. すべてのロールバックデプロイが完了していることを確認します。

DBA、アプリ所有者
タスク説明必要なスキル

リソースをシャットダウンします。

一時的な AWS リソースをシャットダウンします。

DBA、システム管理者

ドキュメントを検証します。

プロジェクト文書を確認して検証する。

DBA、アプリ所有者、システム管理者

メトリクスを収集します。

移行の所要時間、手動とツールによるコスト削減の割合などのメトリクスを収集します。

DBA、アプリ所有者、システム管理者

プロジェクトを閉じます。

プロジェクトを閉じて、フィードバックします。

DBA、アプリ所有者、システム管理者

関連リソース

リファレンス

追加リソース