ゼロ ETL 統合の開始方法
この一連のタスクでは、最初のゼロ ETL 統合を設定する手順を説明します。まず、統合ソースを設定し、必要なパラメータとアクセス許可を設定します。その後、Amazon Redshift コンソールと AWS CLI から残りの初期セットアップに進みます。
ゼロ ETL 統合を作成するには
このステップでは、Aurora または RDS の Amazon Redshift とのゼロ ETL 統合のいずれかを作成します。
Aurora の Amazon Redshift とのゼロ ETL 統合を作成するには
-
「Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで カスタム DB クラスターパラメータグループを作成 します。
-
「Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで ソース Amazon Aurora DB クラスターを作成 します。
-
Amazon Redshift コンソール: ターゲット Amazon Redshift データウェアハウスを作成して設定する.
-
AWS CLI または Amazon Redshift コンソール: データウェアハウスの大文字と小文字の区別を有効にする.
-
Amazon Redshift コンソール: Amazon Redshift データウェアハウスの認可を設定する.
-
-
「Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで ゼロ ETL 統合を作成 します。
-
Amazon Redshift コンソールまたはクエリエディタ v2 で、統合から Amazon Redshift データベースを作成 します。
RDS の Amazon Redshift とのゼロ ETL 統合を作成するには
-
「Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで カスタム DB パラメータグループを作成 します。
-
「Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで ソース Amazon RDS インスタンスを作成 します。
-
Amazon Redshift コンソール: ターゲット Amazon Redshift データウェアハウスを作成して設定する.
-
AWS CLI または Amazon Redshift コンソール: データウェアハウスの大文字と小文字の区別を有効にする.
-
Amazon Redshift コンソール: Amazon Redshift データウェアハウスの認可を設定する.
-
-
「Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで ゼロ ETL 統合を作成 します。
-
Amazon Redshift コンソールまたはクエリエディタ v2 で、統合から Amazon Redshift データベースを作成 します。
Amazon RDS コンソールには、ソースデータベースとターゲットの Amazon Redshift データウェアハウスを指定するステップバイステップの統合作成フローが提供されています。問題が発生した場合は、Amazon RDS コンソールまたは Amazon Redshift コンソールのいずれかで手動で問題を解決せず、Amazon RDS に問題を自動的に修正させることを選択できます。
ターゲット Amazon Redshift データウェアハウスを作成して設定する
このステップでは、Redshift Serverless ワークグループやプロビジョン済みのクラスターなどのターゲット Amazon Redshift データウェアハウスを作成して設定します。
ターゲットデータウェアハウスには次の特性が必要です。
-
Amazon Redshift Serverless または RA3 ノードタイプのプロビジョン済みクラスターを実行している。
-
大文字と小文字の区別 (
enable_case_sensitive_identifier
) がオンになっている。詳細については、「データウェアハウスの大文字と小文字の区別を有効にする」を参照してください。 -
ターゲットデータウェアハウスが Amazon Redshift でプロビジョンしたクラスターの場合、暗号化されている。詳細については、「Amazon Redshift データベース暗号化」を参照してください。
-
統合ソースと同じ AWS リージョンで作成されている。
注記
Aurora PostgreSQL の Amazon Redshift とのゼロ ETL 統合の場合は、ターゲットデータウェアハウスについての次の点も考慮する必要があります。
-
preview_2023
トラックに基づいてプレビューでデータウェアハウスを作成する必要があります。プレビューの機能を本番環境で使用したり、プレビューのデータウェアハウスを本番環境に移行したりすることはできません。 -
Amazon Redshift でプロビジョンするクラスターを作成する場合、クラスターには少なくとも 2 つのノードが必要です。
-
AWS リージョンの米国東部 (オハイオ) にターゲットデータウェアハウスを作成する必要があります。Amazon RDS データベースプレビュー環境
を使用して Aurora PostgreSQL のゼロ ETL 統合のためのソースデータベースを作成する必要があることに注意します。
Aurora PostgreSQL のゼロ ETL 統合のためのターゲットデータウェアハウスをプレビューで作成するには、デプロイタイプに応じて次のトピックのいずれかを参照してください。
-
プレビューの Amazon Redshift でプロビジョニングされたクラスターを作成するには、「プレビュークラスターの作成」を参照してください。ゼロ ETL 統合を使用するには、必ず
preview_2023
トラックを選択してください。 -
プレビューの Amazon Redshift Serverless ワークグループを作成するには、「プレビューワークグループの作成」を参照してください。
ゼロ ETL 統合のためのターゲットデータウェアハウスを作成するには、デプロイタイプに応じて次のトピックのいずれかを参照してください。
-
Amazon Redshift でプロビジョニングされたクラスターを作成するには、「クラスターの作成」を参照してください。
-
名前空間を伴う Amazon Redshift Serverless ワークグループを作成するには、「名前空間を伴うワークグループの作成」を参照してください。
プロビジョニングされたクラスターを作成すると、Amazon Redshift はデフォルトのパラメータグループも作成します。デフォルトのパラメータグループは編集できません。ただし、新しいクラスターを作成する前にカスタムパラメータグループを作成し、それをクラスターに関連付けることはできます。または、作成したクラスターに関連付けるパラメータグループを編集することもできます。また、カスタムパラメータグループを作成する際、またはゼロ ETL 統合を使用するために現在のパラメータグループを編集する際に、パラメータグループの大文字と小文字の区別をオンにする必要があります。
Amazon Redshift コンソールまたは AWS CLI を使用してカスタムパラメータグループを作成するには、「パラメータグループの作成」を参照してください。
データウェアハウスの大文字と小文字の区別を有効にする
作成中にパラメータグループをアタッチして、プロビジョニング済みのクラスターの大文字と小文字の区別を有効にできます。ただし、AWS Command Line Interface (AWS CLI) を使用してサーバーレスワークグループを更新できるのは、作成後のみです。これは、MySQL と PostgreSQL の大文字と小文字の区別をサポートするために必要です。enable_case_sensitive_identifier
は、データベース、テーブル、列の名前識別子が大文字と小文字を区別するかどうかを決定する設定値です。データウェアハウスでゼロ ETL 統合を作成するには、このパラメータをオンにする必要があります。詳細については、「enable_case_sensitive_identifier」を参照してください。
Amazon Redshift Serverless – AWS CLIを使用して Amazon Redshift Serverless の大文字と小文字の区別を有効にする の場合。Amazon Redshift Serverless の大文字と小文字の区別を有効にできるのは、AWS CLI からのみであることに注意が必要です。
Amazon Redshift でプロビジョニングされたクラスターの場合、次のトピックのいずれかを使用して、ターゲットクラスターの大文字と小文字の区別を有効にします。
AWS CLIを使用して Amazon Redshift Serverless の大文字と小文字の区別を有効にする
次の AWS CLI コマンドを実行して、ワークグループの大文字と小文字の区別を有効にします。
aws redshift-serverless update-workgroup \ --workgroup-name
target-workgroup
\ --config-parameters parameterKey=enable_case_sensitive_identifier,parameterValue=true
ワークグループのステータスが Active
になるのを待って、次のステップに進みます。
Amazon Redshift コンソールを使用して Amazon Redshift でプロビジョニングされたクラスターの大文字と小文字の区別を有効にする
AWS Management Consoleにサインインして、https://console.aws.amazon.com/redshiftv2/
で Amazon Redshift コンソールを開きます。 -
左側のナビゲーションペインで、[プロビジョニングされたクラスターダッシュボード] を選択します。
-
データをレプリケートするプロビジョニングされたクラスターを選択します。
-
左側のナビゲーションペインで、[設定] > [ワークロード管理] を選択します。
-
[ワークロード管理] ページで、[パラメータグループ] を選択します。
-
[パラメータ] タブを選択します。
-
[パラメータの編集] を選択して、[enable_case_sensitive_identifier] を [true] に変更します。
-
次に、保存を選択します。
AWS CLI を使用して Amazon Redshift でプロビジョニングされたクラスターの大文字と小文字の区別を有効にする
-
デフォルトのパラメータグループは編集できないため、ターミナルプログラムから次の AWS CLI コマンドを実行してカスタムパラメータグループを作成します。後で、それをプロビジョン済みのクラスターに関連付けます。
aws redshift create-cluster-parameter-group \ --parameter-group-name
zero-etl-params
\ --parameter-group-family redshift-1.0 \ --description "Param group for zero-ETL integrations" -
次の AWS CLI コマンドを実行して、パラメータグループの大文字と小文字の区別を有効にします。
aws redshift modify-cluster-parameter-group \ --parameter-group-name
zero-etl-params
\ --parameters ParameterName=enable_case_sensitive_identifier,ParameterValue=true -
次のコマンドを実行して、パラメータグループをクラスターに関連付けます。
aws redshift modify-cluster \ --cluster-identifier
target-cluster
\ --cluster-parameter-group-namezero-etl-params
-
プロビジョニングされたクラスターが利用可能になるまで待ちます。
describe-cluster
コマンドを使用して、クラスターのステータスを確認できます。続いて、次のコマンドを使用してクラスターを再起動します。aws redshift reboot-cluster \ --cluster-identifier
target-cluster
Amazon Redshift データウェアハウスの認可を設定する
統合ソースから Amazon Redshift データウェアハウスにデータをレプリケートするには、まず次の 2 つのエンティティを追加する必要があります。
-
認可されたプリンシパル — データウェアハウスにゼロ ETL 統合を作成できるユーザーまたはロールを特定します。
-
承認された統合ソース – データウェアハウスを更新できるソースクラスターを識別します。
承認されたプリンシパルと承認された統合ソースは、Amazon Redshift コンソールの [リソースポリシー] タブから、または Amazon Redshift PutResourcePolicy
API オペレーションを使用して設定できます。
承認されたプリンシパルを追加
Redshift Serverless ワークグループまたはプロビジョニングされたクラスターへのゼロ ETL 統合を作成するには、関連する名前空間またはプロビジョニングされたクラスターへのアクセスを許可します。
次の両方の条件に該当する場合は、このステップをスキップできます。
-
Redshift Serverless ワークグループまたはプロビジョンされたクラスターを所有する AWS アカウント は、ソースデータベースも所有しています。
-
そのプリンシパルは、この Redshift Serverless 名前空間またはプロビジョニングされたクラスターにゼロ ETL 統合を作成するアクセス許可を持つ ID ベースの IAM ポリシーに関連付けられています。
Amazon Redshift Serverless 名前空間に許可されたプリンシパルを追加する
-
Amazon Redshift コンソールの左側のナビゲーションペインで、[Redshift Serverless] を選択します。
-
[名前空間の設定] を選択してから名前空間を選択して、[リソースポリシー] タブに移動します。
-
[承認されたプリンシパルを追加] を選択します。
-
追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID を名前空間に入力します。アカウント ID は ARN として保存されます。
-
[Save changes] (変更の保存) をクリックします。
許可されたプリンシパルを Amazon Redshift でプロビジョニングされたクラスターに追加する
-
Amazon Redshift コンソールの左側のナビゲーションペインで、[プロビジョニングされたクラスターダッシュボード] を選択します。
-
[クラスター] を選択してからクラスターを選択し、[リソースポリシー] タブに移動します。
-
[承認されたプリンシパルを追加] を選択します。
-
追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID をクラスターに入力します。アカウント ID は ARN として保存されます。
-
[Save changes] (変更の保存) をクリックします。
承認された統合ソースを追加
ソースが Amazon Redshift データウェアハウスを更新できるようにするには、ソースを承認された統合ソースとして名前空間に追加する必要があります。
承認済みの統合ソースを Amazon Redshift Serverless 名前空間に追加する
-
Amazon Redshift コンソールで、[サーバーレスダッシュボード] に移動します。
-
名前空間の名前を選択します。
-
[リソースポリシー] タブに移動します。
-
[承認された統合ソースを追加] を選択します。
-
ゼロ ETL 統合のソースの ARN を指定します。
注記
承認された統合ソースを削除すると、データが名前空間にレプリケートされなくなります。このアクションにより、そのソースからこの名前空間へのゼロ ETL 統合がすべて非アクティブ化されます。
Amazon Redshift でプロビジョニングされたクラスターに承認された統合ソースを追加
-
Amazon Redshift コンソールで、[プロビジョニングされたクラスターダッシュボード] に移動します。
-
プロビジョニングされたクラスターの名前を選択します。
-
[リソースポリシー] タブに移動します。
-
[承認された統合ソースを追加] を選択します。
-
ゼロ ETL 統合のデータソースであるソースの ARN を指定します。
注記
承認された統合ソースを削除すると、データがプロビジョニングされたクラスターにレプリケートされなくなります。このアクションにより、そのソースからこの Amazon Redshift でプロビジョンされたクラスターへのゼロ ETL 統合がすべて非アクティブ化されます。
Amazon Redshift API を使用して承認を設定する
Amazon Redshift API オペレーションを使用して、ゼロ ETL 統合で機能するリソースポリシーを設定できます。
名前空間へのインバウンド統合を作成できるソースを制御するには、リソースポリシーを作成して、このポリシーを名前空間にアタッチします。リソースポリシーを使用して、統合にアクセスできるソースを指定できます。リソースポリシーはターゲットデータウェアハウスの名前空間にアタッチされ、ソースがライブデータをソースから Amazon Redshift にレプリケートするインバウンド統合を作成できるようにします。
リソースポリシーのサンプルは、次のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "redshift:AuthorizeInboundIntegration", "Condition": { "StringEquals": { "aws:SourceArn": "
source_arn
" } } }, { "Effect": "Allow", "Principal": { "AWS": "source_principal
" }, "Action": "redshift:CreateInboundIntegration" } ] }
統合のリソースポリシーの設定に適用できる Amazon Redshift API オペレーションの概要は次のとおりです。
-
リソースポリシーを永続化するには、PutResourcePolicy API オペレーションを使用します。別のリソースポリシーを指定すると、そのリソース上の以前のリソースポリシーが置き換えられます。上記のリソースポリシーのサンプルを使用して、次のとおりのアクションのアクセス許可を付与します。
-
CreateInboundIntegration
– ソースプリンシパルが、ソースからターゲットデータウェアハウスにレプリケートされるデータのインバウンド統合を作成することを許可します。 -
AuthorizeInboundIntegration
– Amazon Redshift が、ターゲットデータウェアハウスがソース ARN からレプリケートされたデータを受信できるかどうかを継続的に検証することを許可します。
-
-
既存のリソースポリシーを表示するには、GetResourcePolicy API オペレーションを使用します。
-
リソースからリソースポリシーを削除するには、DeleteResourcePolicy API オペレーションを使用します。
リソースポリシーの更新には、put-resource-policy AWS CLI コマンドも使用できます。
次のステップ
ターゲットの Amazon Redshift データウェアハウスの認可を設定したので、ゼロ ETL 統合を作成してデータのレプリケーションを開始できます。
ソースに応じて、次のいずれかを実行します。
-
Aurora のゼロ ETL 統合を作成するには、「Amazon Aurora ユーザーガイド」の「Amazon Aurora の Amazon Redshift とのゼロ ETL 統合の作成」を参照してください。
-
RDS のゼロ ETL 統合を作成するには、「Amazon RDS ユーザーガイド」の「Amazon RDS の Amazon Redshift とのゼロ ETL 統合の作成」を参照してください。