기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 전송 모범 사례
다음 모범 사례는 Amazon Kinesis Data Streams에서 데이터 전송을 최대한 활용하는 데 도움이 됩니다. 이러한 권장 사항에서 참조되는 전송 지표의 전체 목록은 섹션을 참조하세요데이터 전송 모니터링.
처리량 및 데이터 신선도
-
스트림 처리량에 따라
DataFreshnessInSeconds파라미터를 설정합니다. 값이 낮을수록 전송 빈도가 증가하지만 출력 파일이 작아질 수 있습니다. 값이 높을수록 각 전송 주기에 대해 더 많은 데이터가 누적될 수 있습니다. -
DataFreshness지표에 Amazon CloudWatch 경보를 생성하여 전송 지연 시간이 허용 가능한 임계값을 초과하는 시기를 감지합니다. -
동일한 Kinesis Data Streams 스트림에서 여러 전송을 생성할 수 있습니다. 각 전송은 독립적으로 작동하므로 여러 대상으로 동시에 데이터를 전송할 수 있습니다.
스키마 관리(Apache Iceberg의 스트리밍 테이블)
-
전송을 생성하기 전에 AWS Glue 스키마 레지스트리에 스키마를 등록합니다. 전송은 등록된 스키마를 사용하여 대상 테이블 구조를 정의합니다.
-
배달은 스키마 진화를 지원하지 않습니다. 스키마가 변경되면 업데이트된 스키마를 사용하여 전송을 삭제하고 다시 생성해야 합니다.
-
생산자 측 스키마 검증을 사용하여 모든 레코드가 스트림에 기록되기 전에 등록된 스키마를 준수하는지 확인합니다. 이렇게 하면 실패한 레코드 전송이 최소화됩니다.
S3 객체 레이아웃(범용 Amazon S3 버킷)
-
다운스트림 소비자의 쿼리 패턴과 일치하는 출력 키 템플릿을 선택합니다. 예를 들어 쿼리가 시간 범위별로 자주 필터링되는 경우 날짜 기반 접두사를 사용합니다.
-
GZIP 또는 ZSTD 압축을 활성화하여 스토리지 비용을 줄이고 다운스트림 분석 워크로드의 읽기 성능을 개선합니다.
-
데이터 액세스 패턴에 따라 적절한 Amazon S3 스토리지 클래스를 선택합니다. 자주 액세스하는 데이터의 경우 STANDARD를 사용하고, Amazon S3가 액세스 계층 간에 객체를 자동으로 이동하도록 하려면 INTELLIGENT_TIERING을 사용하고, 밀리초 검색이 필요한 거의 액세스하지 않는 데이터의 경우 GLACIER_IR을 사용합니다.
보안
-
IAM 정책의 범위를 전송이 쓰는 특정 버킷 또는 테이블로 지정합니다. 와일드카드 리소스 ARNs 사용하지 마세요.
-
전송에 사용되는 IAM 역할의 신뢰 정책에
aws:SourceArn및aws:SourceAccount조건 키를 포함합니다. 이렇게 하면 특정 전송만 역할을 수임할 수 있으므로 혼동된 대리자 문제를 방지할 수 있습니다. -
AWS CloudTrail 로깅을 활성화하여 모든 전송 API 호출 및 구성 변경 사항을 감사합니다.
-
민감한 데이터에 고객 관리형 AWS KMS 키를 사용합니다. 이를 통해 키 교체, 액세스 정책 및 감사 추적을 완벽하게 제어할 수 있습니다.
Dead Letter Queue(DLQ)
-
항상 배달에 대한 배달 못한 편지 대기열을 구성합니다. 대상으로 전송할 수 없는 레코드는 이후 검사를 위해 배달 못한 편지 대기열로 전송됩니다.
-
CloudWatch의
DLQDeliverySuccess지표(DeliveryToS3.DLQDeliverySuccess또는DeliveryToIceberg.DLQDeliverySuccess)를 모니터링하여 레코드가 배달 못한 편지 대기열로 라우팅되는 시기를 감지합니다. -
배달 못한 편지 대기열 항목을 정기적으로 검사하여 전송 실패의 패턴을 식별하고 생산자 또는 전송 구성 수준에서 수정 조치를 취합니다.
모니터링
-
전송
DataFreshness및 실패한 레코드 지표(DeliveryToS3.FailedRecordCount또는DeliveryToIceberg.FailedRowCount)에 대한 CloudWatch 경보를 생성하여 전송 문제를 사전에 감지합니다. -
전송에 대해 CloudWatch Logs를 활성화하여 자세한 전송 진단 및 오류 메시지를 캡처합니다.
-
전송된 바이트 지표(
DeliveryToS3.BytesOut또는DeliveryToIceberg.BytesOut)를 추적하여 처리량을 모니터링하고 예상치 못한 데이터 볼륨 감소를 식별합니다.