PostgreSQL と互換性がある Amazon Aurora にデータを移行する - Amazon Aurora

PostgreSQL と互換性がある Amazon Aurora にデータを移行する

既存のデータベースから Amazon Aurora PostgreSQL 互換エディション DB クラスターにデータを移行するための複数のオプションがあります。また、移行オプションは、移行元のデータベースおよび移行するデータのサイズによっても異なります。オプションは次のとおりです。

スナップショットを使用して RDS for PostgreSQL DB インスタンスを移行する

データは、RDS for PostgreSQL DB スナップショットから Aurora PostgreSQL DB クラスターに直接移行できます。

Aurora リードレプリカを使用して RDS for PostgreSQL DB インスタンスを移行する

また、RDS for PostgreSQL DB インスタンスの Aurora PostgreSQL リードレプリカを作成して、RDS for PostgreSQL DB インスタンスから移行することも可能です。RDS for PostgreSQL DB インスタンスと Aurora PostgreSQL リードレプリカの間の複製ラグがない状態であれば、レプリケーションを停止することができます。この時点で、Aurora リードレプリカを読み書き用のスタンドアロン Aurora PostgreSQL DB クラスターにすることができます。

Amazon S3 から Aurora PostgreSQL にデータをインポートする

データを Amazon S3 から Aurora PostgreSQL DB クラスターに属するテーブルにインポートすることで、データを移行できます。

PostgreSQL 互換ではないデータベースからの移行

PostgreSQL との互換性がないデータベースからのデータを移行するには、AWS Database Migration Service (AWS DMS) を使用できます。AWS DMS の詳細については、AWS Database Migration Serviceユーザーガイドの「AWS Database Migration Service とは?」を参照してください。

注記

RDS から PostgreSQL への移行中、Aurora PostgreSQL DB クラスターでは Kerberos 認証の有効化は現在サポートされていません。Kerberos 認証は、スタンドアロンの Aurora PostgreSQL DB クラスターでのみ有効にできます。

Aurora を使用できる AWS リージョン の一覧は、AWS 全般のリファレンス の「Amazon Aurora」を参照してください。

重要

近い将来 RDS for PostgreSQL DB インスタンスを Aurora PostgreSQL DB クラスターに移行する予定がある場合は、移行計画の早い段階で DB インスタンスのマイナーバージョンの自動アップグレードをオフにすることを強くお勧めします。RDS for PostgreSQL バージョンが Aurora PostgreSQL でサポートされていない場合、Aurora PostgreSQL への移行が遅れる可能性があります。

Aurora PostgreSQL バージョンについては、Amazon Aurora PostgreSQL のエンジンのバージョンを参照してください。

RDS for PostgreSQL DB インスタンスの スナップショットを Aurora PostgreSQL DB クラスターに移行する

RDS for PostgreSQL DB インスタンスの DB スナップショットを移行して、Aurora PostgreSQL DB クラスターを作成することができます。作成された Aurora PostgreSQL DB クラスターには、元の RDS for PostgreSQL DB インスタンスのデータが格納されます。DB スナップショットの作成については、「DB スナップショットの作成」を参照してください。

場合によっては、DB スナップショットが、データを配置したい AWS リージョン にない可能性があります。その場合は、Amazon RDS コンソールを使用して、DB スナップショットを対象の AWS リージョン にコピーします。DB スナップショットのコピーについては、「DB スナップショットのコピー」を参照してください。

対象の AWS リージョン で利用可能な Aurora PostgreSQL バージョンと互換性のある、RDS for PostgreSQL スナップショットを移行できます。例えば、RDS for PostgreSQL 11.1 DB インスタンスからのスナップショットは、米国西部 (北カリフォルニア) リージョンで、Aurora PostgreSQL のバージョン 11.4、11.7、11.8、または 11.9 に移行できます。RDS PostgreSQL 10.11 スナップショットは、Aurora PostgreSQL 10.11、10.12、10.13、および 10.14 に移行できます。つまり、RDS for PostgreSQL スナップショットは、Aurora PostgreSQL と同じかそれ以下のマイナーバージョンを使用する必要があります。

また、新しい Aurora PostgreSQL DB クラスターが、AWS KMS key を使用して、保管中に暗号化されるよう設定することもできます。このオプションは、暗号化されていない DB スナップショットに対してのみ使用できます。

RDS for PostgreSQL DB スナップショットを Aurora PostgreSQL DB クラスターに移行するには、AWS Management Console、AWS CLI、または RDS API を使用できます。AWS Management Console を使用すると、DB クラスターとプライマリインスタンスの両方を作成するために必要なアクションがコンソールによって実行されます。

