Amazon Redshift 기계 학습 관리를 위한 클러스터 및 구성 설정 - Amazon Redshift

Amazon Redshift 기계 학습 관리를 위한 클러스터 및 구성 설정

Amazon Redshift 기계 학습을 사용하기 전에 클러스터 설정을 완료하고 Amazon Redshift 기계 학습 사용 권한을 구성합니다.

Amazon Redshift 기계 학습 사용을 위한 클러스터 설정

Amazon Redshift 기계 학습을 사용하기 전에 다음 사전 조건을 충족합니다.

Amazon Redshift 관리자는 다음과 같은 일회성 설정을 수행합니다.

Amazon Redshift 기계 학습에 대해 일회성 클러스터 설정을 수행하려면

  1. AWS Management Console 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Redshift 클러스터를 생성합니다. 클러스터를 생성하는 동안 AWS Identity and Access Management(IAM) 정책을 연결해야 합니다. Amazon SageMaker에서 Amazon Redshift 기계 학습을 사용하는 데 필요한 권한에 대한 자세한 내용은 Amazon SageMaker에서 Amazon Redshift 기계 학습을 사용하는 데 필요한 권한을 참조하세요.

  2. 다음 방법 중 하나로 Amazon Redshift 기계 학습을 사용하는 데 필요한 IAM 역할을 생성합니다.

    • 간단한 작업은 Amazon Redshift 기계 학습에 사용할 IAM 역할(AmazonS3FullAccessAmazonSageMakerFullAccess 정책 포함)을 생성하는 것입니다. 예측 모델도 만들 계획이라면 AmazonForecastFullAccess 정책도 역할에 연결하세요.

    • CREATE MODEL과 같은 SQL 명령을 실행할 수 있는 권한을 가진 AmazonRedshiftAllCommandsFullAccess 정책이 있는 Amazon Redshift 콘솔을 통해 IAM 역할을 생성하는 것이 좋습니다. Amazon Redshift는 원활한 API 기반 메커니즘을 사용하여 사용자를 대신하여 AWS 계정에서 프로그래밍 방식으로 IAM 역할을 생성합니다. Amazon Redshift는 기존 AWS 관리형 정책을 IAM 역할에 자동으로 연결합니다. 이 접근 방식을 사용하면 Amazon Redshift 콘솔 내에 머물 수 있고 역할 생성을 위해 IAM 콘솔로 전환할 필요가 없습니다. 자세한 내용은 Amazon Redshift의 기본값으로 IAM 역할 생성을 참조하세요.

      IAM 역할이 클러스터의 기본값으로 생성되면 리소스 이름의 일부로 redshift를 포함하거나 Redshift 관련 태그를 사용하여 해당 리소스에 태그를 지정합니다.

      클러스터에 Enhanced Amazon VPC Routing이 설정된 경우 Amazon Redshift 콘솔을 통해 생성된 IAM 역할을 사용할 수 있습니다. 이 IAM 역할에는 AmazonRedshiftAllCommandsFullAccess 정책이 연결되어 있으며 정책에 다음 권한을 추가합니다. 이러한 추가 권한을 통해 Amazon Redshift는 계정에서 탄력적 네트워크 인터페이스(ENI)를 생성 및 삭제하고 Amazon EC2 또는 Amazon ECS에서 실행되는 컴파일 태스크에 연결할 수 있습니다. 이렇게 하면 인터넷 액세스가 차단된 Virtual Private Cloud(VPC) 내에서만 Amazon S3 버킷의 객체에 액세스할 수 있습니다.

      { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*" }
    • 보다 제한적인 정책으로 IAM 역할을 생성하려는 경우 다음 정책을 사용합니다. 필요에 맞게 이 정책을 수정할 수도 있습니다.

      Amazon S3 버킷 redshift-downloads/redshift-ml/은 다른 단계 및 예제에 사용되는 샘플 데이터가 저장되는 위치입니다. Amazon S3에서 데이터를 로드할 필요가 없으면 이 버킷을 제거할 수 있습니다. 또는 Amazon Redshift로 데이터를 로드하는 데 사용하는 다른 Amazon S3 버킷으로 바꿉니다.

      your-account-id, your-roleDOC-EXAMPLE-BUCKET 값은 CREATE MODEL 명령의 일부로 지정합니다.

      (옵션) Amazon Redshift 기계 학습을 사용하는 동안 AWS KMS 키를 지정하는 경우 샘플 정책의 AWS KMS 키 섹션을 사용합니다. your-kms-key 값은 CREATE MODEL 명령의 일부로 사용하는 키입니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "sagemaker:*Job*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:AbortMultipartUpload", "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Resource": [ "arn:aws:iam::<your-account-id>:role/<your-role>", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::redshift-downloads/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET, "arn:aws:s3:::redshift-downloads" ] } // Optional section needed if you use AWS KMS keys. ,{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] } ] }
  3. Amazon Redshift와 SageMaker가 다른 서비스와 상호 작용하는 역할을 맡도록 허용하려면 IAM 역할에 다음 신뢰 정책을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  4. (선택 사항) Amazon S3 버킷과 AWS KMS 키를 생성합니다. 이들은 Amazon Redshift가 Amazon SageMaker로 전송된 훈련 데이터를 저장하고 Amazon SageMaker에서 훈련된 모델을 수신하는 데 사용됩니다.

  5. (옵션) 여러 사용자 그룹에 대한 액세스를 제어하기 위해 IAM 역할과 Amazon S3 버킷의 다양한 조합을 생성합니다.

  6. (옵션) Redshift 클러스터에 대해 VPC 라우팅을 설정하면 Redshift 클러스터가 있는 VPC에 대해 Amazon S3 엔드포인트와 SageMaker 엔드포인트를 생성합니다. 이렇게 하면 CREATE MODEL을 수행하는 동안 서비스 간에 VPC를 통해 트래픽을 실행할 수 있습니다. VPC 라우팅에 대한 자세한 내용은 Amazon Redshift의 Enhanced VPC Routing 섹션을 참조하세요.

    하이퍼파라미터 튜닝 작업에 대해 프라이빗 VPC를 지정하는 데 필요한 권한에 대한 자세한 내용은 Amazon SageMaker에서 Amazon Redshift 기계 학습을 사용하는 데 필요한 권한을 참조하세요.

