S3 Tables 통합을 사용한 액세스 로그 - Amazon CloudWatch Logs

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

S3 Tables 통합을 사용한 액세스 로그

CloudWatch와 S3 Tables 통합을 사용하면 Amazon Athena, Amazon Redshift 및 Apache Iceberg 호환 스토어에 대한 연결을 지원하는 타사 도구와 같은 분석 엔진을 사용하여 CloudWatch에 수집된 로그 데이터에 액세스할 수 있습니다. 이 통합을 통해 원하는 도구를 사용하여 포괄적인 로그 분석을 수행하고 CloudWatch Logs의 데이터를 비 CloudWatch 데이터와 상호 연관시킬 수 있습니다.

S3 테이블 통합 이해

Amazon S3 Tables Integration은 CloudWatch Logs의 로그를 관리형 Amazon S3 테이블로 사용할 수 있게 해주는 완전 관리형 솔루션입니다. 이 통합을 통해 CloudWatch Logs 기능 외에도 로그를 분석하는 방법에 대한 유연성을 높일 수 있습니다.

통합은 관리형 Amazon S3 테이블 버킷(aws-cloudwatch)을 생성하고 데이터 소스 이름 및 유형(CloudWatch Logs 콘솔의 로그 관리 > 데이터 소스 탭에서 관리 가능)을 기반으로 특정 로그 소스를 Amazon S3 테이블과 연결하는 방식으로 작동합니다. 연결되면 Apache Iceberg 형식을 사용하여 Amazon S3 Tables를 통해 CloudWatch Logs 데이터에 액세스할 수 있습니다. 이 형식은 다양한 분석 엔진이 데이터를 효율적으로 쿼리할 수 있는 표준화된 방법을 제공합니다.

핵심 구성 요소

데이터 소스 연결

데이터 소스 및 유형 기준에 따라 특정 CloudWatch Logs 소스를 S3 Tables 통합에 연결하는 프로세스입니다.

Apache Iceberg 테이블

구조화된 데이터 스토리지를 제공하고 여러 분석 엔진과의 호환성을 지원하는 S3 Tables에서 사용하는 기본 테이블 형식입니다.

S3 테이블로의 데이터 흐름

CloudWatch Logs와 S3 Tables 간의 데이터 흐름을 이해하면 통합을 계획하고 로그 데이터를 효과적으로 관리하는 데 도움이 됩니다.

연결을 생성하면 CloudWatch Logs는 연결된 데이터 소스 이름 및 유형과 일치하는 새 로그 이벤트를 CloudWatch 관리형 S3 테이블 버킷에 자동으로 전송합니다. 이러한 이벤트는 해당 데이터 소스에 해당하는 테이블 아래의 로그 네임스페이스에서 찾을 수 있습니다. 통합은 연결을 생성한 후 추가된 로그 이벤트만 처리하고 연결이 생성되기 전에의 로그를 채우지 않습니다.

S3 테이블 버킷의 데이터 보존은 로그 그룹에 설정된 보존 정책과 일치합니다. 예를 들어 로그 그룹을 1일 보존으로 설정하면 CloudWatch Logs는 하루 후에 CloudWatch Logs와 S3 테이블 모두에서 데이터를 제거합니다. 로그 그룹 또는 로그 스트림을 삭제하면 CloudWatch Logs도 S3 테이블 버킷에서 데이터를 제거합니다.

S3 테이블 통합을 사용해야 하는 경우

S3 Tables 통합을 사용하여 로그 데이터를 다른 외부 또는 비CloudWatch 데이터와 연관시키거나 Amazon Athena와 같은 다른 분석 도구를 사용하여 CloudWatch Logs 데이터에 대한 분석을 수행하려는 경우를 고려해 보세요. CloudWatch Logs에서 사용할 수 있는 것 이상의 기능이 필요한 경우이 통합을 사용합니다. 이 통합은 다음과 같은 경우에 특히 유용합니다.

  • 대량의 로그 데이터에서 복잡한 SQL과 유사한 쿼리를 실행해야 합니다.

  • 로그 분석을 기존 분석 워크플로 및 도구와 통합하려는 경우

  • 여러 데이터 소스에 걸친 포괄적인 로그 분석 기능이 필요합니다.

기존 CloudWatch 수집 및 스토리지 요금 외에이 통합을 통해 생성된 S3 테이블에 대한 추가 스토리지 또는 테이블 유지 관리 요금은 없습니다.

사전 조건

통합을 구현하기 전에 다음이 있는지 확인합니다.

  • 기존 CloudWatch Logs 데이터

  • 다음 섹션에 설명된 대로 CloudWatch Logs와 S3 Tables 간의 교차 서비스 액세스를 위한 적절한 IAM 권한