RDS コンソールを使用して PostgreSQL DB スナップショットを移行するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. [Snapshots] を選択します。

  3. [スナップショット] ページで、Aurora PostgreSQL DB クラスターに移行する RDS for PostgreSQL スナップショットを選択します。

  4. [アクション]、[スナップショットの移行] の順に選択します。

  5. [データベースの移行] ページで以下の値を設定します。

    • [DB エンジンバージョン]: 移行した新しいインスタンスに使用する DB エンジンのバージョンを選択します。

    • [DB instance identifier] (DB インスタンス識別子): DB クラスター名を入力します。これは、選択した AWS リージョン 内で自分のアカウントに対して一意である必要があります。この識別子は、DB クラスター内のインスタンスのエンドポイントアドレスで使用されます。分かりやすくするために、選択した AWS リージョン と DB エンジンなど (例: aurora-cluster1) を名前に含めます。

      DB インスタンス識別子には次の制約があります。

      • 1~63 文字の英数字またはハイフンを使用する必要があります。

      • 1 字目は文字である必要があります。

      • 文字列の最後にハイフンを使用したり、ハイフンを 2 つ続けて使用したりすることはできません。

      • 1 つの AWS アカウント、1 つの AWS リージョン につき、すべての DB インスタンスにおいて一意である必要があります。

    • [DB インスタンスクラス]: データベースに必要なストレージと容量のある DB インスタンスクラス (db.r6g.large など) を選択します。Aurora クラスターボリュームは、データベースのデータ量が増えるにつれて自動的に増加します。そのため、現在のストレージ要件を満たしている DB インスタンスクラスを選択する必要があります。詳細については、「Amazon Aurora ストレージの概要」を参照してください。

    • [Virtual Private Cloud (VPC)]: 既存の VPC がある場合は、その VPC 識別子 (vpc-a464d1c1 など) を選択することで、その VPC を Aurora PostgreSQL DB クラスターで使用できます。VPC の作成方法の詳細については、「チュートリアル: DB クラスターで使用する VPC を作成する (IPv4 専用)」を参照してください。

      それ以外の場合は、[新しい VPC の作成] を選択することにより、Amazon RDS で VPC を作成できます。

    • DB サブネットグループ: 既存のサブネットグループがある場合は、そのサブネットグループ識別子 (gs-subnet-group1 など) を選択して、サブネットグループを Aurora PostgreSQL DB クラスターで使用できます。

    • [パブリックアクセス]: DB クラスターのインスタンスが VPC 内のリソースからのみアクセスできることを指定するには、[いいえ] を選択します。DB クラスターのインスタンスがパブリックネットワーク上のリソースからアクセスできることを指定するには、[はい] を選択します。

      注記

      本番稼働用の DB クラスターは、お客様のアプリケーションサーバーのみがアクセスするため、パブリックサブネット内に配置する必要がない場合があります。DB クラスターをパブリックサブネットに配置する必要がない場合は、[パブリックアクセス可能] を [いいえ] に設定します。

    • [VPC セキュリティグループ]: データベースへのアクセスを許可する VPC セキュリティグループを選択します。

    • [アベイラビリティーゾーン]: Aurora PostgreSQL DB クラスターのプライマリインスタンスをホストするアベイラビリティーゾーンを選択します。Amazon RDS でアベイラビリティーゾーンが選択されるようにするには、[指定なし] を選択します。

    • [データベースのポート]: Aurora PostgreSQL DB クラスターのインスタンスへの接続に使用されるデフォルトのポートを入力します。デフォルト: 5432

      注記

      会社のファイアウォールでデフォルトポート (PostgreSQL のデフォルトポート 5432 など) へのアクセスが許可されない場合があります。この場合は、会社のファイアウォールによって許可されるポート値を指定します。そのポート値を覚えておいてください。後で Aurora PostgreSQL DB クラスターに接続するときに使用します。

    • [暗号を有効化]: 新しい Aurora PostgreSQL DB クラスターを保管時に暗号化するには、[暗号を有効化] を選択します。また、AWS KMS key 値としてKMS キーを選択します。

    • [マイナーバージョン自動アップグレード]: PostgreSQL DB エンジンのマイナーバージョンアップグレードを、そのリリースと同時に Aurora PostgreSQL DB クラスターに自動的に適用するには、[マイナーバージョン自動アップグレードを有効にする] を選択します。

      [マイナーバージョン自動アップグレード] オプションは、Aurora PostgreSQL DB クラスターの PostgreSQL マイナーエンジンバージョンに対するアップグレードのみに適用されます。システム安定性を維持するために適用される定期的なパッチは適用されません。

  6. [Migrate] を選択して、DB スナップショットを移行します。

  7. [データベース] を選択して新しい DB クラスターを表示します。移行の進行状況を監視する新しい DB クラスターを選択します。移行が完了すると、クラスターのステータスは [Available] (使用可能) になります。[接続とセキュリティ] タブで、DB クラスターのプライマリライターインスタンスへの接続に使用するクラスターエンドポイントを見つけます。Aurora PostgreSQL DB クラスターとの接続の詳細については、「Amazon Aurora DB クラスターへの接続」を参照してください。