CREATE MODEL 문을 사용하여 다양한 사용 사례에 대한 모델 생성을 시작하는 방법에 대한 자세한 내용은 CREATE MODEL 섹션을 참조하세요.

권한 및 소유권 관리

테이블 또는 함수 등의 다른 데이터베이스 객체와 마찬가지로 Amazon Redshift는 기계 학습 모델 생성 및 사용을 액세스 제어 메커니즘에 바인딩합니다. 예측 함수를 실행하는 모델을 생성하기 위한 별도의 권한이 있습니다.

다음 예에서는 2개의 사용자 그룹인 retention_analyst_grp(모델 생성자)와 marketing_analyst_grp(모델 사용자)를 사용하여 Amazon Redshift의 액세스 제어 관리 방법을 보여줍니다. 보존 분석가는 획득한 권한을 통해 다른 사용자 집합이 사용할 수 있는 기계 학습 모델을 생성합니다.

슈퍼 사용자는 다음 문을 사용하여 기계 학습 모델 생성을 위한 GRANT USER 또는 GROUP 권한을 가질 수 있습니다.

GRANT CREATE MODEL TO GROUP retention_analyst_grp;

이 권한이 있는 사용자 또는 그룹은 사용자에게 SCHEMA에 대한 일반적인 CREATE 권한이 있는 경우 클러스터의 모든 스키마에서 모델을 생성할 수 있습니다. 기계 학습 모델은 테이블, 뷰, 프로시저 및 사용자 정의 함수와 유사한 방식으로 스키마 계층의 일부입니다.

demo_ml 스키마가 이미 있다고 가정하고 두 사용자 그룹에 다음과 같이 스키마에 대한 권한을 부여합니다.

GRANT CREATE, USAGE ON SCHEMA demo_ml TO GROUP retention_analyst_grp;
GRANT USAGE ON SCHEMA demo_ml TO GROUP marketing_analyst_grp;

다른 사용자가 기계 학습 추론 함수를 사용하도록 하려면 EXECUTE 권한을 부여합니다. 다음 예에서는 EXECUTE 권한을 사용하여 marketing_analyst_grp GROUP에 모델을 사용할 수 있는 권한을 부여합니다.

GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;

REVOKE 문을 CREATE MODEL 및 EXECUTE와 함께 사용하여 사용자 또는 그룹에서 해당 권한을 취소합니다. 권한 제어 명령에 대한 자세한 내용은 GRANTREVOKE 섹션을 참조하세요.