Kinesis Data Firehose
- 생산자로부터 데이터를 가져올 수 있는 매우 유용한 서비스이며, Kinesis Data Streams에서 봤었던 내용 모든 것이 생산자가 될 수 있다.
- 애플리케이션, 클라이언트 SDK 또는 Kinesis 에이전트는 모두 Kinesis Data Firehose로 생성될 수 있다. 그러나 Kinesis Data Stream을 Kinesis Data Firehose로 생성할 수도 있다.
- 아마존 CloudWatch 로그 및 이벤트는 Kinesis Data Firehose로 생성될 수 있으며, 이러한 모든 애플리케이션은 Kinesis Data Firehose로 레코드를 전송할 것이고, 그런 다음 Kinesis Data Firehose는 람다 함수를 사용하여 데이터 변환을 선택할 수 있지만 이는 선택사항이다.
- 데이터가 선택적으로 변환되면 일괄적으로 대상에 작성할 수 있다.
- Kinesis Data Firehose는 소스에서 데이터를 가져오고, 보통 Kinesis Data Streams가 가장 일반적이며 Kinesis Data Firehose는 데이터를 작성하는 방법을 알고 있기 때문에 코드를 작성하지 않고 데이터를 대상에 기록한다.
- Kinesis Data Firehose의 수신처는 세 개가 있다.
- 첫 번째 범주는 AWS 수신처로 'Amazon S3'(모든 데이터를 작성할 수 있다.), 'Amazon Redshift'(웨어하우징 데이터베이스), 'Amazon OpenSearch'
- 첫 번째 범주에서 먼저 아마존 S3에 데이터를 작성한 다음 Kinesis Data Firehose가 복사 명령을 실행하고, 이 복사 명령은 아마존 S3의 데이터를 아마존 Redshift로 복사한다.
- 두 번째 범주는 타사 파트너 수신처도 있는데 Kinesis Data Firehose는 Datadog, Splunk, New Relic, MongoDB로 데이터를 보낼 수 있다.
- 세 번째 범주는 HTTP 엔드포인트가 있는 자체 API가 있는 경우 Kinesis Data Firehose에서 사용자 지정 수신처로 데이터를 보내는 것이다. - 데이터가 모든 수신처로 전송되면 두 가지 옵션이 있다. 또한 모든 데이터를 백업으로 S3 버킷으로 보낼 수도 있고, 이 수신처에 기록하지 못한 데이터를 실패한 S3 버킷으로 보낼 수도 있다.
Kinesis Data Firehose
- 요약하자면 Kinesis Data Firehose는 완전 관리형 서비스이다.
- 관리가 필요 없으며, 자동 스케일링에 서버리스이므로 관리해야 할 서버가 없다.
- Redshift, 아마존 S3 및 OpenSearch와 같은 AWS 수신처로 데이터를 보낼 수 있다.
- Splunk, MongoDB, Datadog, New Relic등과 같은 타사 파트너와 HTTP 엔드포인트에 대한 사용자 지정 수신처는 Firehose를 통과하는 데이터에 대해서만 비용을 지불한다. - Firehose는 매우 좋은 데이터 가격 모델이며 거의 실시간으로 작동한다.
- 우리가 Firehose에서 수신처까지 일괄적으로 데이터를 작성하기 때문이다.
- 버커 간격이 있게되고, 0초를 하거나 버퍼링을 비활성화하면 더 높은 숫자로 설정할 수 있다. 최대900초까지 설정 가능하다.
- 버퍼링이 있는 경우, 버퍼 크기도 지정해야 한다. 그래서 최소 1메가 바이트이고 더 높은 숫자로 지정할 수 있다.
- 따라서 버퍼링이 잘 되어 있으면 Kinesis Data Firehose가 거의 실시간 서비스가 되는 것이다.
- 버퍼링이 없고 버퍼 간격이 0초인 경우에도 근실시간으로 간주되는데 데이터를 수신처로 전달하는 데 몇 초가 걸리기 때문이다. - 여러 데이터 형식과 전환, 변환, 압축을 지원하며 필요한 경우 람다를 사용하여 자체적인 데이터 변환을 쓸 수 있다.
- 실패한 모든 데이터나 모든 데이터를 백업 S3 버킷으로 보낼 수도 있다.
Kinesis Data Streams vs Kinesis Data Firehose
Kinesis Data Streams
- 대규모 데이터를 수집하는데 사용되는 스트리밍 서비스이다.
- 생산자와 소비자를 위한 사용자 지정 코드를 직접 작성한다.
- 실시간이므로 200밀리초 또는 70밀리초이며 스케일링은 직접 관리한다.
- 규모와 처리량을 높이기 위해 샤드 분할과 샤드 병합을 수행한다.
- 프로비저닝한 용량에 따라 비용을 지불하게 된다.
- 데이터의 저장 기간은 1일에서 365일까지 설정할 수 있다. 이를 통해 여러 소비자가 동일한 스트림에서 읽을 수 있게 하며 재생 기능도 지원한다.
Kinesis Data Firehose
- 수집 서비스이다.
- 데이터를 S3, Redshift, OpenSearch, 제3자 또는 사용자 지정 HTTP로 스트리밍 한다.
- 서버리스이며 근실시간이다.
- Kinesis Data Firehose를 통과하는 것만 비용을 지불하게 된다.
- 데이터 스토리지가 없으므로 Kinesis Data Firehose에서 데이터를 재생할 수 없다.
'AWS(Amazon Web Service)' 카테고리의 다른 글
[AWS] SQS vs SNS vs Kineseis (0) | 2024.11.29 |
---|---|
[AWS] AWS Integration & Messaging - Kinesis와 SQS FIFO에 대한 데이터 정렬 (0) | 2024.11.28 |
[AWS] AWS Integration & Messaging - Kinesis Data Streams (0) | 2024.11.26 |
[AWS] AWS Integration & Messaging - Kinesis (0) | 2024.11.25 |
[AWS] AWS Integration & Messaging - SNS + SQS : Fan Out (0) | 2024.11.24 |