Amazon SageMaker 레이크하우스와 Amazon RDS 제로 ETL 통합 생성
Amazon SageMaker 레이크하우스와 Amazon RDS 제로 ETL 통합을 생성할 때 소스 RDS 데이터베이스와 대상 AWS Glue 관리형 카탈로그를 지정합니다. 암호화 설정을 사용자 지정하고 태그를 추가할 수도 있습니다. Amazon RDS는 소스 데이터베이스와 대상 간에 통합을 생성합니다. 통합이 활성화되면 소스 데이터베이스에 삽입한 모든 데이터가 구성된 대상에 복제됩니다.
사전 조건
Amazon SageMaker 레이크하우스와 제로 ETL 통합을 생성하기 전에 소스 데이터베이스와 대상 AWS Glue 관리형 카탈로그를 생성해야 합니다. 또한 데이터베이스를 인증된 통합 소스로 추가하여 카탈로그로의 복제를 허용해야 합니다.
각 단계를 완료하기 위한 지침은 Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합 시작하기 섹션을 참조하세요.
필수 권한
Amazon SageMaker 레이크하우스와 제로 ETL 통합을 생성하려면 특정 IAM 권한이 필요합니다. 최소한 다음 작업을 수행할 수 있는 권한이 필요합니다.
소스 RDS 데이터베이스를 위한 제로 ETL 통합을 생성합니다.
모든 제로 ETL 통합을 보고 삭제합니다.
대상 AWS Glue 관리형 카탈로그에 인바운드 통합을 생성합니다.
AWS Glue 관리형 카탈로그에서 사용하는 Amazon S3 버킷에 액세스합니다.
사용자 지정 암호화가 구성된 경우 암호화에 AWS KMS 키를 사용합니다.
Lake Formation에 리소스를 등록합니다.
AWS Glue 관리형 카탈로그에 리소스 정책을 적용하여 인바운드 통합을 승인합니다.
다음 샘플 정책은 Amazon SageMaker 레이크하우스와 통합을 생성하고 관리하는 데 필요한 최소 권한을 보여줍니다. 사용자 또는 역할에 더 광범위한 권한(예: AdministratorAccess
관리형 정책)이 있는 경우 이러한 정확한 권한이 필요하지 않을 수 있습니다.
또한 인바운드 통합을 승인하려면 대상 AWS Glue 관리형 카탈로그에서 리소스 정책을 구성해야 합니다. 다음 AWS CLI명령을 실행하여 리소스 정책을 적용합니다.
aws glue put-resource-policy \ --policy-in-json '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": [ "glue:AuthorizeInboundIntegration" ], "Resource": ["arn:aws:glue:
region
:account_id
:catalog/catalog_name
"], "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:rds:region
:account_id
:db:source_name
" } } }, { "Effect": "Allow", "Principal": { "AWS": "account_id
" }, "Action": ["glue:CreateInboundIntegration"], "Resource": ["arn:aws:glue:region
:account_id
:catalog/catalog_name
"] } ] }' \ --regionregion
참고
Glue 카탈로그 Amazon 리소스 이름(ARN) 형식은 다음과 같습니다.
-
Glue 카탈로그 –
arn:aws:glue:{region}:{account-id}:catalog/
catalog-name
다른 계정에서 대상 AWS Glue 관리형 카탈로그 선택
다른 AWS 계정에 있는 대상 AWS Glue 관리형 카탈로그를 지정하려면 현재 계정의 사용자가 대상 계정의 리소스에 액세스할 수 있도록 허용하는 역할을 만들어야 합니다. 자세한 내용은 소유한 다른 AWS 계정의 IAM 사용자에 액세스 권한 제공을 참조하세요.
역할에는 사용자가 대상 계정에서 사용 가능한 AWS Glue 카탈로그를 볼 수 있도록 허용하는 다음 권한이 있어야 합니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "glue:GetCatalog" ], "Resource":[ "*" ] } ] }
역할에는 대상 계정 ID를 지정하는 다음과 같은 신뢰 정책이 있어야 합니다.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": "arn:aws:iam::
{external-account-id}
:root" }, "Action":"sts:AssumeRole" } ] }
역할을 생성하기 위한 지침은 사용자 지정 신뢰 정책을 사용하여 역할 생성을 참조하세요.
Amazon SageMaker 레이크하우스와 제로 ETL 통합 생성
AWS Management Console, AWS CLI 또는 RDS API를 사용하여 Amazon SageMaker 레이크하우스와 제로 ETL 통합을 생성할 수 있습니다.
중요
Amazon SageMaker 레이크하우스와의 제로 ETL 통합은 새로 고침 또는 재동기화 작업을 지원하지 않습니다. 생성 후 통합에 문제가 발생하면 통합을 삭제하고 새 통합을 생성해야 합니다.
기본적으로 RDS for MySQL은 바이너리 로그 파일을 즉시 제거합니다. 제로 ETL 통합은 바이너리 로그를 사용하여 소스에서 대상으로 데이터를 복제하기 때문에 소스 데이터베이스의 보존 기간이 1시간 이상이어야 합니다. 통합을 생성하자마자 Amazon RDS는 선택한 소스 데이터베이스의 바이너리 로그 파일 보존 기간을 확인합니다. 현재 값이 0시간인 경우 Amazon RDS는 자동으로 값을 1시간으로 변경합니다. 0이 아니면 값이 동일하게 유지됩니다.
Amazon SageMaker 레이크하우스와 제로 ETL 통합을 생성하는 방법
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
왼쪽 탐색 창에서 제로 ETL 통합을 선택합니다.
-
제로 ETL 통합 생성을 선택합니다.
-
통합 식별자에 통합의 이름을 입력합니다. 이름은 최대 63자의 영숫자로 구성할 수 있으며, 하이픈을 포함할 수 있습니다.
-
다음을 선택합니다.
소스에서 데이터의 출처가 될 RDS 데이터베이스를 선택합니다.
참고
DB 파라미터가 올바르게 구성되지 않은 경우 RDS에서 알려줍니다. 이 메시지를 받으면 수정 요청을 선택하거나 수동으로 구성할 수 있습니다. 수동으로 수정하는 방법에 대한 지침은 1단계: 사용자 지정 DB 파라미터 그룹 생성 섹션을 참조하세요.
DB 파라미터를 수정하려면 재부팅해야 합니다. 통합을 생성하려면 먼저 재부팅을 완료하고 새 파라미터 값을 데이터베이스에 성공적으로 적용해야 합니다.
-
소스 데이터베이스가 성공적으로 구성되면 다음을 선택합니다.
대상에서 다음을 수행합니다.
(선택 사항) Amazon SageMaker 레이크하우스 대상에 다른 AWS 계정을 사용하려면 다른 계정 지정을 선택합니다. 그런 다음 AWS Glue 카탈로그를 표시할 권한이 있는 IAM 역할의 ARN을 입력합니다. IAM 역할을 생성하는 방법에 대한 지침은 다른 계정에서 대상 AWS Glue 관리형 카탈로그 선택 섹션을 참조하세요.
AWS Glue 카탈로그의 경우 소스 데이터베이스에서 복제된 데이터의 대상을 선택합니다. 기존 AWS Glue 관리형 카탈로그를 대상으로 선택할 수 있습니다.
대상 IAM 역할에는 대상 카탈로그에 대한 설명 권한이 필요하며 다음 권한이 있어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "glue:GetCatalog", "Resource": [ "arn:aws:glue:
region
:account-id
:catalog/*", "arn:aws:glue:region
:account-id
:catalog" ] } ] }대상 IAM 역할은 다음과 같은 신뢰 관계를 맺고 있어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
에서 생성된 Lake Formation 관리자 역할을 사용하여 대상 AWS Glue 관리형 카탈로그에 대한 권한을 대상 IAM 역할에 부여해야 합니다.
참고
RDS는 지정된 AWS Glue 관리형 카탈로그의 리소스 정책 또는 구성 설정이 올바르게 구성되지 않은 경우 알려줍니다. 이 메시지를 받으면 수정 요청을 선택하거나 수동으로 구성할 수 있습니다.
선택한 소스와 대상이 다른 AWS 계정에 있는 경우 Amazon RDS에서 이러한 설정을 수정할 수 없습니다. SageMaker Unified Studio에서 다른 계정으로 이동하여 수동으로 수정해야 합니다.
-
대상 AWS Glue 관리형 카탈로그가 올바르게 구성되면 다음을 선택합니다.
-
(선택 사항) 태그에서 통합에 하나 이상의 태그를 추가합니다. 자세한 내용은 Amazon RDS 리소스에 태그 지정 섹션을 참조하세요.
-
암호화에서 통합을 암호화할 방법을 지정합니다. 기본적으로 RDS는 AWS 소유 키를 사용하여 모든 통합을 암호화합니다. 고객 관리형 키를 대신 선택하려면 암호화 설정 사용자 지정을 활성화하고 암호화에 사용할 KMS 키를 선택합니다. 자세한 내용은 Amazon RDS 리소스 암호화 섹션을 참조하세요.
선택적으로 암호화 컨텍스트를 추가합니다. 자세한 내용은 AWS Key Management Service 개발자 가이드에서 암호화 컨텍스트를 참조하세요.
참고
Amazon RDS는 추가한 모든 항목 외에도 다음과 같은 암호화 컨텍스트 쌍을 추가합니다.
-
aws:glue:integration:arn
-IntegrationArn
-
aws:servicename:id
-glue
이렇게 하면 추가할 수 있는 전체 쌍 수가 8개에서 6개로 줄어들고 권한 부여 제약 조건의 전체 문자 제한이 늘어납니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 권한 부여 제약 사용을 참조하세요.
-
-
다음을 선택합니다.
통합 설정을 검토하고 제로 ETL 통합 생성을 선택합니다.
생성에 실패할 경우 Amazon Redshift가 구성된 Amazon RDS 제로 ETL 통합 문제 해결에서 문제 해결 단계를 확인하세요.
통합 상태는 생성 중인 동안 Creating
이며, 대상 Amazon SageMaker 레이크하우스의 상태는 Modifying
입니다. 이 기간 동안에는 카탈로그를 쿼리하거나 구성을 변경할 수 없습니다.
통합이 성공적으로 생성되면 통합과 대상 Amazon SageMaker 레이크하우스의 상태가 모두 Active
로 변경됩니다.
AWS CLI를 사용하여 제로 ETL 통합을 위한 대상 AWS Glue 관리형 카탈로그를 준비하려면 먼저 다음 옵션과 함께 create-integration-resource-property 명령을 사용해야 합니다.
-
--resource-arn
- 통합의 대상이 될 AWS Glue 관리형 카탈로그의 ARN을 지정합니다. -
--target-processing-properties
- 대상 AWS Glue 관리형 카탈로그에 액세스할 IAM 역할의 ARN을 지정합니다.
aws glue create-integration-resource-property --region us-east-1 --resource-arn arn:aws:glue:
region
:account_id
:catalog/catalog_name
\ --target-processing-properties '{"RoleArn" : "arn:aws:iam::account_id
:role/TargetIamRole"}'
AWS CLI를 사용하여 Amazon SageMaker 레이크하우스와 제로 ETL 통합을 생성하려면 다음 옵션과 함께 create-integration 명령을 사용합니다.
-
--integration-name
- 통합 이름을 지정합니다. -
--source-arn
- 통합의 소스가 될 RDS 데이터베이스의 ARN을 지정합니다. -
--target-arn
- 통합의 대상이 될 AWS Glue 관리형 카탈로그의 ARN을 지정합니다.
대상 LinuxmacOS, 또는Unix:
aws rds create-integration \ --integration-name
my-sagemaker-integration
\ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
\ --target-arn arn:aws:glue:{region}
:{account-id}
:catalog/catalog-name
Windows의 경우:
aws rds create-integration ^ --integration-name
my-sagemaker-integration
^ --source-arn arn:aws:rds:{region}
:{account-id}
:my-db
^ --target-arn arn:aws:glue:{region}
:{account-id}
:catalog/catalog-name
Amazon RDS API를 사용하여 Amazon SageMaker와 제로 ETL 통합을 생성하려면 다음 파라미터를 적용한 CreateIntegration
작업을 사용합니다.
참고
카탈로그 이름은 19자로 제한됩니다. IntegrationName 파라미터가 카탈로그 이름으로 사용될 경우 이 요구 사항을 충족하는지 확인합니다.
-
IntegrationName
- 통합 이름을 지정합니다. -
SourceArn
- 통합의 소스가 될 RDS 데이터베이스의 ARN을 지정합니다. -
TargetArn
- 통합의 대상이 될 AWS Glue 관리형 카탈로그의 ARN을 지정합니다.
고객 관리형 키를 사용하여 통합 암호화
Amazon SageMaker와 통합을 생성할 때 AWS 소유 키가 아닌 사용자 지정 KMS 키를 지정하는 경우 키 정책은 SageMaker Unified Studio 서비스 위탁자에 CreateGrant
작업에 대한 액세스 권한을 제공해야 합니다. 또한 현재 사용자가 DescribeKey
및 CreateGrant
작업을 수행할 수 있도록 허용해야 합니다.
다음 샘플 정책은 키 정책에 필요한 권한을 제공하는 방법을 보여줍니다. 여기에는 권한 범위를 더 축소하기 위한 컨텍스트 키가 포함됩니다.
{ "Version": "2012-10-17", "Id": "Key policy", "Statement": [ { "Sid": "Enables IAM user permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
{account-ID}
:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allows the Glue service principal to add a grant to an AWS KMS key", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}
":"{context-value}
" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current user or role to add a grant to a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}
:role/{role-name}
" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}
":"{context-value}
", "kms:ViaService": "rds.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } }, { "Sid": "Allows the current uer or role to retrieve information about a KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-ID}
:role/{role-name}
" }, "Action": "kms:DescribeKey", "Resource": "*" } ] }
자세한 내용은 AWS Key Management Service 개발자 안내서의 키 정책 생성을 참조하세요.
다음 단계
Amazon SageMaker와 제로 ETL 통합을 성공적으로 생성한 후 소스 RDS 데이터베이스에 데이터를 추가하고 Amazon SageMaker 레이크하우스에서 쿼리를 시작할 수 있습니다. 데이터는 자동으로 복제되어 분석 및 기계 학습 워크로드에 사용할 수 있습니다.