계정 간에 Amazon Redshift 클러스터에서 Amazon S3로 데이터 언로드 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

계정 간에 Amazon Redshift 클러스터에서 Amazon S3로 데이터 언로드

작성자: Andrew Kamel(AWS)

요약

애플리케이션을 테스트할 때는 테스트 환경에 프로덕션 데이터를 두는 것이 좋습니다. 프로덕션 데이터를 사용하면 개발 중인 애플리케이션을 보다 정확하게 평가할 수 있습니다.

이 패턴은 프로덕션 환경의 Amazon Redshift 클러스터에서 Amazon Web Services()의 개발 환경의 Amazon Simple Storage Service(Amazon S3) 버킷으로 데이터를 추출합니다AWS.

패턴은 다음을 포함하여 DEV 및 PROD 계정의 설정을 단계별로 수행합니다.

  • 필수 리소스

  • AWS Identity and Access Management (IAM) 역할

  • Amazon Redshift 연결을 지원하기 위한 서브넷, 보안 그룹 및 가상 프라이빗 클라우드(VPC)에 대한 네트워크 조정

  • 아키텍처를 테스트하기 위한 Python 런타임이 있는 AWS Lambda 함수 예제

Amazon Redshift 클러스터에 대한 액세스 권한을 부여하기 위해 패턴은를 사용하여 관련 자격 증명을 AWS Secrets Manager 저장합니다. 이점은 Amazon Redshift 클러스터의 위치를 알 필요 없이 Amazon Redshift 클러스터에 직접 연결하는 데 필요한 모든 정보를 확보하는 것입니다. 또한 보안 암호 사용을 모니터링할 수 있습니다.

Secrets Manager에 저장된 보안 암호에는 Amazon Redshift 클러스터의 호스트, 데이터베이스 이름, 포트 및 관련 보안 인증 정보가 포함됩니다.

이 패턴 사용 시 보안 고려 사항에 대한 자세한 내용은 모범 사례 섹션을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 쿼리하려는 데이터의 양에 따라 Lambda 함수가 시간 초과될 수 있습니다.

    실행에 최대 Lambda 제한 시간(15분)보다 많은 시간이 걸리는 경우 Lambda 코드에 비동기식 접근 방식을 사용합니다. 이 패턴의 코드 예제는 현재 비동기 처리를 지원하지 않는 Python용 psycopg2 라이브러리를 사용합니다.

  • 일부는 전혀 사용할 수 AWS 서비스 없습니다 AWS 리전. 리전 가용성은 AWS 서비스 리전별 섹션을 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량 페이지를 참조하고 서비스의 링크를 선택합니다.

아키텍처

다음 다이어그램은 DEV 및 PROD 계정이 있는 대상 아키텍처를 보여줍니다.

DEV 계정VPC의 Lambda와 PROD 계정의 Amazon RedshiftVPC입니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. DEV 계정의 Lambda 함수는 PROD 계정의 Secrets Manager에서 Amazon Redshift 자격 증명에 액세스하는 데 필요한 IAM 역할을 수임합니다.

    그러면 Lambda 함수가 Amazon Redshift 클러스터 보안 암호를 검색합니다.

  2. DEV 계정의 Lambda 함수는 정보를 사용하여 피어링된를 통해 PROD 계정의 Amazon Redshift 클러스터에 연결합니다VPCs.

    그런 다음 Lambda 함수는 PROD 계정의 Amazon Redshift 클러스터를 쿼리하기 위해 언로드 명령을 보냅니다.

  3. PROD 계정의 Amazon Redshift 클러스터는 DEV 계정의 S3 버킷에 액세스하기 위한 관련 IAM 역할을 수임합니다.

    Amazon Redshift 클러스터는 쿼리된 데이터를 DEV 계정의 S3 버킷으로 언로드합니다.

Amazon Redshift에서 데이터 쿼리

다음 다이어그램은 Amazon Redshift 자격 증명을 검색하고 Amazon Redshift 클러스터에 연결하는 데 사용되는 역할을 보여줍니다. 워크플로는 Lambda 함수에 의해 시작됩니다.