AWS CLI を使用して RDS for PostgreSQL DB スナップショットを Aurora PostgreSQL に移行するには、2 つの別々の AWS CLI コマンドを使用します。まず、AWS CLI コマンド restore-db-cluster-from-snapshot で新しい Aurora PostgreSQL DB クラスターを作成します。次に、create-db-instance コマンドを使用して、新しいクラスターにプライマリ DB インスタンスを作成し、移行を完了します。次の手順では、スナップショットの作成に使用した DB インスタンスと同じ構成のプライマリ DB インスタンスで Aurora PostgreSQL DB クラスターを作成します。

RDS for PostgreSQL DB スナップショットを Aurora PostgreSQL DB クラスターに移行するには
  1. describe-db-snapshots コマンドを使用して、移行する DB スナップショットに関する情報を取得します。コマンドで --db-instance-identifier パラメータまたは --db-snapshot-identifier を指定できます。これらのパラメータのいずれかを指定しないと、すべてのスナップショットを取得することになります。

    aws rds describe-db-snapshots --db-instance-identifier <your-db-instance-name>
  2. このコマンドは、指定した DB インスタンスから作成されたスナップショットの設定の詳細をすべて返します。出力から移行するスナップショットを見つけ、その Amazon リソースネーム (ARN) を見つけます。Amazon RDS ARN の詳細については、「Amazon Relational Database Service (Amazon RDS)」を参照してください。ARN は次の出力例のようになります。

    “DBSnapshotArn": "arn:aws:rds:aws-region:111122223333:snapshot:<snapshot_name>"

    また、出力では、エンジンのバージョン、割り当てられたストレージ、DB インスタンスが暗号化されているかどうかなど、RDS for PostgreSQL DB インスタンスの設定の詳細を確認できます。

  3. restore-db-cluster-from-snapshot コマンドを使用して、移行を開始します。以下のパラメータを指定します。

    • --db-cluster-identifier – Aurora PostgreSQL DB クラスターに割り当てる名前。この Aurora DB クラスターは、DB スナップショット移行のターゲットです。

    • --snapshot-identifier – 移行する DB スナップショットの Amazon リソースネーム (ARN)。

    • --engine – Aurora DB クラスターエンジンの aurora-postgresql を指定します。

    • --kms-key-id – このオプションパラメータを使用すると、暗号化されていない DB スナップショットから暗号化された Aurora PostgreSQL DB クラスターを作成できます。また、DB スナップショットに使用されたキーとは異なる暗号化キーを DB クラスター用に選択することもできます。

      注記

      暗号化された DB スナップショットから暗号化されていない Aurora PostgreSQL DB クラスターを作成することはできません。

    --kms-key-id パラメータを以下に示すように指定しないと、restore-db-cluster-from-snapshot AWS CLI コマンドは、DB スナップショットと同じキーを使用して暗号化されているか、ソース DB スナップショットが暗号化されていない場合は暗号化されていない空の Aurora PostgreSQL DB クラスターを作成します。

    Linux、macOS、Unix の場合:

    aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier cluster-name \ --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name \ --engine aurora-postgresql

    Windows の場合:

    aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier new_cluster ^ --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name ^ --engine aurora-postgresql
  4. このコマンドは、移行用に作成されている Aurora PostgreSQL DB クラスターの詳細を返します。Aurora PostgreSQL DB クラスターのステータスは、describe-db-clusters AWS CLI コマンドで確認できます。

    aws rds describe-db-clusters --db-cluster-identifier cluster-name
  5. DB クラスターが「使用可能」になったら、create-db-instance コマンドを使用して、Amazon RDS DB スナップショットに基づいて、Aurora PostgreSQL DB クラスターに DB インスタンスを入力します。以下のパラメータを指定します。

    • --db-cluster-identifier – 前のステップで作成した新しい Aurora PostgreSQL DB クラスターの名前。

    • --db-instance-identifier – DB インスタンスに付ける名前。このインスタンスは、Aurora PostgreSQL DB クラスターのプライマリノードになります。

    • ----db-instance-class – 使用する DB インスタンスクラスを指定します。移行先の Aurora PostgreSQL バージョンでサポートされている DB インスタンスクラスの中から選択します。詳細については、DB インスタンスクラスタイプおよびDB インスタンスクラスでサポートされている DB エンジンを参照してください。

    • --engine – DB インスタンスに aurora-postgresql を指定します。

    create-db-instance AWS CLI コマンドで適切なオプションを渡すことで、ソース DB スナップショットとは異なる設定で DB インスタンスを作成することもできます。詳細については、「create-db-instance」コマンドを参照してください。

    Linux、macOS、Unix の場合:

    aws rds create-db-instance \ --db-cluster-identifier cluster-name \ --db-instance-identifier --db-instance-class db.instance.class \ --engine aurora-postgresql

    Windows の場合:

    aws rds create-db-instance ^ --db-cluster-identifier cluster-name ^ --db-instance-identifier --db-instance-class db.instance.class ^ --engine aurora-postgresql

