Amazon Redshift との Amazon RDS ゼロ ETL 統合の作成
Amazon RDS ゼロ ETL 統合を作成するには、ソース RDS データベースとターゲットの Amazon Redshift データウェアハウスを指定します。暗号化設定をカスタマイズし、タグを追加することもできます。Amazon RDS はソースデータベースとそのターゲットの間の統合を作成します。統合がアクティブになると、ソースデータベースに挿入したデータはすべて、設定された Amazon Redshift ターゲットにレプリケートされます。
前提条件
ゼロ ETL 統合を作成する前に、ソースのデータベースとターゲットの Amazon Redshift データウェアハウスを作成する必要があります。また、データベースを承認済みの統合ソースとして追加することによって、データウェアハウスへのレプリケーションを許可する必要があります。
これらの各手順の実行方法については、「Amazon RDS ゼロ ETL 統合の開始方法」を参照してください。
必要なアクセス許可
ゼロ ETL 統合を作成するには、特定の IAM アクセス権限が必要です。少なくとも、次のアクションを実行するためのアクセス権限が必要です。
ソースの RDS データベースのゼロ ETL 統合を作成します。
すべてのゼロ ETL 統合を表示および削除します。
ターゲットデータウェアハウスへのインバウンド統合を作成します。
以下のサンプルポリシーは、統合の作成と管理に必要な最小特権を示しています。ユーザーまたはロールが AdministratorAccess
マネージドポリシーなど、より広範なアクセス許可を持つ場合、これらの正確なアクセス許可を必要としない場合があります。
注記
Redshift Amazon リソースネーム (ARN) の形式は次のとおりです。サーバーレス名前空間 UUID の前にコロン (:
) ではなくフォワードスラッシュ ((/
) を使用していることに注意してください。
-
プロビジョニング済みクラスタ —
arn:aws:redshift:{region}:{account-id}:namespace:
namespace-uuid
-
サーバーレス -
arn:aws:redshift-serverless:{region}:{account-id}:namespace/
namespace-uuid
別のアカウントでターゲットデータウェアハウスを選択する
別の AWS アカウント にあるターゲット Amazon Redshift データウェアハウスを指定する場合は、現在のアカウントのユーザーがターゲットアカウントのリソースにアクセスするのを許可するロールを作成する必要があります。詳細については、「所有している別の AWS アカウント の IAM ユーザーにアクセス権を付与する」を参照してください。
ロールには以下のアクセス許可が必要です。これにより、ユーザーは使用可能な Amazon Redshift のプロビジョニング済みクラスターとターゲットアカウントの Redshift Serverless 名前空間を表示できます。
ロールには、ターゲットアカウント ID を指定する次の信頼ポリシーが必要です。
ロールを作成する手順については、「カスタム信頼ポリシーを使用したロールの作成」を参照してください。
ゼロ ETL 統合の作成
AWS Management Console、AWS CLI、または RDS API を使用してゼロ ETL 統合を作成できます。
重要
ゼロ ETL 統合は、更新または再同期オペレーションをサポートしていません。作成後に統合で問題が発生した場合は、統合を削除して新しい統合を作成する必要があります。
デフォルトで、RDS for MySQL はバイナリログファイルをすぐに消去します。ゼロ ETL 統合では、ソースからターゲットへのデータレプリケーションをバイナリログに依存しているため、ソースデータベースインスタンスの保持期間は 1 時間以上である必要があります。統合を作成したら、直ちに Amazon RDS は選択したソースデータベースのバイナリログファイルの保持期間を確認します。現在の値が 0 時間の場合、Amazon RDS は自動的に 1 時間に変更します。それ以外の場合、値は変わりません。
ゼロ ETL 統合を作成するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
左側のナビゲーションペインから、[ゼロ ETL 統合] を選択します。
-
[ゼロ ETL 統合の作成] を選択します。
-
[統合 ID] に、統合の名前を入力します。名前には最大 63 文字の英数字を使用でき、ハイフンを含めることができます。
重要
カタログ名の長さは 19 文字に制限されています。カタログ名として使用する場合は、統合識別子がこの要件を満たしていることを確認します。
-
[次へ] を選択します。
[ソース] で、データの送信元となる RDS データベースを選択します。
注記
DBパラメータが正しく設定されていないと、RDS から通知されます。このメッセージを受け取った場合は、[Fix it for me] を選択するか、手動で設定することができます。手動で修正する手順については、「ステップ 1: カスタム DB のパラメータグループを作成する」を参照してください。
DB パラメータを変更するには再起動が必要です。統合を作成する前に、再起動が完了し、新しいパラメータ値のデータベースのへの適用が正常に完了している必要があります。
-
ソースデータベースが正常に設定されたら、[次へ] を選択します。
[ターゲット] で、以下を実行します。
(オプション) Amazon Redshift ターゲットとして別の AWS アカウント を使用するには、[別のアカウントを指定] を選択します。次に、データウェアハウスを表示するアクセス許可を持つ IAM ロールの ARN を入力します。IAM ロールの作成手順については、「別のアカウントでターゲットデータウェアハウスを選択する」を参照してください。
[Amazon Redshift データウェアハウス] で、ソースデータベースからのレプリケートデータのターゲットを選択します。ターゲットとして、プロビジョニングされた Amazon Redshift クラスターまたは Redshift Serverless 名前空間を選択できます。
注記
指定したデータウェアハウスのリソースポリシーまたは大文字と小文字の区別の設定が正しく構成されていないと、RDS から通知されます。このメッセージを受け取った場合は、[Fix it for me] を選択するか、手動で設定することができます。手動で修正する手順については、「Amazon Redshift 管理ガイド」の「データウェアハウスの大文字と小文字の区別を有効にする」と「データウェアハウスの認可を設定する」を参照してください。
プロビジョニングされた Redshift クラスターの大文字と小文字の区別を変更するには、再起動が必要です。インテグレーションを作成する前に、再起動を完了し、新しいパラメータ値をクラスターに正常に適用する必要があります。
選択したソースとターゲットの AWS アカウント が異なる場合、Amazon RDS はこれらの設定を自動的に修正できません。他のアカウントに移動し、Amazon Redshift で手動で修正する必要があります。
-
ターゲットデータウェアハウスを正しく設定したら、[次へ] を選択します。
-
(オプション) [タグ] で、1 つ以上のタグを統合に追加します。詳細については、「Amazon RDS リソースのタグ付け」を参照してください。
-
[暗号化] として、統合の暗号化方法を指定します。デフォルトでは、RDS はすべての統合を AWS 所有のキー で暗号化します。代わりにカスタマーマネージドキーを選択するには、[暗号化設定のカスタマイズ] を有効にして、暗号化に使用する KMS キーを選択します。詳細については、「Amazon RDS リソースの暗号化」を参照してください。
オプションで、暗号化コンテキストを追加します。詳しくは、AWS Key Management Service デベロッパーガイドの Encryption context を参照してください。
注記
Amazon RDS は、追加する以下に加えて、次の暗号化コンテキストペアを追加します。
-
aws:redshift:integration:arn
-IntegrationArn
-
aws:servicename:id
-Redshift
これにより、追加できるペアの総数が 8 から 6 に減り、許可の制約の全体的な文字数制限に影響します。詳細については、「AWS Key Management Service デベロッパーガイド」の「Using grant constraints」を参照してください。
-
-
[次へ] を選択します。
統合設定を確認し、[ゼロ ETL 統合を作成] を選択します。
作成に失敗した場合は、トラブルシューティングの手順について「ゼロ ETL 統合を作成できない」を参照してください。
統合のステータスは、作成中は Creating
であり、ターゲットの Amazon Redshift データウェアハウスのステータスは Modifying
です。この間、データウェアハウスをクエリしたり、設定を変更したりすることはできません。
統合が正常に作成されると、統合とターゲットの Amazon Redshift データウェアハウスの両方のステータスが Active
に変わります。
AWS CLI を使用してゼロ ETL 統合を作成するには、create-integration コマンドに以下のオプションを指定して使用します。
注記
カタログ名は 19 文字に制限されていることにご注意ください。カタログ名として使用する場合は、それに応じて統合名を選択します。
-
--integration-name
— 統合の名前を指定します。 -
--source-arn
— 統合のソースとなる RDS データベースの ARN を指定します。 -
--target-arn
— 統合のターゲットとなる Amazon Redshift データウェアハウスの ARN を指定します。
Linux、macOS、Unix の場合:
aws rds create-integration \ --integration-name
my-integration
\ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
\ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
Windows の場合:
aws rds create-integration ^ --integration-name
my-integration
^ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
^ --target-arn arn:aws:redshift:{region}
:{account-id}
:namespace:namespace-uuid
Amazon RDS API を使用してゼロ ETL 統合を作成するには、以下のパラメータを指定して CreateIntegration
オペレーションを使用します。
注記
カタログ名は 19 文字に制限されています。カタログ名として使用する場合は、IntegrationName パラメータがこの要件を満たしていることを確認します。
-
IntegrationName
— 統合の名前を指定します。 -
SourceArn
— 統合のソースとなる RDS データベースの ARN を指定します。 -
TargetArn
— 統合のターゲットとなる Amazon Redshift データウェアハウスの ARN を指定します。
カスタマーマネージドキーでの統合の暗号化
統合の作成時に AWS 所有のキー ではなくカスタム KMS キーを指定する場合、キーポリシーは Amazon Redshift サービスプリンシパルに CreateGrant
アクションへのアクセスを提供する必要があります。さらに、現在のユーザーに DescribeKey
アクションと CreateGrant
アクションの実行を許可する必要があります。
次のポリシー例は、キーポリシーに必要なアクセス許可を指定する方法を示しています。アクセス許可の範囲をさらに狭めるためのコンテキストキーが含まれています。
詳細については、「AWS Key Management Service デベロッパーガイド」の「キーポリシーの作成」を参照してください。
次のステップ
ゼロ ETL 統合を正常に作成した後、ターゲット Amazon Redshift クラスターまたはワークグループ内にデスティネーションデータベースを作成する必要があります。これで、ソースの RDS データベースにデータを追加し、Amazon Redshift でクエリを実行できるようになります。手順については、「Amazon Redshift でのデスティネーションデータベースの作成」を参照してください。