계정 간에 역할을 수임하기 위한 3단계 프로세스입니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. DEV 계정CrossAccount-SM-Read-Role의는 PROD 계정SM-Read-Role의를 수임합니다.

  2. SM-Read-Role 역할은 연결된 정책을 사용하여 Secrets Manager에서 보안 암호를 검색합니다.

  3. 자격 증명은 Amazon Redshift 클러스터에 액세스하는 데 사용됩니다.

Amazon S3에 데이터 업로드

다음 다이어그램은 데이터를 추출하고 Amazon S3에 업로드하기 위한 교차 계정 읽기-쓰기 프로세스를 보여줍니다. 워크플로는 Lambda 함수에 의해 시작됩니다. Amazon Redshift의 패턴 체인 IAM 역할입니다. Amazon Redshift 클러스터에서 오는 언로드 명령은를 수임CrossAccount-S3-Write-Role한 다음를 수임합니다S3-Write-Role. 이 역할 체인은 Amazon Redshift에 Amazon S3에 대한 액세스 권한을 부여합니다.

자격 증명을 가져오고, Amazon Redshift에 액세스하고, Amazon S3에 데이터를 업로드하는 역할입니다.

워크플로에는 다음 단계가 포함됩니다.

  1. DEV 계정CrossAccount-SM-Read-Role의는 PROD 계정SM-Read-Role의를 수임합니다.

  2. 는 Secrets Manager에서 Amazon Redshift 자격 증명을 SM-Read-Role 검색합니다.

  3. Lambda 함수는 Amazon Redshift 클러스터에 연결하고 쿼리를 전송합니다.

  4. Amazon Redshift 클러스터는를 수임합니다CrossAccount-S3-Write-Role.

  5. 는 DEV 계정S3-Write-Role에서를 CrossAccount-S3-Write-Role 수임합니다.

  6. 쿼리 결과는 DEV 계정의 S3 버킷으로 언로드됩니다.

도구

AWS 서비스

  • AWS Key Management Service (AWS KMS)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.

  • AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다.

  • Amazon Redshift는 AWS 클라우드의 관리형 페타바이트 규모 데이터 웨어하우스 서비스입니다.

  • AWS Secrets Manager는 암호를 포함하여 코드의 하드 코딩된 자격 증명을 Secrets Manager에 대한 API 호출로 대체하여 프로그래밍 방식으로 암호를 검색할 수 있도록 지원합니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

코드 리포지토리

이 패턴의 코드는 GitHub unload-redshift-to-s3-python 리포지토리에서 사용할 수 있습니다.

모범 사례

보안 면책 조항

이 솔루션을 구현하기 전에 다음과 같은 중요한 보안 권장 사항을 고려하세요.

  • 개발 및 프로덕션 계정을 연결하면 범위가 증가하고 전반적인 보안 태세가 저하될 수 있습니다. 이 솔루션을 일시적으로만 배포하고 필요한 데이터 부분을 추출한 다음 배포된 리소스를 즉시 폐기하는 것이 좋습니다. 리소스를 폐기하려면 Lambda 함수를 삭제하고,이 솔루션에 대해 생성된 IAM 역할 및 정책을 제거하고, 계정 간에 부여된 네트워크 액세스를 취소해야 합니다.

  • 프로덕션 환경에서 개발 환경으로 데이터를 복사하기 전에 보안 및 규정 준수 팀에 문의하십시오. 개인 식별 정보(PII), 보호 대상 건강 정보(PHI) 및 기타 기밀 또는 규제 데이터는 일반적으로 이러한 방식으로 복사해서는 안 됩니다. 공개적으로 사용할 수 있고 기밀이 아닌 정보(예: 숍 프런트엔드의 퍼블릭 주식 데이터)만 복사합니다. 가능하면 프로덕션 데이터를 사용하는 대신 데이터를 토큰화하거나 익명화하거나 합성 테스트 데이터를 생성하는 것을 고려해 보세요. AWS 보안 원칙 중 하나는 데이터로부터 사람들을 보호하는 것입니다. 즉, 개발자는 프로덕션 계정에서 작업을 수행해서는 안 됩니다.

  • 개발 계정에서 Lambda 함수에 대한 액세스를 제한합니다. 프로덕션 환경의 Amazon Redshift 클러스터에서 데이터를 읽을 수 있기 때문입니다.

  • 프로덕션 환경이 중단되지 않도록 다음 권장 사항을 구현합니다.

    • 테스트 및 개발 활동에 별도의 전용 개발 계정을 사용합니다.

    • 엄격한 네트워크 액세스 제어를 구현하고 계정 간 트래픽을 필요한 것으로만 제한합니다.

    • 프로덕션 환경 및 데이터 소스에 대한 액세스를 모니터링하고 감사합니다.

    • 관련된 모든 리소스 및 서비스에 대해 최소 권한 액세스 제어를 구현합니다.

    • AWS Secrets Manager 보안 암호 및 IAM 역할 액세스 키와 같은 자격 증명을 정기적으로 검토하고 교체합니다.

  • 이 문서에서 사용되는 서비스에 대한 다음 보안 설명서를 참조하세요.

