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

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

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

작성자: Andrew Kamel(AWS)

코드 리포지토리: aws-unload-redshift-to-s3-python

환경: 프로덕션

기술: 데이터베이스, 분석, 서버리스

워크로드: 오픈 소스

AWS 서비스: AWS Lambda, Amazon Redshift, Amazon S3, AWS Secrets Manager

요약

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

이 패턴은 프로덕션 환경의 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에서 직접 데이터를 읽습니다.