移行プロセスが完了すると、Aurora PostgreSQL クラスターでは、プライマリ DB インスタンスが設定されます。

Aurora リードレプリカを使用して RDS for PostgreSQL DB インスタンスから Aurora PostgreSQL DB クラスターにデータを移行する

移行プロセス用の Aurora リードレプリカにより、RDS for PostgreSQL DB インスタンスを新しい Aurora PostgreSQL DB クラスターのベースとして使用できます。Aurora リードレプリカオプションは、同じ AWS リージョン とアカウント内での移行にのみ使用でき、リージョンが RDS for PostgreSQL DB インスタンスに対して互換性のある Aurora PostgreSQL のバージョンを提供している場合にのみ使用できます。この場合、互換性があるとは、Aurora PostgreSQL のバージョンが RDS for PostgreSQL バージョンと同じであるか、同じメジャーバージョンファミリー内の上位マイナーバージョンであることを意味します。

例えば、この手法を使用して RDS for PostgreSQL 11.14 DB インスタンスを移行するには、リージョンで Aurora PostgreSQL バージョン 11.14 または PostgreSQL バージョン 11 ファミリーの上位マイナーバージョンが提供されている必要があります。

Aurora リードレプリカを使用したデータ移行の概要

RDS for PostgreSQL DB インスタンスから Aurora PostgreSQL DB クラスターに移行するには、複数のステップが必要です。まず、ソース RDS for PostgreSQL DB インスタンスの Aurora リードレプリカを作成します。これにより、RDS for PostgreSQL DB インスタンスから、レプリカクラスターと呼ばれる特殊目的 DB クラスターへのレプリケーションプロセスが開始されます。レプリカクラスターは 1 つの Aurora リードレプリカ (リーダーインスタンス) のみで構成されます。

レプリカクラスターができたら、レプリカクラスターとソース RDS for PostgreSQL DB インスタンスとの遅延時間をモニタリングします。レプリカ遅延がゼロ (0) の場合、レプリカクラスターを昇格させることができます。レプリケーションが停止し、レプリカクラスターはスタンドアロン Aurora DB クラスターに昇格し、リーダーはクラスターのライターインスタンスに昇格します。その後、Aurora PostgreSQL DB クラスターにインスタンスを追加して、ユースケースに合わせて Aurora PostgreSQL DB クラスターのサイズを設定できます。RDS for PostgreSQL DB インスタンスは、それ以上必要ない場合は、削除してもかまいません。

注記

移行が完了するまでに、1 テラバイトのデータあたり数時間かかることがあります。

RDS for PostgreSQL DB インスタンスに既に Aurora リードレプリカがある場合、またはクロスリージョンリードレプリカがある場合は、Aurora リードレプリカを作成できません。

Aurora リードレプリカを使用してデータを移行するよう準備する

Aurora リードレプリカを使用した移行プロセス中に、ソース RDS for PostgreSQL DB インスタンスに加えられた更新は、レプリカクラスターの Aurora リードレプリカに非同期的にレプリケーションされます。このプロセスでは、ソースインスタンスにログ先行書き込み (WAL) セグメントを保存する PostgreSQL のネイティブのストリーミングレプリケーション機能を使用します。この移行プロセスを開始する前に、テーブルにリストされているメトリクスの値をチェックして、インスタンスに十分なストレージ容量があることを確認してください。

メトリクス 説明

FreeStorageSpace

使用可能なストレージ領域。

単位: バイト

OldestReplicationSlotLag

最も遅延の大きいレプリカの WAL データに関する遅延サイズ。

単位: メガバイト

RDSToAuroraPostgreSQLReplicaLag

Aurora PostgreSQL DB クラスターがソース RDS DB インスタンスより遅れる時間 (秒単位)。

TransactionLogsDiskUsage

トランザクションログで使用されているディスク容量。

単位: メガバイト

RDS インスタンスのモニタリングの詳細については、Amazon RDS ユーザーガイド の「モニタリング」を参照してください。

Aurora リードレプリカの作成

AWS Management Console または AWS CLI を使用して、RDS for PostgreSQL DB インスタンスの Aurora リードレプリカを作成できます。AWS Management Console を使用して Aurora リードレプリカを作成するオプションは、AWS リージョン が互換性のある Aurora PostgreSQL バージョンを提供している場合のみ使用可能です。つまり、このオプションは、RDS for PostgreSQL バージョンと同じか、同じメジャーバージョンファミリーの上位マイナーバージョンの Aurora PostgreSQL バージョンがある場合にのみ使用できます。