프로덕션 데이터 및 리소스에 액세스할 때 보안이 최우선 순위입니다. 항상 모범 사례를 따르고, 최소 권한 액세스 제어를 구현하고, 보안 조치를 정기적으로 검토하고 업데이트합니다.

에픽

작업설명필요한 기술

Amazon Redshift 클러스터의 보안 암호를 생성합니다.

Amazon Redshift 클러스터의 보안 암호를 생성하려면 다음을 수행합니다.

  1. PROD 계정에서에 로그인 AWS Management Console하고에서 Secrets Manager 콘솔을 엽니다 https://console.aws.amazon.com/secretsmanager/.

  2. 새 보안 암호 저장을 선택합니다.

  3. Amazon Redshift 데이터 웨어하우스에 대한 자격 증명을 선택합니다.

  4. 사용자 이름암호에 인스턴스의 값을 입력하고 암호화 키의 값을 확인하거나 선택합니다.

  5. 보안 암호가 액세스할 Amazon Redshift 데이터 웨어하우스를 선택합니다.

  6. 보안 암호 이름Redshift-Creds-Secret에를 입력합니다.

  7. 기본 선택 사항으로 나머지 생성 단계를 완료한 다음 저장을 선택합니다.

  8. 보안 암호를 보고 보안 암호를 ARN 식별하기 위해 생성된 보안 암호 값을 기록해 둡니다.

DevOps 엔지니어

Secrets Manager에 액세스할 역할을 생성합니다.

역할을 생성하려면 다음을 수행합니다.

  1. PROD 계정에서 IAM 콘솔을 엽니다 https://console.aws.amazon.com/iam/.

  2. 정책을 선택하세요.

  3. 정책 생성을 선택합니다.

  4. JSON 탭을 선택한 다음 다음과 같은 IAM 정책을 입력합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<Redshift-Creds-Secret-ARN>" ] }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }

    Redshift-Creds-Secret-ARN를 Amazon Redshift 클러스터에 대한 정보와 자격 증명이 포함된 Secrets Manager 보안 암호의 Amazon 리소스 이름(ARN)으로 바꿉니다.

DevOps 엔지니어
작업설명필요한 기술

S3 버킷에 액세스할 역할을 생성합니다.

S3 버킷에 액세스하기 위한 역할을 생성하려면 다음을 수행합니다.

  1. DEV 계정에서 IAM 콘솔을 엽니다.

  2.  정책을 선택하세요.

  3. 정책 생성을 선택합니다.

  4.  JSON 탭을 선택한 다음 다음과 같은 IAM 정책을 입력합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "kmsstmt", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "<kms-key-arn>" ] }, { "Sid": "s3stmt", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ] } ] }

    mybucket를 액세스하려는 S3 버킷의 이름으로 바꿉니다. 또한 S3 버킷이 암호화된 경우를 S3 버킷을 암호화하는 데 사용되는 AWS Key Management Service (AWS KMS) 키ARN의 kms-key-arn로 바꿉니다. 그렇지 않으면 정책의 AWS KMS 섹션이 필요하지 않습니다.

  5. 정책 검토를 선택하고 정책 이름으로 S3-Write-Policy를 입력한 다음 정책 생성을 선택합니다.

  6. 탐색 창에서 Roles를 선택합니다.

  7.  Create role(역할 생성)을 선택합니다.

  8. 신뢰할 수 있는 엔터티 역할에서 사용자 지정 신뢰 정책을 선택합니다.

  9. 다음: 권한을 선택한 다음 생성한 S3-Write-Policy 정책을 선택합니다.

  10. 역할 이름으로 S3-Write-Role를 입력한 다음 역할 생성을 선택합니다.