IAM 권한

CloudWatch Logs를 S3 Tables와 통합하려면 통합을 설정하는 사용자 또는 역할과 CloudWatch Logs가 S3 Tables에 데이터를 쓰기 위해 수임하는 서비스 역할이라는 두 개의 개별 엔터티에 대한 IAM 권한을 구성해야 합니다.

통합을 생성하는 역할 또는 사용자의 경우

통합을 설정하는 사용자 또는 역할에는 다음 권한이 필요합니다.

  • observabilityadmin:CreateS3TableIntegration 통합을 생성하고 소스를 logs:AssociateSourceToS3TableIntegration 추가하려면

  • s3tables:CreateTableBuckets3tables:PutTableBucketEncryption, 및 s3tables:PutTableBucketPolicy- S3 테이블 버킷 구성

서비스 역할의 경우

CloudWatch Logs가 테이블 버킷에 데이터를 쓰는 데 사용하는 IAM 서비스 역할에 다음 IAM 정책을 연결합니다. 이 정책은 테이블에 쓸 수 있는 권한을 부여합니다. aws-region, 123456789012log-group-name을 AWS 리전, 계정 ID 및 로그 그룹 이름으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:integrateWithS3Table" ], "Resource": ["arn:aws:logs:aws-region:123456789012:log-group:log-group-name"], "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

CloudWatch Logs가 로그 데이터를 S3 Tables에 쓰기 위해 수임할 IAM 서비스 역할에 다음 신뢰 정책을 연결합니다. 통합 설정 중에이 역할을 생성하거나 선택합니다. 조건은 CloudWatch Logs가 지정된 계정 및 로그 그룹에 대해서만 역할을 수임할 수 있도록 역할을 제한합니다. aws-region, 123456789012log-group-name을 AWS 리전, 계정 ID 및 로그 그룹 이름으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:aws-region:123456789012:log-group:log-group-name"] } } } ] }

KMS 키 정책(암호화된 데이터용)

고객 관리형 키를 사용하여 로그 데이터를 암호화하는 경우 CloudWatch 서비스 보안 주체와 S3 Tables 유지 관리 서비스 보안 주체에게 키에 대한 액세스 권한을 부여해야 합니다. KMS 키 정책에 다음 문을 추가합니다. 자리 표시자 값을 AWS 계정 ID, 리전, KMS 키 ID 및 S3 테이블 또는 테이블 버킷 ARN으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableSystemTablesKeyUsage", "Effect": "Allow", "Principal": { "Service": "systemtables.cloudwatch.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:aws-region:123456789012:key/key-id", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:aws-region:123456789012:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "<table-or-table-bucket-arn>/*" } } } ] }

시작하기

S3 Tables Integration을 시작하려면 CloudWatch Logs와 S3 Tables 간의 통합을 설정해야 합니다. 이 프로세스에는 데이터 소스 연결 구성 및 적절한 IAM 권한 설정이 포함됩니다.

S3 테이블 통합을 생성하려면
  1. https://console.aws.amazon.com/cloudwatch/ CloudWatch Logs 콘솔을 엽니다.

  2. 설정, 전역, S3 테이블 통합 생성을 선택합니다.

  3. S3 테이블에서 로그를 암호화하는 방법과 CloudWatch Logs가 S3 테이블에 로그를 쓰는 데 사용할 역할을 사용자 지정합니다.

  4. S3 테이블 통합 생성을 선택합니다.

소스를 S3 테이블 통합에 연결하려면
  1. https://console.aws.amazon.com/cloudwatch/ CloudWatch Logs 콘솔을 엽니다.

  2. 설정, 전역, S3 테이블 통합 관리를 선택합니다.

  3. 데이터 소스 연결을 선택합니다.

  4. 통합을 활성화하려는 데이터 소스 이름과 데이터 소스 유형을 선택합니다.

  5. 데이터 소스 연결을 선택합니다.

로그 관리 페이지에서 소스를 S3 테이블 통합에 연결하려면
  1. https://console.aws.amazon.com/cloudwatch/ CloudWatch Logs 콘솔을 엽니다.

  2. 탐색 창에서 로그 관리를 선택합니다.

  3. 데이터 소스 탭을 선택합니다.

  4. 통합하려는 데이터 소스 이름과 데이터 소스 유형을 선택합니다.

  5. 데이터 소스 작업을 선택합니다.

  6. S3 테이블 통합과 연결을 선택합니다.

  7. 데이터 소스를 검토한 다음 데이터 소스 연결을 선택합니다.