ゼロ ETL 統合の開始方法 - Amazon Redshift

ゼロ ETL 統合の開始方法

Amazon Redshift でゼロ ETL 統合を設定する前に、統合ソースを設定し、必要なパラメータとアクセス許可を設定します。その後、Amazon Redshift コンソールと AWS CLI から残りの初期セットアップに進みます。

Aurora の Amazon Redshift とのゼロ ETL 統合を作成するには

Aurora の Amazon Redshift とのゼロ ETL 統合を作成するには、次を実行します。

  1. Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで カスタム DB クラスターパラメータグループを作成 します。

  2. Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで ソース Amazon Aurora DB クラスターを作成 します。

  3. Amazon Redshift コンソール: ターゲット Amazon Redshift データウェアハウスを作成して設定する.

  4. Amazon Aurora ユーザーガイド」の説明に従って、Amazon RDS コンソールで ゼロ ETL 統合を作成 します。

  5. Amazon Redshift コンソールまたはクエリエディタ v2 で、統合から Amazon Redshift データベースを作成 します。

    次に、クエリを実行して、レプリケートしたデータを使用してマテリアライズドビューを作成 します。

RDS の Amazon Redshift とのゼロ ETL 統合を作成するには

RDS の Amazon Redshift とのゼロ ETL 統合を作成するには、次を実行します。

  1. Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで カスタム DB パラメータグループを作成 します。

  2. Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで ソース Amazon RDS インスタンスを作成 します。

  3. Amazon Redshift コンソール: ターゲット Amazon Redshift データウェアハウスを作成して設定する.

  4. Amazon RDS ユーザーガイド」の説明に従って、Amazon RDS コンソールで ゼロ ETL 統合を作成 します。

  5. Amazon Redshift コンソールまたはクエリエディタ v2 で、統合から Amazon Redshift データベースを作成 します。

    次に、クエリを実行して、レプリケートしたデータを使用してマテリアライズドビューを作成 します。

Amazon RDS コンソールには、ソースデータベースとターゲットの Amazon Redshift データウェアハウスを指定するステップバイステップの統合作成フローが提供されています。問題が発生した場合は、Amazon RDS コンソールまたは Amazon Redshift コンソールのいずれかで手動で問題を解決せず、Amazon RDS に問題を自動的に修正させることを選択できます。

ターゲット Amazon Redshift データウェアハウスを作成して設定する

このステップに進む前に、統合ソースを作成して、ゼロ ETL 統合のソースタイプに必要なパラメータを設定します。

このステップでは、Redshift Serverless ワークグループやプロビジョン済みのクラスターなどのターゲット Amazon Redshift データウェアハウスを作成して設定します。

ターゲットデータウェアハウスには次の特性が必要です。

  • Amazon Redshift Serverless、またはインスタンスタイプ ra3.16xlarge、ra3.4xlarge、または ra3.xlplus のプロビジョニングされたクラスターを実行している。

  • 大文字と小文字の区別 (enable_case_sensitive_identifier) がオンになっている。詳細については、「データウェアハウスの大文字と小文字の区別を有効にする」を参照してください。

  • ターゲットデータウェアハウスが Amazon Redshift でプロビジョンしたクラスターの場合、暗号化されている。詳細については、「Amazon Redshift データベース暗号化」を参照してください。

  • 統合ソースと同じ AWS リージョンで作成されている。

注記

Aurora PostgreSQL と RDS for MySQL の Amazon Redshift とのゼロ ETL 統合の場合は、ターゲットデータウェアハウスについての次の点も考慮する必要があります。

  • preview_2023 トラックに基づいてプレビューでデータウェアハウスを作成する必要があります。プレビューの機能を本番環境で使用したり、プレビューのデータウェアハウスを本番環境に移行したりすることはできません。

  • Amazon Redshift でプロビジョンするクラスターを作成する場合、クラスターには少なくとも 2 つのノードが必要です。

  • Aurora PostgreSQL ソースの場合、AWS リージョンの米国東部 (オハイオ) にターゲットデータウェアハウスを作成する必要があります。Amazon RDS データベースプレビュー環境 を使用して Aurora PostgreSQL のゼロ ETL 統合のためのソースデータベースを作成する必要があることに注意します。

    RDS for MySQL ソースの場合、サポートされている AWS リージョンにターゲットデータウェアハウスを作成する必要があります。RDS for MySQL のゼロ ETL 統合が利用できる AWS リージョンのリストについては、「Amazon RDS ユーザーガイド」の「Amazon Redshift とのゼロ ETL 統合がサポートされているリージョン」を参照してください。