DevOps 엔지니어

Amazon Redshift 역할을 생성합니다.

Amazon Redshift 역할을 생성하려면 다음을 수행합니다.

  1. PROD 계정에서 IAM 콘솔을 엽니다.

  2. 정책을 선택하세요.

  3. 정책 생성을 선택합니다.

  4. JSON 탭을 선택한 다음 다음과 같은 IAM 정책을 입력합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "S3-Write-Role-ARN" } ] }

    DEV 계정S3-Write-Role의에 ARN 대해를 S3-Write-Role-ARN로 바꿉니다.

  5. 정책 검토를 선택하고 정책 이름으로 S3-Write-Role-Assume-Policy를 입력한 다음 정책 생성을 선택합니다.

  6. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

  7. 신뢰할 수 있는 엔터티 유형으로 AWS 서비스를 선택한 다음 Redshift, Redshift - 사용자 지정 가능을 선택합니다.

  8. 다음: 권한을 선택한 다음 생성한 S3-Write-Role-Assume-Policy 정책을 선택합니다.

  9. 역할 이름으로 CrossAccount-S3-Write-Role를 입력한 다음 역할 생성을 선택합니다.

  10. IAM 역할을 Amazon Redshift 클러스터와 연결합니다.

DevOps 엔지니어
작업설명필요한 기술

Lambda 함수를 배포합니다.

피어링된에 Lambda 함수를 배포하려면 다음을 VPC수행합니다.

  1. 에서 Lambda 콘솔을 엽니다 https://console.aws.amazon.com/lambda/.

  2. 함수를 선택합니다.

  3. 함수 생성(Create function)을 선택합니다.

  4. 기본 정보(Basic information)에서 함수 이름(Function name)에 함수 이름을 입력합니다.

  5. 런타임에서 Python 3.8을 선택합니다.

  6. 기본 실행 역할 변경을 확장한 다음 다음을 수행합니다.

    1. 기존 역할 사용을 선택합니다.

    2. 기존 역할에서 이전에 생성한 CrossAccount-RM-Read-Role Lambda 역할을 선택합니다.

  7. 고급 설정을 확장하고 다음을 수행합니다.

    1. 활성화 VPC 확인란을 선택합니다.

    2. 의 경우 DEV 계정VPC에서 피어링된를 VPC선택합니다.

    3. 서브넷에서 프라이빗 서브넷을 선택합니다.

    4. 보안 그룹에서 기본 보안 그룹을 선택합니다.

  8. 함수 생성(Create function)을 선택합니다.

  9. Lambda 함수에 psycopg2 라이브러리를 계층으로 추가합니다.

    참고

    psycopg2-lambda-layer 리포지토리에서 이미 배포된 계층을 사용할 수 있습니다. AWS 리전 및 Python 런타임을 URL 기반으로를 사용해야 합니다.

DevOps 엔지니어
작업설명필요한 기술

필요한 리소스를 가져옵니다.

필요한 리소스를 가져오려면 다음 명령을 실행합니다.

import ast import boto3 import psycopg2 import base64 from botocore.exceptions import ClientError
앱 개발자

Lambda 핸들러 함수를 실행합니다.

Lambda 함수는 교차 계정 액세스 및 임시 자격 증명 관리에 AWS Security Token Service (AWS STS)를 사용합니다. 함수는 작업을 사용하여 AssumeRole API sm_read_role IAM 역할의 권한을 일시적으로 수임합니다.

Lambda 함수를 실행하려면 다음 예제 코드를 사용합니다.

