Amazon Athena CloudWatch 지표 커넥터 - Amazon Athena

Amazon Athena CloudWatch 지표 커넥터

Amazon Athena CloudWatch 지표 커넥터를 사용하면 Amazon Athena에서 SQL로 CloudWatch 지표 데이터를 쿼리할 수 있습니다.

Athena 자체에서 CloudWatch에 쿼리 지표를 게시하는 방법에 대한 자세한 내용은 CloudWatch 및 EventBridge를 사용하여 쿼리 모니터링 및 비용 제어 섹션을 참조하세요.

사전 조건

파라미터

이 섹션의 Lambda 환경 변수를 사용하여 CloudWatch 지표 커넥터를 구성합니다.

  • spill_bucket – Lambda 함수 제한을 초과하는 데이터에 대한 Amazon S3 버킷을 지정합니다.

  • spill_prefix – (선택 사항) 기본값은 athena-federation-spill이라는 지정된 spill_bucket의 하위 폴더입니다. 미리 정해진 일 수 또는 시간보다 오래된 유출을 삭제하려면 이 위치에서 Amazon S3 스토리지 수명 주기를 구성하는 것이 좋습니다.

  • spill_put_request_headers – (선택 사항) 유출에 사용되는 Amazon S3 putObject 요청에 대한 요청 헤더 및 값의 JSON 인코딩 맵입니다(예: {"x-amz-server-side-encryption" : "AES256"}). 다른 가능한 헤더를 알아보려면 Amazon Simple Storage Service API Reference(Amazon Simple Storage Service API 참조)의 PutObject를 참조하세요.

  • kms_key_id – (선택 사항) 기본적으로 Amazon S3로 유출된 모든 데이터는 AES-GCM 인증 암호화 모드와 임의로 생성된 키를 사용하여 암호화됩니다. Lambda 함수가 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331과 같이 KMS에서 생성된 더 강력한 암호화 키를 사용하도록 하려면 KMS 키 ID를 지정합니다.

  • disable_spill_encryption – (선택 사항) True로 설정하면 유출 암호화가 비활성화됩니다. S3로 유출되는 데이터가 AES-GCM을 사용하여 암호화되도록 기본값은 False입니다(임의로 생성된 키 또는 KMS를 사용하여 키 생성). 유출 암호화를 비활성화하면 특히 유출 위치가 서버 측 암호화를 사용하는 경우 성능이 향상될 수 있습니다.

또한 커넥터는 Amazon Athena Query Federation SDK ThrottlingInvoker 생성자를 통해 CloudWatch의 조절 이벤트를 처리하기 위한 AIMD 정체 제어를 지원합니다. 다음 선택적 환경 변수를 설정하여 기본 제한 동작을 조정할 수 있습니다.

  • throttle_initial_delay_ms – 첫 번째 혼잡 이벤트 이후에 적용된 초기 호출 지연입니다. 기본값은 10밀리초입니다.

  • throttle_max_delay_ms – 호출 간의 최대 지연입니다. TPS를 1000ms로 나누어 도출할 수 있습니다. 기본값은 1,000밀리초입니다.

  • throttle_decrease_factor – Athena가 호출 속도를 줄이는 비율입니다. 기본값은 0.5입니다.

  • throttle_increase_ms – Athena가 호출 지연을 줄이는 속도입니다. 기본값은 10밀리초입니다.

데이터베이스 및 테이블

Athena CloudWatch 지표 커넥터는 네임스페이스, 차원, 지표 및 지표 값을 default라는 단일 스키마의 두 테이블에 매핑합니다.

지표 테이블

metrics 테이블에는 네임스페이스, 세트 및 이름의 조합으로 고유하게 정의된 사용 가능한 지표가 포함됩니다. metrics 테이블에는 다음 열이 있습니다.

  • namespace – 네임스페이스를 포함하는 VARCHAR입니다.

  • metric_name – 지표 이름을 포함하는 VARCHAR입니다.

  • dimensionsdim_name (VARCHAR)dim_value (VARCHAR)로 구성된 STRUCT 객체의 LIST입니다.

  • statistic – 지표에 사용할 수 있는 VARCH 통계의 LIST입니다(예: p90, AVERAGE 등).

metric_samples 테이블

metric_samples 테이블에는 metrics 테이블의 각 지표에 대해 사용 가능한 지표 샘플이 포함되어 있습니다. metric_samples 테이블에는 다음 열이 있습니다.

  • namespace – 네임스페이스를 포함하는 VARCHAR입니다.

  • metric_name – 지표 이름을 포함하는 VARCHAR입니다.

  • dimensionsdim_name (VARCHAR)dim_value (VARCHAR)로 구성된 STRUCT 객체의 LIST입니다.

  • dim_name – 단일 차원 이름을 쉽게 필터링하는 데 사용할 수 있는 VARCHAR 편의 필드입니다.

  • dim_value – 단일 차원 값을 쉽게 필터링하는 데 사용할 수 있는 VARCHAR 편의 필드입니다.

  • period – 지표의 '기간'을 초 단위로 나타내는 INT 필드입니다(예: 60초 지표).

  • timestamp – 지표 샘플의 epoch 시간(초)을 나타내는 BIGINT 필드입니다.

  • value – 샘플 값을 포함하는 FLOAT8 필드입니다.

  • statistic – 샘플의 통계 유형을 포함하는 VARCHAR입니다(예: AVERAGE 또는 p90).

필수 권한

이 커넥터에 필요한 IAM 정책에 대한 자세한 내용을 알아보려면 athena-cloudwatch-metrics.yaml 파일의 Policies 섹션을 검토하세요. 다음 목록에 필요한 권한이 요약되어 있습니다.

  • Amazon S3 쓰기 액세스 - 대규모 쿼리의 결과 유출을 위해서는 커넥터에 Amazon S3 위치에 대한 쓰기 액세스 권한이 필요합니다.

  • Athena GetQueryExecution - 커넥터는 업스트림 Athena 쿼리가 종료된 경우 이 권한을 사용하여 빠른 실패를 수행합니다.

  • CloudWatch 지표 읽기 전용 – 커넥터는 이 권한을 사용하여 지표 데이터를 쿼리합니다.

  • CloudWatch Logs 쓰기 - 커넥터는 이 액세스 권한을 사용하여 진단 로그를 작성합니다.

성능

Athena CloudWatch 지표 커넥터는 쿼리에 필요한 로그 스트림 스캔을 병렬화하여 CloudWatch 지표에 대한 쿼리를 최적화하려고 시도합니다. 특정 기간, 지표, 네임스페이스 및 차원 필터에 대해 조건자 푸시다운은 Lambda 함수와 CloudWatch Logs 내에서 모두 수행됩니다.

라이선스 정보

Amazon Athena CloudWatch 지표 커넥터 프로젝트는 Apache-2.0 라이선스에 따라 사용이 허가됩니다.

추가 리소스

이 커넥터에 대한 추가 정보를 알아보려면 GitHub.com의 해당 사이트를 참조하세요.