ソース PostgreSQL DB インスタンスから Aurora リードレプリカを作成するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、データベースを選択します。

  3. Aurora リードレプリカのソースとして使用する RDS for PostgreSQL DB インスタンスを選択します。[アクション] で [Aurora リードレプリカの作成] を選択します。この選択肢が表示されない場合は、互換性のあるバージョンの Aurora PostgreSQL がリージョンで使用できないことを意味します。

    
                                    Aurora リードレプリカの作成
  4. Aurora リードレプリカの設定の作成ページで、次の表に示すように、Aurora PostgreSQL DB クラスターのプロパティを設定します。レプリカ DB クラスターは、ソースと同じ「マスター」ユーザー名およびパスワードを使用してソース DB インスタンスのスナップショットから作成されるため、この時点では変更できません。

    オプション 説明

    DB インスタンスクラス

    DB クラスターのプライマリインスタンスに対する処理要件やメモリ要件に適合する DB インスタンスクラスを選択します。詳細については、「Aurora DB インスタンスクラス」を参照してください。

    マルチ AZ 配置

    移行中は使用できません

    DB インスタンス識別子

    DB インスタンスに付ける名前を入力します。この識別子は、新しい DB クラスターのプライマリインスタンスのエンドポイントアドレスで使用されます。

    DB インスタンス識別子には次の制約があります。

    • 1~63 文字の英数字またはハイフンを使用する必要があります。

    • 1 字目は文字である必要があります。

    • 文字列の最後にハイフンを使用したり、ハイフンを 2 つ続けて使用したりすることはできません。

    • これは、AWS リージョン ごと、AWS アカウントごとにすべての DB インスタンスに対して一意にする必要があります。

    仮想プライベートクラウド (VPC)

    DB クラスターをホストする VPC を選択します。[新しい VPC の作成] を選択して、Amazon RDS で VPC を作成します。詳細については、「DB クラスターの前提条件」を参照してください。

    DB サブネットグループ

    DB クラスターで使用する DB サブネットグループを選択します。[新しい DB サブネットグループの作成] を選択すると、Amazon RDS によって DB サブネットグループが作成されます。詳細については、「DB クラスターの前提条件」を参照してください。

    パブリックアクセシビリティ

    DB クラスターにパブリック IP アドレスを指定するには [はい] を選択します。それ以外の場合は [いいえ] を選択します。DB クラスターのインスタンスでは、パブリック DB インスタンスとプライベート DB インスタンスの両方を混在させることができます。パブリックアクセスからインスタンスを隠す方法については、「VPC 内の DB クラスターをインターネットから隠す」を参照してください。

    アベイラビリティーゾーン

    特定のアベイラビリティーゾーンを指定するかどうかを指定します。利用可能ゾーンについての詳細は、リージョンとアベイラビリティーゾーン を参照してください。

    VPC セキュリティグループ

    DB クラスターへのネットワークアクセスの保護用に 1 つ以上の VPC セキュリティグループを選択します。[新しい VPC セキュリティグループの作成] を選択すると、Amazon RDS によって VPC セキュリティグループが作成されます。詳細については、「DB クラスターの前提条件」を参照してください。

    データベースポート

    データベースのアクセスに使用するために、アプリケーションやユーティリティのポートを指定します。Aurora PostgreSQL DB クラスターのデフォルトの PostgreSQL ポートは 5432 になります。会社のファイアウォールでは、このポートへの接続がブロックされます。会社のファイアウォールがデフォルトのポートをブロックする場合は、新しい DB クラスター用に別のポートを選択します。

    DB パラメータグループ

    Aurora PostgreSQL DB クラスターの DB パラメータグループを選択します。Aurora にはデフォルトの DB パラメータグループが用意されています。また、独自の DB パラメータグループを作成することもできます。DB パラメータグループの詳細については、「「パラメータグループを使用する」 」を参照してください。

    DB クラスターのパラメータグループ

    Aurora PostgreSQL DB クラスターに使用する DB クラスターでパラメータグループを選択します。Aurora にはデフォルトの DB クラスターパラメータグループが用意されています。また、独自の DB クラスターパラメータグループを作成することもできます。DB クラスターパラメータグループの詳細については、「「パラメータグループを使用する」 」を参照してください。

    暗号化

    [暗号を有効化] を選択すると、新しい Aurora DB クラスターが保管時に暗号化されます。[Enable encryption] (暗号化を有効化) を選択する場合は、KMS キーも AWS KMS key 値として選択してください。

    優先度

    DB クラスターのフェイルオーバー優先度を選択します。値を選択しない場合、デフォルト値は [tier-1] になります。この優先度により、プライマリインスタンスの障害からの復旧時に、Aurora レプリカを昇格する順序が決まります。詳細については、「Aurora DB クラスターの耐障害性」を参照してください。

    バックアップの保存期間

    Aurora がデータベースのバックアップコピーを保持する期間 (1~35 日) を選択します。バックアップコピーは、2 番目のデータベースに対するポイントインタイム復元 (PITR) で使用できます。

    拡張モニタリング

    DB クラスターが実行されているオペレーティングシステムに対してリアルタイムでのメトリクスの収集を有効にするには、[拡張モニタリングを有効にする] を選択します。詳細については、「拡張モニタリングを使用した OS メトリクスのモニタリング」を参照してください。

    モニタリングロール

    [拡張モニタリングを有効にする] を選択した場合にのみ使用できます。拡張モニタリングに使用する AWS Identity and Access Management (IAM) ロールです。詳細については、「拡張モニタリングの設定と有効化」を参照してください。

    詳細度

    [拡張モニタリングを有効にする] を選択した場合にのみ使用できます。DB クラスターのメトリクスを収集する間隔を秒単位で設定します。

    マイナーバージョン自動アップグレード

    Aurora PostgreSQL DB クラスターで PostgreSQL DB エンジンのマイナーバージョンアップグレードをリリースと同時に自動的に受信するには、[Yes (はい)] を選択します。

    [マイナーバージョン自動アップグレード] オプションは、Aurora PostgreSQL DB クラスターの PostgreSQL マイナーエンジンバージョンに対するアップグレードのみに適用されます。システム安定性を維持するために適用される定期的なパッチは適用されません。

    メンテナンスウィンドウ

    週 1 回のシステムメンテナンスを実行できる時間帯を選択します。

  5. [Create read replica] を選択します。