def lambda_handler(event, context): sts_client = boto3.client('sts') # Secrets Manager Configurations secret_name = "redshift_creds" sm_region = "eu-west-1" sm_read_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/SM-Read-Role" # S3 Bucket Configurations s3_bucket_path = "s3://mybucket/" s3_bucket_region = "eu-west-1" s3_write_role = "arn:aws:iam::DEV_ACCOUNT_NUMBER:role/S3-Write-Role" # Redshift Configurations sql_query = "select * from category" redshift_db = "dev" redshift_s3_write_role = "arn:aws:iam::PROD_ACCOUNT_NUMBER:role/CrossAccount-S3-Write-Role" chained_s3_write_role = "%s,%s" % (redshift_s3_write_role, s3_write_role) assumed_role_object = sts_client.assume_role( RoleArn=sm_read_role, RoleSessionName="CrossAccountRoleAssumption", ExternalId="YOUR_EXTERNAL_ID", ) credentials = assumed_role_object['Credentials'] secret_dict = ast.literal_eval(get_secret(credentials, secret_name, sm_region)) execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db) return { 'statusCode': 200 }
앱 개발자

보안 암호를 가져옵니다.

Amazon Redshift 보안 암호를 가져오려면 다음 예제 코드를 사용합니다.

def get_secret(credentials, secret_name, sm_region): # Create a Secrets Manager client session = boto3.session.Session() sm_client = session.client( service_name='secretsmanager', aws_access_key_id=credentials['AccessKeyId'], aws_secret_access_key=credentials['SecretAccessKey'], aws_session_token=credentials['SessionToken'], region_name=sm_region ) try: get_secret_value_response = sm_client.get_secret_value( SecretId=secret_name ) except ClientError as e: print(e) raise e else: if 'SecretString' in get_secret_value_response: return get_secret_value_response['SecretString'] else: return base64.b64decode(get_secret_value_response['SecretBinary'])
앱 개발자

언로드 명령을 실행합니다.

데이터를 S3 버킷으로 언로드하려면 다음 예제 코드를 사용합니다.

def execute_query(secret_dict, sql_query, s3_bucket_path, chained_s3_write_role, s3_bucket_region, redshift_db): conn_string = "dbname='%s' port='%s' user='%s' password='%s' host='%s'" \ % (redshift_db, secret_dict["port"], secret_dict["username"], secret_dict["password"], secret_dict["host"]) con = psycopg2.connect(conn_string) unload_command = "UNLOAD ('{}') TO '{}' IAM_ROLE '{}' DELIMITER '|' REGION '{}';" \ .format(sql_query, s3_bucket_path + str(datetime.datetime.now()) + ".csv", chained_s3_write_role, s3_bucket_region) # Opening a cursor and run query cur = con.cursor() cur.execute(unload_command) print(cur.fetchone()) cur.close() con.close()
앱 개발자
작업설명필요한 기술

Lambda 함수를 삭제합니다.

계획되지 않은 비용이 발생하지 않도록 하려면 리소스와 DEV 및 PROD 계정 간의 연결을 제거합니다.

Lambda 함수를 제거하려면 다음을 수행합니다.

  1. 에서 AWS Lambda 콘솔을 엽니다 https://console.aws.amazon.com/lambda/.

  2. 생성한 Lambda 함수를 찾아 선택합니다.

  3. 작업을 선택한 후 삭제를 선택합니다.

  4. 삭제를 확인합니다.

DevOps 엔지니어

IAM 역할 및 정책을 제거합니다.

DEV 및 PROD 계정에서 IAM 역할 및 정책을 제거합니다.

DEV 계정에서 다음을 수행합니다.

  1. IAM 콘솔을 엽니다.

  2. 다음 역할을 삭제합니다.

    • S3-Write-Role

    • CrossAccount-RM-Read-Role (Lambda 역할)

  3. 연결된 정책을 삭제합니다.

    • S3-Write-Policy

    • PROD 계정 역할 수임 CrossAccount 정책

