

# ゼロ ETL 統合ターゲットの設定
<a name="zero-etl-target"></a>

ゼロ ETL 統合のターゲットを設定する際には、AWS が提供するいくつかのオプションがあります。ターゲットにできるのは、暗号化された Amazon Redshift データウェアハウスまたは Amazon SageMaker Lakehouse カタログです。

ゼロ ETL 統合のターゲットを選択する前に、次のいずれかのターゲットリソースを設定する必要があります。

ゼロ ETL 統合のターゲットの設定オプションは次のとおりです。
+ 通常の Amazon S3 ストレージで設定された Amazon SageMaker Lakehouse カタログとデータベース。「[通常の S3 ストレージを使用した Amazon SageMaker Lakehouse カタログの設定](#zero-etl-config-target-regular-s3)」を参照してください。
+ Amazon S3 Tables バケットで設定された Amazon SageMaker Lakehouse カタログ。「[ターゲットとしての Amazon S3 Tables の設定](#zero-etl-config-target-s3-tables)」を参照してください。
+ Amazon Redshift マネージドストレージで設定された Amazon SageMaker Lakehouse カタログ。「[Amazon Redshift マネージドストレージを使用した Amazon SageMaker Lakehouse カタログの設定](#zero-etl-config-target-redshift-managed-storage)」を参照してください。
+ Redshift 名前空間によって識別される Amazon Redshift データウェアハウス。「[Amazon Redshift データウェアハウスターゲットの設定](#zero-etl-config-target-redshift-data-warehouse)」を参照してください。

**注記**  
 作成後にゼロ ETL 統合のターゲットを変更することはできません。

## 通常の S3 ストレージを使用した Amazon SageMaker Lakehouse カタログの設定
<a name="zero-etl-config-target-regular-s3"></a>

このセクションでは、ゼロ ETL 統合で Amazon SageMaker Lakehouse カタログターゲットのストレージとして、通常の Amazon S3 バケットを設定するための前提条件とセットアップ手順について説明します。

### 統合を設定するための前提条件
<a name="zero-etl-config-target-regular-s3-prerequisites"></a>

通常の S3 ストレージを使用して Amazon SageMaker Lakehouse カタログとのゼロ ETL 統合を作成する前に、次のセットアップタスクを完了する必要があります。

1. AWS Glue データベースをセットアップする

1. カタログ RBAC ポリシーを指定する

1. ターゲット IAM ロールを作成する

通常の Amazon S3 ストレージで Amazon SageMaker Lakehouse カタログを設定したら、[ターゲットとの統合の設定](#zero-etl-config-target-configuring-the-integration) に進んで統合セットアップを完了できます。

## ターゲットとしての Amazon S3 Tables の設定
<a name="zero-etl-config-target-s3-tables"></a>

このセクションでは、ゼロ ETL 統合のターゲットとして Amazon S3 Tables を設定するための前提条件とセットアップ手順を説明します。

### 統合を設定するための前提条件
<a name="zero-etl-config-target-s3-tables-prerequisites"></a>

Amazon S3 Tables をターゲットとするゼロ ETL 統合を作成する前に、次のセットアップタスクを完了する必要があります。

1. Amazon S3 Tables バケットのセットアップ

1. カタログ RBAC ポリシーを指定する

1. ターゲット IAM ロールを作成する

### Amazon S3 Tables バケットのセットアップ
<a name="zero-etl-config-target-s3-tables-bucket"></a>

1. 「[Getting started with Amazon S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-getting-started.html)」の手順に従って、アカウントに S3 テーブルバケットを作成します。

1. 「[Integrating AWS services with Amazon S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html#table-integration-procedures)」の手順に従って、S3-Table バケットと Analytics の統合を有効にします。

### カタログ RBAC ポリシーを指定する
<a name="zero-etl-config-target-s3-tables-rbac"></a>

ソースと Amazon S3 Tables カタログターゲット間の統合を可能にするには、カタログ RBAC ポリシーに次のアクセス許可を追加する必要があります。

ターゲット AWS Glue Catalog リソースポリシーには、AuthorizeInboundIntegration への Glue サービスのアクセス許可を含める必要があります。さらに、CreateInboundIntegration アクセス許可が、統合を作成するソースプリンシパルまたはターゲット AWS Glue リソースポリシーで必要になります。

**注記**  
クロスアカウントシナリオでは、ソースプリンシパルとターゲット AWS Glue カタログリソースポリシーの両方に、リソースに対する glue:CreateInboundIntegration アクセス許可を含める必要があります。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Principal": {
        "AWS": [
        	"arn:aws:iam::123456789012:user/Alice"
        ]
      },
      "Effect": "Allow",
      "Action": [
        "glue:CreateInboundIntegration"
      ],
      "Resource": [
	      "arn:aws:glue:us-east-1:111122223333:catalog/<s3tablescatalog>/*"
      ],
      "Condition": {
        "StringLike": {
        "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/<table-name>"
        }
      }
    },
    {
      "Principal": {
        "Service": [
          "glue.amazonaws.com"
        ]
      },
      "Effect": "Allow",
      "Action": [
        "glue:AuthorizeInboundIntegration"
      ],
      "Resource": [
      "arn:aws:glue:us-east-1:111122223333:catalog/<s3tablescatalog>/*"
      ],
      "Condition": {
        "StringEquals": {
        "aws:SourceArn": "arn:aws:dynamodb:us-east-1:444455556666:table/<table-name>"
        }
      }
    }
  ]
}
```

------

**注記**  
`<s3tablescatalog>` を S3 テーブルのカタログ名に置き換えます。

### ターゲット IAM ロールを作成する
<a name="zero-etl-config-target-s3-tables-iam"></a>

以下の許可と信頼関係を持つターゲット IAM ロールを作成します。

IAM ポリシーの例:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "s3tables:ListTableBuckets",
        "s3tables:GetTableBucket",
        "s3tables:GetTableBucketEncryption",
        "s3tables:GetNamespace",
        "s3tables:CreateNamespace",
        "s3tables:ListNamespaces",
        "s3tables:CreateTable",
        "s3tables:GetTable",
        "s3tables:GetTableEncryption",
        "s3tables:ListTables",
        "s3tables:GetTableMetadataLocation",
        "s3tables:UpdateTableMetadataLocation",
        "s3tables:GetTableData",
        "s3tables:PutTableData"
      ],
      "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "cloudwatch:namespace": "AWS/Glue/ZeroETL"
        }
      },
      "Effect": "Allow"
    },
    {
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

------

AWS Glue サービスがターゲット IAM ロールを引き受けることができるようにするには、次の信頼ポリシーを追加します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "glue.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**注記**  
S3-Tables バケットリソースポリシーに、このターゲット IAM ロールの明示的な DENY ステートメントがないことを確認します。明示的な DENY があると、任意の ALLOW 許可が上書きされ、統合が正しく機能しなくなります。

## Amazon Redshift マネージドストレージを使用した Amazon SageMaker Lakehouse カタログの設定
<a name="zero-etl-config-target-redshift-managed-storage"></a>

このセクションでは、ゼロ ETL 統合のターゲットとして、Amazon Redshift マネージドストレージ (RMS) を使用した Amazon SageMaker Lakehouse カタログを設定するための前提条件とセットアップ手順について説明します。

### 統合を設定するための前提条件
<a name="zero-etl-config-target-rms-prerequisites"></a>

Redshift マネージドストレージを使用して Amazon SageMaker Lakehouse カタログとのゼロ ETL 統合を作成する前に、次のセットアップタスクを完了する必要があります。

1. Amazon Redshift クラスターまたは Serverless ワークグループをセットアップする

1. Lake Formation と Amazon Redshift の統合を登録する

1. Lake Formation でマネージドカタログを作成する

1. IAM 許可を設定する

### Amazon Redshift マネージドストレージのセットアップ
<a name="zero-etl-config-target-rms-setup"></a>

ゼロ ETL 統合用の Amazon Redshift マネージドストレージのセットアップをするには、以下を行います。

1. 既存の Amazon Redshift クラスターまたは Serverless ワークグループを使用するか、新たに作成します。正常に統合できるように、ターゲットの Amazon Redshift ワークグループまたはクラスターで `enable_case_sensitive_identifier` パラメータが有効になっていることを確認します。大文字と小文字の区別を有効にする方法の詳細については、Amazon Redshift 管理ガイドの[「データウェアハウスの大文字と小文字の区別を有効にする](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-setting-up.case-sensitivity.html)」を参照してください。

1. Redshift から AWS Lake Formation のカタログに統合を登録します。「[Registering Amazon Redshift clusters and namespaces to the AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/dg/iceberg-integration-register.html)」を参照してください。

1. AWS Lake Formation でフェデレーションカタログまたはマネージドカタログを作成します。詳細については、以下を参照してください。
   +  [ Bringing Amazon Redshift data into the AWS Glue Data Catalog ](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-namespaces-datacatalog.html) 
   +  [ Creating an Amazon Redshift managed catalog in the AWS Glue Data Catalog ](https://docs.aws.amazon.com/lake-formation/latest/dg/create-rms-catalog.html) 

1. ターゲットロールの IAM アクセス許可を設定します。ロールには、Redshift リソースと Lake Formation リソースの両方にアクセスするためのアクセス許可が必要です。ロールに最低限必要となるアクセス許可は以下のとおりです。
   + Redshift クラスターまたはワークグループへのアクセス許可
   + Lake Formation カタログへのアクセス許可
   + カタログでテーブルを作成および管理するためのアクセス許可
   + モニタリングのための CloudWatch および CloudWatch Logs のアクセス許可

Amazon Redshift マネージドストレージを使用して Amazon SageMaker Lakehouse カタログを設定したら、[ターゲットとの統合の設定](#zero-etl-config-target-configuring-the-integration) に進んで統合セットアップを完了できます。

## Amazon Redshift データウェアハウスターゲットの設定
<a name="zero-etl-config-target-redshift-data-warehouse"></a>

このセクションでは、ゼロ ETL 統合のターゲットとして Amazon Redshift データウェアハウスを設定するための前提条件とセットアップ手順について説明します。

### 統合を設定するための前提条件
<a name="zero-etl-config-target-redshift-prerequisites"></a>

Amazon Redshift データウェアハウスターゲットとのゼロ ETL 統合を作成する前に、次のセットアップタスクを完了する必要があります。

1. Amazon Redshift クラスターまたは Serverless ワークグループをセットアップする

1. 大文字と小文字の区別を設定する

1. IAM 許可を設定する

### Amazon Redshift データウェアハウスのセットアップ
<a name="zero-etl-config-target-redshift-setup"></a>

ゼロ ETL 統合用の Amazon Redshift データウェアハウスを設定するには、次を行います。

1. [[Amazon Redshift コンソール]](https://console.aws.amazon.com/redshiftv2/home) に移動し、**[クラスターの作成]** をクリックするか、既存のクラスターを使用します。Amazon Redshift Serverless の場合、**[ワークグループを作成]** をクリックします。

1. 新しいクラスターを作成する場合は、適切なクラスターサイズを選択し、クラスターが暗号化されていることを確認します。Serverless の場合は、要件に応じてワークグループ設定を構成します。

1. 正常に統合するため、ターゲットの Amazon Redshift ワークグループまたはクラスターで `enable_case_sensitive_identifier` パラメータが有効になっていることを確認します。大文字と小文字の区別を有効にする方法の詳細については、Amazon Redshift 管理ガイドの[「データウェアハウスの大文字と小文字の区別を有効にする](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-setting-up.case-sensitivity.html)」を参照してください。

1. ゼロ ETL 統合が Amazon Redshift データウェアハウスにアクセスできるように IAM アクセス許可を設定します。以下のアクセス許可を持つ IAM ロールを作成する必要があります。
   + Amazon Redshift クラスターまたはワークグループへのアクセス許可
   + Amazon Redshift でデータベースとテーブルを作成および管理するためのアクセス許可
   + モニタリングのための CloudWatch およびAmazon CloudWatch Logs のアクセス許可

1. Amazon Redshift ワークグループまたはクラスターのセットアップが完了したら、ゼロ ETL 統合のためにデータウェアハウスを設定する必要があります。詳細については、Amazon Redshift 管理ガイドの「[ゼロ ETL 統合の開始方法](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html)」を参照してください。

**注記**  
Amazon Redshift データウェアハウスをターゲットとして使用すると、統合により、指定されたデータベースにスキーマが作成され、レプリケートされたデータが保存されます。スキーマ名は統合名から導出されます。

Amazon Redshift データウェアハウスを設定したら、[ターゲットとの統合の設定](#zero-etl-config-target-configuring-the-integration) に進み、統合セットアップを完了できます。

## ターゲットとの統合の設定
<a name="zero-etl-config-target-configuring-the-integration"></a>

ターゲットリソースを設定し、接続を選択し、ソース IAM ロールを指定したら、次の手順に従って統合設定を完了します。

1. 前のステップで設定したターゲットを指定します。

1. AWS Glue **[修正をお願いする]** オプションを選択します。Amazon Redshift ターゲットの場合、これは次のようになります。
   + Amazon Redshift クラスターまたは Serverless ワークグループで承認されたサービスプリンシパルを適用します。
   + 承認された AWS Glue ソース ARN を Amazon Redshift クラスターまたは Serverless ワークグループに適用します。
   + 新しいパラメータグループを `enable_case_sensitive_identifier = true` に関連付けます。  
![\[このスクリーンショットは、ゼロ ETL 統合でのターゲットの選択を示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/zero-etl-target-selection.png)

1. 統合名を指定し、**[統合の作成と起動]** を選択します。

1. 統合がアクティブ状態になったら、統合の詳細ページに移動し、**[統合からデータベースを作成]** を選択します。

1. 最後に、Redshift クエリエディタに移動し、データベースに接続してスナップショットと増分データを検証できます。

**注記**  
名前空間またはカタログ名には、小文字の英数字とアンダースコアのみを使用できます。これは、AWS Glue データカタログで任意の名前 (特殊文字を含む) を使用してデータベースを作成できることとは異なります。