AWS CLI を使用してソース RDS for PostgreSQL DB インスタンスから Aurora リードレプリカを作成するには、まず、create-db-cluster CLI コマンドを使用して空の Aurora DB クラスターを作成します。DB クラスターが作成されたら、create-db-instance コマンドを使用して、DB クラスターのプライマリインスタンスを作成します。プライマリインスタンスは、Aurora DB クラスターで作成される最初のインスタンスです。この場合、最初に RDS for PostgreSQL DB インスタンスの Aurora リードレプリカとして作成されます。プロセスが終了すると、RDS for PostgreSQL DB インスタンスは、Aurora PostgreSQL DB クラスターに効果的に移行されました。

メインユーザーアカウント (通常は postgres)、パスワード、またはデータベース名を指定する必要はありません。Aurora リードレプリカは、AWS CLI コマンドの呼び出し時に識別するソース RDS for PostgreSQL DB インスタンスからこれらを自動的に取得します。

Aurora PostgreSQL DB クラスターと DB インスタンスに使用するエンジンのバージョンを指定する必要があります。指定するバージョンは、ソース RDS for PostgreSQL DB インスタンスと一致する必要があります。ソース RDS for PostgreSQL DB インスタンスが暗号化されている場合は、Aurora PostgreSQL DB クラスタープライマリインスタンスの暗号化を指定する必要があります。暗号化されていない Aurora DB クラスターへの暗号化されたインスタンスの移行はサポートされていません。

以下の例では、my-new-aurora-cluster という名前の Aurora PostgreSQL DB クラスターを作成し、暗号化されていない RDS DB ソースインスタンスが使用されます。まず、create-db-cluster CLI コマンドを呼び出して、Aurora PostgreSQL DB クラスターを作成します。この例は、オプションの --storage-encrypted パラメータを使用して、DB クラスターを暗号化することを指定する方法を示しています。ソース DB は暗号化されていないため、--kms-key-id を使用して、使用するキーを指定します。必須のパラメータとオプションのパラメータの詳細については、例に続くリストを参照してください。

Linux、macOS、Unix の場合:

aws rds create-db-cluster \ --db-cluster-identifier my-new-aurora-cluster \ --db-subnet-group-name my-db-subnet --vpc-security-group-ids sg-11111111 --engine aurora-postgresql \ --engine-version same-as-your-rds-instance-version \ --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db \ --storage-encrypted \ --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444

Windows の場合:

aws rds create-db-cluster ^ --db-cluster-identifier my-new-aurora-cluster ^ --db-subnet-group-name my-db-subnet ^ --vpc-security-group-ids sg-11111111 ^ --engine aurora-postgresql ^ --engine-version same-as-your-rds-instance-version ^ --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db ^ --storage-encrypted ^ --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444

