Amazon Data Firehose의 데이터 전송 이해
Firehose 스트림으로 데이터를 전송하면 선택한 대상에 자동으로 데이터가 전송됩니다. 다음 표는 다양한 대상으로의 데이터 전송을 설명합니다.
대상 | 세부 정보 |
---|---|
Amazon S3 |
Amazon S3로 데이터를 전송할 때 Firehose는 Firehose 스트림의 버퍼링 구성에 따라 여러 수신 레코드를 연결합니다. 그런 다음 Amazon S3 객체로 레코드를 Amazon S3에 전송합니다. 기본적으로 Firehose는 구분 기호 없이 데이터를 연결합니다. 레코드 사이에 새 줄 구분 기호를 사용하려면 Firehose 콘솔 구성 또는 API 파라미터에서 기능을 활성화하여 새 줄 구분 기호를 추가할 수 있습니다. Firehose와 Amazon S3 대상 사이의 데이터 전송은 TLS(HTTPS)로 암호화됩니다. |
Amazon Redshift |
Amazon Redshift로 데이터를 전송하는 경우 Firehose는 먼저 수신 데이터를 앞서 설명한 형식으로 S3 버킷에 전송합니다. 그러면 Firehose는 Amazon Redshift COPY 명령을 실행하여 S3 버킷의 데이터를 Amazon Redshift 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹으로 로드합니다. Amazon Data Firehose가 여러 수신 레코드를 Amazon S3 객체로 연결한 후 Amazon S3 객체를 Amazon Redshift 프로비저닝된 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 복사할 수 있는지 확인하세요. 자세한 내용은 Amazon Redshift COPY 명령 데이터 형식 파라미터를 참조하세요. |
OpenSearch Service 및 OpenSearch Serverless | OpenSearch Service 및 OpenSearch Serverless로 데이터를 전송하기 위해 Amazon Data Firehose는 Firehose 스트림의 버퍼링 구성에 따라 수신 레코드를 버퍼링합니다. 그런 다음 OpenSearch Service 클러스터 또는 OpenSearch Serverless 컬렉션에 여러 레코드를 인덱싱하기 위한 OpenSearch Service 또는 OpenSearch Serverless 대량 요청을 생성합니다. 레코드를 Amazon Data Firehose로 보내기 전에 레코드가 UTF-8로 인코딩되어 단일 줄 JSON 객체에 결합되었는지 확인해야 합니다. 또한 레코드 단위로 설정되는 명시적 인덱스를 이용해 대량 요청을 하기 위해서는 OpenSearch Service 클러스터에 대한 rest.action.multi.allow_explicit_index 옵션이 true(기본값)로 설정되어야 합니다. 자세한 정보는 Amazon OpenSearch Service 개발자 안내서의 OpenSearch Service Configure 고급 옵션을 참조하세요. |
Splunk |
Splunk로 데이터를 전송하기 위해 Amazon Data Firehose는 전송하는 바이트를 연결합니다. 줄 바꿈 문자와 같은 데이터의 구분 기호를 원하는 경우 이를 직접 삽입해야 합니다. Splunk가 모든 구분 기호를 구문 분석하도록 구성되어야 합니다. S3 오류 버킷(S3 백업)에 전송된 데이터를 다시 Splunk로 리드라이브하려면 Splunk 설명서 |
HTTP 엔드포인트 | 지원되는 타사 서비스 공급자가 소유한 HTTP 엔드포인트로 데이터를 전송하는 경우, 통합된 Amazon Lambda 서비스를 사용하여 수신 레코드를 서비스 공급자의 통합에서 예상하는 형식과 일치하는 형식으로 변환하는 함수를 생성할 수 있습니다. 허용되는 레코드 형식에 대한 자세한 내용은 대상으로 선택한 HTTP 엔드포인트의 타사 서비스 공급자에게 문의하세요. |
Snowflake |
Snowflake로 데이터를 전송하기 위해 Amazon Data Firehose는 내부적으로 1초 동안 데이터를 버퍼링하고 Snowflake 스트리밍 API 작업을 사용하여 Snowflake에 데이터를 삽입합니다. 기본적으로 삽입하는 레코드는 매초마다 플러시되고 Snowflake 테이블에 커밋됩니다. 삽입 호출을 수행하면 Firehose는 데이터가 Snowflake에 커밋되는 데 걸린 시간을 측정하는 CloudWatch 지표를 내보냅니다. 현재 Firehose는 단일 JSON 항목만 레코드 페이로드로 지원하며 JSON 배열은 지원하지 않습니다. 입력 페이로드가 유효한 JSON 객체인지 확인하고 불필요한 큰따옴표나 작은따옴표 또는 이스케이프 문자 없이 잘 구성되었는지 확인합니다. |
각 Firehose 대상에는 고유한 데이터 전송 빈도가 있습니다. 자세한 내용은 버퍼링 힌트 구성 섹션을 참조하세요.
중복 레코드
Amazon Data Firehose는 데이터 전송에 최소 한 번(at-least-once) 시맨틱을 사용합니다. 데이터 전송 시간이 초과되는 등의 일부 상황에서, 원본 데이터 전송 요청이 진행될 경우 Amazon Data Firehose에서 전송을 재시도하면 중복이 발생할 수 있습니다. 이는 Apache Iceberg 테이블 및 Snowflake 대상을 제외한 Amazon Data Firehose가 지원하는 모든 대상 유형에 적용됩니다.