クロスアカウント
データベースが一方のアカウントに、データレイクが別のアカウントにある場合、 エクスポートは ソースアカウント側で 実行され、Data Pump のバケットへ直接書き込みます。 生データが 2 回転送されることはなく、スナップショットの共有もコピーも不要です。
これには実務上の利点があります。クラスターが専用の KMS キーを使う必要がありません。
RDS のデフォルトキー(aws/rds)で暗号化されたスナップショットでも動作します。
スナップショットを共有する必要がある方式では成り立たないことです。
ソースアカウントに作成されるもの
Section titled “ソースアカウントに作成されるもの”エクスポートに必要な最小限のものだけです。
- スナップショット完成を通知する RDS の イベントサブスクリプション
- 最小権限の IAM ロール 2 つ。1 つはエクスポート用、もう 1 つはイベント用
そのアカウントにデータが残ることはなく、Data Pump がエクスポートされたスナップショット 以外へのアクセス権を得ることもありません。
順序が重要です
Section titled “順序が重要です”2 つのアカウントが相互に参照するため、インストールは 3 段階になります。
1. Data Pump のアカウントで
Section titled “1. Data Pump のアカウントで”sh install-datapump.shバケットとエクスポート用のキーを作成し、ステップ 2 で必要になる ARN を出力します。
2. ソースアカウントで
Section titled “2. ソースアカウントで”クラスターをホストしているアカウントの認証情報で実行します。
VERSION=v1.0.0 \DATAPUMP_ACCOUNT=111122223333 \DATAPUMP_TOPIC_ARN=arn:...:datapump-rds-snapshot-export-to-s3-prd \DATAPUMP_BUCKET_ARN=arn:aws:s3:::datapump-datalake-prd \DATAPUMP_EXPORT_KMS_KEY_ARN=arn:aws:kms:...:key/... \SOURCE_CLUSTER_IDENTIFIER=meu-cluster \sh install-source-account.sh4 つの ARN はステップ 1 の出力から取得します。
3. 再び Data Pump のアカウントで
Section titled “3. 再び Data Pump のアカウントで”sh source-accounts.sh add 444455556666ステップ 2 で作成したロールに、バケットへの書き込みとキーの使用を許可します。 この手順を省くと、エクスポートは権限エラーで失敗します。
複数のソースアカウント
Section titled “複数のソースアカウント”アカウントごとにステップ 2 と 3 を繰り返します。source-accounts.sh はリストを保持し、
すべての認可を再適用します。新しいアカウントを追加しても、既存のものは削除されません。
現在のリストを確認するには次を実行します。
sh source-accounts.sh listインストール後
Section titled “インストール後”以降は単一アカウントの場合と同じです。Origens(ソース)でクラスターを、 Bancos(データベース)でデータベースを選択します。 取り込みの設定 をご覧ください。
コンソール上では、異なるアカウントにある同名のクラスターを取り違えないよう、 ソースはアカウント付きで識別表示されます。