기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
일반적인 문제
다음은 Firehose 스트림으로 작업하는 동안 발생할 수 있는 일반적인 문제를 해결하는 데 도움이 되는 문제 해결 팁입니다.
Firehose 스트림 사용 불가
일부 AWS 서비스는 동일한에 있는 Firehose 스트림에만 메시지와 이벤트를 보낼 수 있으므로 Firehose 스트림은 CloudWatch Logs, CloudWatch Events 또는 AWS IoT 작업의 대상으로 사용할 수 없습니다 AWS 리전. Firehose 스트림이 다른 서비스와 동일한 리전에 있는지 확인하세요.
대상에 데이터 없음
데이터 수집 문제가 없고 Firehose 스트림에 대해 방출된 지표가 양호해 보이는데도 대상에 데이터가 표시되지 않는 경우, 독자 로직을 확인합니다. 독자가 모든 데이터를 올바르게 구문 분석하고 있는지 확인하세요.
데이터 신선도 지표 증가 또는 미방출
데이터 신선도란 Firehose 스트림 내 데이터의 최신성을 측정하는 것입니다. 이는 Firehose 스트림에서 가장 오래된 데이터 레코드의 수명으로, Firehose가 데이터를 수집한 시점부터 현재까지의 시간으로 측정됩니다. Firehose는 데이터 신선도를 모니터링하는 데 사용할 수 있는 지표를 제공합니다. 지정된 대상에 대한 데이터 신선도 지표를 확인하는 방법은 CloudWatch 지표를 사용하여 Amazon Data Firehose 모니터링 섹션을 참조하세요.
모든 이벤트 또는 모든 문서에 대해 백업을 활성화한 경우, 개별 데이터 신선도 지표 두 가지를 모니터링해야 합니다. 하나는 기본 대상용이고, 다른 하나는 백업용입니다.
데이터 신선도 지표가 방출되지 않는 것은 해당 Firehose 스트림의 활성 전송이 없음을 의미합니다. 데이터 전송이 완전히 차단되거나 들어오는 데이터가 없을 때 이러한 현상이 발생합니다.
데이터 신선도 지표가 지속적으로 증가하는 것은 데이터 전송이 뒤쳐지고 있음을 의미합니다. 이것은 다음과 같은 이유 중 하나로 발생할 수 있습니다.
-
대상에서 그 전송 속도를 처리할 수 없습니다. 트래픽이 많아 Firehose 에 일시적인 오류가 발생하면 전송이 지연될 수 있습니다. 이 문제는 Amazon S3 이외의 대상에 발생할 수 있습니다(OpenSearch Service, Amazon Redshift 또는 Splunk에서 발생 가능). 대상의 용량이 들어오는 트래픽을 처리하기에 충분한지 확인합니다.
-
대상이 느립니다. Firehose의 지연 시간이 길면 데이터 전송이 지연될 수 있습니다. 대상의 대기 시간 지표를 모니터링합니다.
-
Lambda 함수가 느립니다. 이로 인해 Firehose 스트림의 데이터 수집 속도보다 데이터 전송 속도가 낮아질 수 있습니다. 가능하면 Lambda 함수의 효율성을 높이세요. 예를 들어 함수가 네트워크 IO를 수행하는 경우, 다중 스레드 또는 비동기 IO를 사용하여 병렬 처리를 늘립니다. 또한 CPU 할당량이 그에 따라 늘어날 수 있도록 Lambda 함수의 메모리 크기를 늘리는 것도 고려하세요. 그러면 Lambda 호출이 더 빨라질 수 있습니다. Lambda 함수 구성에 대한 자세한 내용은 AWS Lambda 함수 구성을 참조하세요.
-
데이터 전송 중에 오류가 발생했습니다. Amazon CloudWatch Logs를 사용하여 오류를 모니터링하는 방법에 대한 자세한 내용은 CloudWatch Logs를 사용하여 Amazon Data Firehose 모니터링을 참조하세요.
-
Firehose 스트림의 데이터 소스가 Kinesis 데이터 스트림인 경우 스로틀링이 발생할 수 있습니다.
ThrottledGetRecords
,ThrottledGetShardIterator
,ThrottledDescribeStream
지표를 확인하세요. Kinesis 데이터 스트림에 연결된 소비자가 여럿인 경우 다음을 고려하세요.-
ThrottledGetRecords
및ThrottledGetShardIterator
지표가 높으면 데이터 스트림에 대해 프로비저닝된 샤드 수를 늘리는 것이 좋습니다. -
ThrottledDescribeStream
가 높으면 KinesisStreamSourceConfiguration에서 구성된 역할에kinesis:listshards
권한을 추가하는 것이 좋습니다.
-
-
대상에 대한 낮은 버퍼링 힌트입니다. 이로 인해 Firehose가 대상까지 이동해야 하는 왕복 횟수가 증가하여 전송이 지연될 수 있습니다. 버퍼링 힌트의 값을 늘리는 것이 좋습니다. 자세한 내용은 BufferingHints를 참조하세요.
-
재시도 기간이 길면 오류가 자주 발생할 때 전송이 지연될 수 있습니다. 재시도 기간을 줄이는 것이 좋습니다. 이와 함께 오류를 모니터링하고 오류를 줄이세요. Amazon CloudWatch Logs를 사용하여 오류를 모니터링하는 방법에 대한 자세한 내용은 CloudWatch Logs를 사용하여 Amazon Data Firehose 모니터링을 참조하세요.
-
대상이 Splunk이고
DeliveryToSplunk.DataFreshness
가 높지만DeliveryToSplunk.Success
는 양호해 보이는 경우, Splunk 클러스터가 사용 중일 수 있습니다. 가능하면 Splunk 클러스터를 비우세요. 또는 AWS Support에 문의하여 Firehose가 Splunk 클러스터와 통신하는 데 사용하는 채널 수를 늘려 달라고 요청하세요.
Apache Parquet으로의 레코드 형식 변환 실패
이는 Set
유형이 포함된 DynamoDB 데이터를 가져와 Lambda를 통해 Firehose 스트림으로 스트리밍하고를 사용하여 레코드 형식을 Apache Parquet로 변환 AWS Glue Data Catalog 하는 경우에 발생합니다.
AWS Glue 크롤러가 DynamoDB 세트 데이터 형식(StringSet
, NumberSet
및 BinarySet
)을 인덱싱하면 데이터 카탈로그에 SET<BINARY>
각각 SET<STRING>
, SET<BIGINT>
및 로 저장됩니다. 하지만 Firehose에서 데이터 레코드를 Apache Parquet 형식으로 변환하려면 Apache Hive 데이터 유형이 필요합니다. 이 세트 유형은 유효한 Apache Hive 데이터 유형이 아니기 때문에 변환이 실패합니다. 변환이 수행되도록 하려면 데이터 카탈로그를 Apache Hive 데이터 유형으로 업데이트합니다. 데이터 카탈로그에서 set
를 array
로 변경하여 이 작업을 수행할 수 있습니다.
데이터 카탈로그set
array
에서 하나 이상의 AWS Glue 데이터 형식을에서 로 변경하려면
에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/glue/
AWS Glue 콘솔을 엽니다. -
왼쪽 창에 있는 데이터 카탈로그 머리글에서 테이블을 선택합니다.
-
테이블 목록에서 하나 이상의 데이터 유형을 수정해야 하는 테이블의 이름을 선택합니다. 그러면 해당 테이블에 대한 세부 정보 페이지로 이동합니다.
-
세부 정보 페이지의 상단 오른쪽 모서리에 있는 Edit schema(스키마 편집) 버튼을 선택합니다.
-
데이터 유형 열에서 첫 번째
set
데이터 유형을 선택합니다. -
열 유형 드롭다운 목록에서 유형을
set
에서array
로 변경합니다. -
ArraySchema 필드에서 사용자 시나리오에 적합한 데이터 유형에 따라
array<string>
,array<int>
또는array<binary>
를 입력합니다. -
업데이트를 선택합니다.
-
기타
set
유형을array
유형으로 변환하려면 이전 단계를 반복합니다. -
저장(Save)을 선택합니다.
Lambda로 변환한 객체의 필드 누락
Lambda 데이터 변환을 사용하여 JSON 데이터를 Parquet 객체로 변경하는 경우, 변환한 후에 일부 필드가 누락될 수 있습니다. JSON 객체에 대문자가 있고 대/소문자 구분이 false
로 설정되어 있는 경우 데이터 변환 후 JSON 키가 불일치하여 s3 버킷의 결과 Parquet 객체에 누락된 데이터가 발생할 수 있습니다.
이 문제를 해결하려면 호스 구성에서 deserializationOption:
case.insensitive
가 true
로 설정되어 있는지 확인하여 변환 후 JSON 키가 일치하도록 합니다.