Aurora PostgreSQL と RDS for MySQL のゼロ ETL 統合のためのターゲットデータウェアハウスをプレビューで作成するには、デプロイタイプに応じて次のトピックのいずれかを参照してください。

  • プレビューの Amazon Redshift でプロビジョニングされたクラスターを作成するには、「プレビュークラスターの作成」を参照してください。ゼロ ETL 統合を使用するには、必ず preview_2023 トラックを選択してください。

  • プレビューの Amazon Redshift Serverless ワークグループを作成するには、「プレビューワークグループの作成」を参照してください。

Aurora MySQL のゼロ ETL 統合のためのターゲットデータウェアハウスを作成するには、デプロイタイプに応じて次のトピックのいずれかを参照してください。

プロビジョニングされたクラスターを作成すると、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 でプロビジョニングされたクラスターの大文字と小文字の区別を有効にする

  1. AWS Management Console にサインインして、 https://console.aws.amazon.com/redshiftv2/で Amazon Redshift コンソールを開きます。

  2. 左側のナビゲーションペインで、[プロビジョニングされたクラスターダッシュボード] を選択します。

  3. データをレプリケートするプロビジョニングされたクラスターを選択します。

  4. 左側のナビゲーションペインで、[設定] > [ワークロード管理] を選択します。

  5. [ワークロード管理] ページで、[パラメータグループ] を選択します。

  6. [パラメータ] タブを選択します。

  7. [パラメータの編集] を選択して、[enable_case_sensitive_identifier][true] に変更します。

  8. 次に、保存を選択します。

AWS CLI を使用して Amazon Redshift でプロビジョニングされたクラスターの大文字と小文字の区別を有効にする

  1. デフォルトのパラメータグループは編集できないため、ターミナルプログラムから次の 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"
  2. 次の AWS CLI コマンドを実行して、パラメータグループの大文字と小文字の区別を有効にします。

    aws redshift modify-cluster-parameter-group \ --parameter-group-name zero-etl-params \ --parameters ParameterName=enable_case_sensitive_identifier,ParameterValue=true
  3. 次のコマンドを実行して、パラメータグループをクラスターに関連付けます。

    aws redshift modify-cluster \ --cluster-identifier target-cluster \ --cluster-parameter-group-name zero-etl-params
  4. プロビジョニングされたクラスターが利用可能になるまで待ちます。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 名前空間に許可されたプリンシパルを追加する

  1. Amazon Redshift コンソールの左側のナビゲーションペインで、[Redshift Serverless] を選択します。

  2. [名前空間の設定] を選択してから名前空間を選択して、[リソースポリシー] タブに移動します。

  3. [承認されたプリンシパルを追加] を選択します。

  4. 追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID を名前空間に入力します。アカウント ID は ARN として保存されます。

  5. [Save changes] (変更の保存) をクリックします。

許可されたプリンシパルを Amazon Redshift でプロビジョニングされたクラスターに追加する

  1. Amazon Redshift コンソールの左側のナビゲーションペインで、[プロビジョニングされたクラスターダッシュボード] を選択します。

  2. [クラスター] を選択してからクラスターを選択し、[リソースポリシー] タブに移動します。

  3. [承認されたプリンシパルを追加] を選択します。

  4. 追加する承認されたプリンシパルごとに、ゼロ ETL 統合を作成するためにアクセス権限を付与する AWS ユーザーまたはロールの ARN、または AWS アカウント ID をクラスターに入力します。アカウント ID は ARN として保存されます。

  5. [Save changes] (変更の保存) をクリックします。

承認された統合ソースを追加

ソースが Amazon Redshift データウェアハウスを更新できるようにするには、ソースを承認された統合ソースとして名前空間に追加する必要があります。

承認済みの統合ソースを Amazon Redshift Serverless 名前空間に追加する

  1. Amazon Redshift コンソールで、[サーバーレスダッシュボード] に移動します。

  2. 名前空間の名前を選択します。

  3. [リソースポリシー] タブに移動します。

  4. [承認された統合ソースを追加] を選択します。

  5. ゼロ ETL 統合のソースの ARN を指定します。

注記

承認された統合ソースを削除すると、データが名前空間にレプリケートされなくなります。このアクションにより、そのソースからこの名前空間へのゼロ ETL 統合がすべて非アクティブ化されます。

Amazon Redshift でプロビジョニングされたクラスターに承認された統合ソースを追加

  1. Amazon Redshift コンソールで、[プロビジョニングされたクラスターダッシュボード] に移動します。

  2. プロビジョニングされたクラスターの名前を選択します。

  3. [リソースポリシー] タブに移動します。

  4. [承認された統合ソースを追加] を選択します。

  5. ゼロ 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 統合を作成してデータのレプリケーションを開始できます。

ソースに応じて、次のいずれかを実行します。