次のリストに、例に示されているいくつかのオプションの詳細を示します。特に指定がない限り、これらのパラメータは必須です。

  • --db-cluster-identifier — 新しい Aurora PostgreSQL DB クラスターに名前を付ける必要があります。

  • --db-subnet-group-name — ソース DB インスタンスと同じ DB サブネットに Aurora PostgreSQL DB クラスターを作成します。

  • --vpc-security-group-ids — Aurora PostgreSQL DB クラスターのセキュリティグループを指定します。

  • --engine-version — Aurora PostgreSQL DB クラスターで使用するバージョンを指定します。これは、ソース RDS for PostgreSQL DB インスタンスで使用されるバージョンと同じである必要があります。

  • --replication-source-identifier — Amazon リソースネーム (ARN) を使用して RDS for PostgreSQL DB インスタンスを特定します。Amazon RDS ARN の詳細については、DB クラスターの AWS 全般のリファレンス の「Amazon Relational Database Service (Amazon RDS)」を参照してください。

  • --storage-encrypted - オプション。暗号化を次のように指定する必要がある場合にのみ使用します。

    • このパラメータは、ソース DB インスタンスに暗号化ストレージがある場合に使用します。暗号化ストレージを持つソース DB インスタンスでこのパラメータを使用しなかった場合、create-db-cluster の呼び出しは失敗します。ソース DB インスタンスで使用されるキーとは異なるキーを Aurora PostgreSQL DB クラスターに使用する場合は、--kms-key-id も指定する必要があります。

    • ソース DB インスタンスのストレージは暗号化されていないが、Aurora PostgreSQL DB クラスターで暗号化を使用する場合に使用します。その場合は、使用する暗号化キーも --kms-key-id パラメータで特定する必要があります。

  • --kms-key-id - オプション。使用すると、キーの ARN、ID、エイリアス ARN、またはそのエイリアス名を使用して、ストレージの暗号化 (--storage-encrypted) に使用するキーを指定できます。このパラメータは、以下の状況でのみ必要です。

    • Aurora PostgreSQL DB クラスターに、ソース DB インスタンスで使用されるキーとは異なるキーを選択する。

    • 暗号化されていないソースから暗号化されたクラスターを作成する。この場合、Aurora PostgreSQL が暗号化に使用するキーを指定する必要があります。

Aurora PostgreSQL DB クラスターを作成した後、以下に示すように、create-db-instance CLI コマンドを使用してプライマリインスタンスを作成します。

Linux、macOS、Unix の場合:

aws rds create-db-instance \ --db-cluster-identifier my-new-aurora-cluster \ --db-instance-class db.x2g.16xlarge \ --db-instance-identifier rpg-for-migration \ --engine aurora-postgresql

Windows の場合:

aws rds create-db-instance ^ --db-cluster-identifier my-new-aurora-cluster ^ --db-instance-class db.x2g.16xlarge ^ --db-instance-identifier rpg-for-migration ^ --engine aurora-postgresql

次のリストに、例に示されているいくつかのオプションの詳細を示します。

  • --db-cluster-identifier – 前のステップで create-db-instance コマンドで作成した Aurora PostgreSQL DB クラスターの名前を指定します。

  • --db-instance-class - db.r4.xlargedb.t4g.mediumdb.x2g.16xlarge など、プライマリインスタンスに使用する DB インスタンスクラスの名前。使用可能な DB インスタンスクラスのリストについては、「DB インスタンスクラスタイプ」を参照してください。

  • --db-instance-identifier — プライマリ・インスタンスに付ける名前を指定します。

  • --engine aurora-postgresql — エンジンの aurora-postgresql を指定します。

ソース RDS for PostgreSQL DB インスタンスから Aurora リードレプリカを作成するには、まず、RDS API オペレーション CreateDBCluster を使用して、ソース RDS for PostgreSQL DB インスタンスから作成される Aurora リードレプリカ用の新しい Aurora DB クラスターを作成します。Aurora PostgreSQL DB クラスターが使用可能になったら、CreateDBInstance を使用して、Aurora DB クラスターのプライマリインスタンスを作成します。

メインユーザーアカウント (通常は postgres)、パスワード、またはデータベース名を指定する必要はありません。Aurora リードレプリカは、ReplicationSourceIdentifier で指定されたソース RDS for PostgreSQL DB インスタンスからこれらを自動的に取得します。

Aurora PostgreSQL DB クラスターと DB インスタンスに使用するエンジンのバージョンを指定する必要があります。指定するバージョンは、ソース RDS for PostgreSQL DB インスタンスと一致する必要があります。ソース RDS for PostgreSQL DB インスタンスが暗号化されている場合は、Aurora PostgreSQL DB クラスタープライマリインスタンスの暗号化を指定する必要があります。暗号化されていない Aurora DB クラスターへの暗号化されたインスタンスの移行はサポートされていません。