PROD 계정에서 다음을 수행합니다.

  1. IAM 콘솔을 엽니다.

  2. 다음 역할을 삭제합니다.

    • SM-Read-Role

    • CrossAccount-S3-Write-Role

  3. 연결된 정책을 삭제합니다.

    • Secrets Manager에 액세스하기 위한 CrossAccount 정책

    • S3-Write-Role-Assume-Policy

DevOps 엔지니어

Secrets Manager에서 보안 암호를 삭제합니다.

보안 암호를 삭제하려면 다음을 수행합니다.

  1. PROD 계정에서 Secrets Manager 콘솔을 엽니다.

  2. 라는 보안 암호를 찾아 선택합니다Redshift-Creds-Secret.

  3. [Actions]를 선택한 다음 [Delete secret]을 선택합니다.

  4. 삭제를 확인합니다.

DevOps 엔지니어

VPC 피어링 및 보안 그룹 규칙을 제거합니다.

VPC 피어링 및 보안 그룹 규칙을 제거하려면 다음을 수행합니다.

  1. PROD 계정에서에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 보안 그룹으로 이동합니다.

  3. Amazon Redshift 클러스터에서 사용하는 보안 그룹을 찾습니다.

  4. 인바운드 규칙을 편집하고 DEV 계정의 Lambda에서 연결을 허용하는 규칙을 제거합니다VPC.

  5. VPC 피어링 연결로 이동하여 피어링 연결을 삭제합니다.

DevOps 엔지니어

S3 버킷에서 데이터를 제거합니다.

Amazon S3에서 데이터를 제거하려면 다음을 수행합니다.

  1. DEV 계정에서 Amazon S3 콘솔을 엽니다 https://console.aws.amazon.com/s3/.

  2. 데이터 스토리지에 사용한 버킷을 찾습니다.

  3. 버킷 내의 객체를 삭제하거나 더 이상 필요하지 않은 경우 전체 버킷을 삭제합니다.

DevOps 엔지니어

AWS KMS 키를 정리합니다.

암호화를 위해 사용자 지정 AWS KMS 키를 생성한 경우 다음을 수행합니다.

  1. 에서 AWS KMS 콘솔을 엽니다 https://console.aws.amazon.com/kms/.

  2. 이 패턴에 대해 생성된 키를 찾습니다.

  3. 삭제할 키를 예약합니다. (키 삭제를 위한 필수 대기 기간이 있습니다.)

DevOps 엔지니어

Amazon CloudWatch 로그를 검토하고 삭제합니다.

CloudWatch 로그를 삭제하려면 다음을 수행합니다.

  1. 에서 CloudWatch 콘솔을 엽니다 https://console.aws.amazon.com/cloudwatch/.

  2. Lambda 함수 또는 Amazon Redshift 클러스터에서 생성한 로그 그룹이 있는지 확인합니다.

  3. 더 이상 필요하지 않은 경우 이러한 로그 그룹을 삭제합니다.

DevOps 엔지니어

관련 리소스

추가 정보

Amazon Redshift에서 Amazon S3로 데이터를 언로드한 후 Amazon Athena를 사용하여 데이터를 분석할 수 있습니다.

Amazon Athena는 대용량 데이터에 액세스해야 할 때 유용한 빅 데이터 쿼리 서비스입니다. 서버 또는 데이터베이스를 프로비저닝하지 않고도 Athena를 사용할 수 있습니다. Athena는 복잡한 쿼리를 지원하며 다양한 객체에서 실행할 수 있습니다.

대부분의 경우와 마찬가지로 Athena를 사용하면 복잡성이 증가하지 않고 쿼리를 실행하는 방법에 뛰어난 유연성을 제공할 수 있다는 AWS 서비스이점이 있습니다. Athena를 사용하는 경우 데이터 형식을 변경하지 않고 Amazon S3JSON에서 CSV 및와 같은 다양한 데이터 형식을 쿼리할 수 있습니다. 외부를 포함하여 다양한 소스에서 데이터를 쿼리할 수 있습니다 AWS. Athena는 서버를 관리할 필요가 없으므로 복잡성을 줄입니다. Athena는 쿼리를 실행하기 전에 데이터를 로드하거나 변경하지 않고 Amazon S3에서 직접 데이터를 읽습니다.