Aurora リードレプリカ用の Aurora DB クラスターを作成するには、RDS API オペレーション CreateDBCluster を以下のパラメータを指定して使用します。

  • DBClusterIdentifier - 作成する DB クラスターの名前。

  • DBSubnetGroupName - この DB クラスターに関連付ける DB サブネットグループの名前。

  • Engine=aurora-postgresql - 使用するエンジンの名前。

  • ReplicationSourceIdentifier - ソース PostgreSQL DB インスタンスの Amazon リソースネーム (ARN)。Amazon RDS ARN の詳細については、Amazon Web Services 全般のリファレンス の「Amazon Relational Database Service (Amazon RDS)」を参照してください。ReplicationSourceIdentifier が暗号化されたソースを示している場合、KmsKeyId オプションを使用して別のキーを指定しない限り、Amazon RDS は デフォルトの KMS キーを使用します。

  • VpcSecurityGroupIds - この DB クラスターに関連付ける Amazon EC2 VPC セキュリティグループのリスト。

  • StorageEncrypted - DB クラスターが暗号化されるかどうかを示します。このパラメータを使用して、ReplicationSourceIdentifier を指定しなかった場合、Amazon RDS はデフォルトの KMS キーを使用します。

  • KmsKeyId - 暗号化されたクラスターのキー。これを使用すると、キーの ARN、ID、エイリアス ARN、またはそのエイリアス名を使用して、ストレージの暗号化に使用するキーを指定できます。

詳細については、Amazon RDS API リファレンスの「CreateDBCluster」を参照してください。

Aurora DB クラスターが使用可能鳴ったら、RDS API オペレーション CreateDBInstance を以下のパラメータを指定して使用することによって、プライマリインスタンスを作成できます。

  • DBClusterIdentifier - DB クラスターの名前。

  • DBInstanceClass - プライマリインスタンスに使用する DB インスタンスの名前。

  • DBInstanceIdentifier - プライマリインスタンスの名前。

  • Engine=aurora-postgresql - 使用するエンジンの名前。

詳細については、Amazon RDS API リファレンスの「CreateDBInstance」を参照してください。

Aurora リードレプリカの昇格

Aurora PostgreSQL への移行は、レプリカクラスターを昇格させるまで完了しないため、RDS for PostgreSQL ソース DB インスタンスをまだ削除しないようにする必要があります。

レプリカクラスターを昇格させる前に、RDS for PostgreSQL DB インスタンスに、処理中のトランザクションやデータベースへの書き込みを行うその他のアクティビティがないことを確認してください。Aurora リードレプリカのレプリカ遅延が 0 になると、レプリカクラスターを昇格させることができます。レプリカ遅延のモニタリングの詳細については、「Aurora PostgreSQL レプリケーションのモニタリング」と「Amazon Aurora のインスタンスレベルのメトリクス」を参照してください。

Aurora リードレプリカを Aurora DB クラスターに昇格させるには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、データベースを選択します。

  3. レプリカクラスターを選択します。

    
                                    レプリカクラスターを完全な Aurora PostgreSQL DB クラスターのステータスに昇格させる
  4. [アクション] で、[Promote (昇格)] を選択します。これには数分かかることがあり、ダウンタイムが発生する可能性があります。

プロセスが完了すると、Aurora レプリカクラスターはリージョンの Aurora PostgreSQL DB クラスターになっていて、ライターインスタンスには RDS for PostgreSQL DB インスタンスからのデータが含まれます。

Aurora リードレプリカをスタンドアロン DB クラスターに昇格させるには、AWS CLI の promote-read-replica-db-cluster コマンドを使用します。

Linux、macOS、Unix の場合:

aws rds promote-read-replica-db-cluster \ --db-cluster-identifier myreadreplicacluster

Windows の場合:

aws rds promote-read-replica-db-cluster ^ --db-cluster-identifier myreadreplicacluster

Aurora リードレプリカをスタンドアロン DB クラスターに昇格するには、RDS API オペレーション PromoteReadReplicaDBCluster を使用します。

レプリカクラスターを昇格させたら、次のようにイベントログをチェックして、昇格が完了したことを確認できます。

Aurora レプリカクラスターが昇格したことを確認するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインの [Events] (イベント) を選択します。

  3. [イベント] ページで、クラスターの名前を [ソース] リストから見つけます。各イベントには、ソース、タイプ、時間、およびメッセージがあります。AWS リージョン でアカウントに発生したすべてのイベントを確認できます。昇格が成功すると、次のメッセージが生成されます。

    Promoted Read Replica cluster to a stand-alone database cluster.

昇格の完了後、ソース RDS for PostgreSQL DB インスタンスと Aurora PostgreSQL DB クラスター間のリンクは解除されます。Aurora リードレプリカのエンドポイントにクライアントアプリケーションを誘導できます。Aurora エンドポイントの詳細については、「Amazon Aurora 接続管理」を参照してください。この時点で、DB インスタンスを安全に削除できます。