Amazon Kinesis Data Firehose
Q: Amazon Kinesis Data Firehose란 무엇입니까?
스트리밍 데이터를 데이터 스토어와 분석 도구에 로드하는 가장 쉬운 방법입니다. 스트리밍 데이터를 캡처하고 변환한 후 Amazon S3, Amazon Redshift, Amazon Elasticsearch Service 및 Splunk로 로드하여 이미 사용하고 있는 기존 비즈니스 인텔리전스 도구 및 대시보드를 통해 거의 실시간으로 분석할 수 있습니다. Amazon Kinesis Firehose는 완전관리형 서비스로서 데이터 처리량에 대응하여 자동으로 확장되며 지속적인 관리가 필요 없습니다. 또한, 데이터를 로드하기 전에 배치, 압축 및 암호화하여 대상 스토리지의 사용량을 최소화하고 보안을 강화할 수 있습니다.
Q: 전송 스트림이란 무엇입니까?
전송 스트림은 Amazon Kinesis Data Firehose의 기본 엔터티입니다. 전송 스트림을 생성한 후, 데이터를 전송 스트림으로 보내어 Firehose를 사용합니다.
Q: 레코드란 무엇입니까?
레코드는 사용자의 데이터 생산자가 전송 스트림에 전송하는 대상 데이터입니다. 레코드의 최대 크기(Base64 인코딩 전)는 1,024KB입니다.
Q: 대상이란 무엇입니까?
대상은 데이터가 전송되는 데이터 스토어입니다. 현재 Amazon Kinesis Data Firehose에서
는 전송 대상으로 Amazon S3, Amazon Redshift, Amazon Elasticsearch Service 및 Splunk를 지원합니다.
Amazon Kinesis Data Firehose
Q: Amazon Kinesis Data Streams란 무엇입니까?
Amazon Kinesis Data Streams를 사용하면 특수 요구에 맞춰 스트리밍 데이터를 처리 또는 분석하는 사용자 지정 애플리케이션을 구축할 수 있습니다. 수십 만개의 소스에서 클릭 스트림, 애플리케이션 로그, 소셜 미디어와 같은 다양한 유형의 데이터를 Amazon Kinesis 데이터 스트림에 지속적으로 추가할 수 있습니다. 그러면 몇 초 안에 Amazon Kinesis 애플리케이션에서는 스트림의 해당 데이터를 읽고 처리할 수 있습니다.
Q: Amazon Kinesis Data Streams로 어떤 작업을 할 수 있습니까?
데이터 생산자의 데이터를 신속하게 이동한 다음 지속적으로 데이터를 처리하고, 데이터 스토어로 보내기 전에 데이터를 변환하고, 실시간 지표 및 분석을 수행하거나 이후 처리를 위해 더욱 복잡한 데이터 스트림을 추출하는 데 유용합니다. 다음은 Amazon Kinesis Data Streams 사용에 대한 일반적인 시나리오입니다.
- 로그 및 데이터 피드 수용 시간 단축: 데이터 일괄 처리를 기다리는 대신 데이터가 생산되면 바로 데이터 생산자가 Amazon Kinesis 데이터 스트림으로 데이터를 푸시하도록 하여 데이터 생산자에 오류가 발생하더라도 데이터 손실을 방지합니다. 예를 들어, 시스템 및 애플리케이션 로그는 지속적으로 데이터 스트림에 추가되며 몇 초 내에 처리에 사용할 수 있습니다.
- 실시간 지표 및 보고: 실시간으로 Amazon Kinesis 데이터 스트림 데이터에서 지표를 추출하고 보고서를 생성할 수 있습니다. 예를 들어 Amazon Kinesis 애플리케이션은 데이터 배치를 수신할 때까지 기다리는 대신 데이터가 스트리밍되는 대로 시스템 및 애플리케이션 로그에 대한 지표 및 보고 작업을 수행할 수 있습니다.
- 실시간 데이터 분석: Amazon Kinesis Data Streams를 사용하여 실시간 데이터 분석을 실행할 수 있습니다. 예를 들어, Amazon Kinesis 데이터 스트림에 클릭 스트림을 추가하고 Amazon Kinesis 애플리케이션에서 실시간으로 분석을 수행할 수 있도록 하여 몇 시간 또는 며칠이 아닌 몇 분 내에 데이터를 파악할 수 있습니다.
- 복잡한 스트림 처리: Amazon Kinesis 애플리케이션 및 데이터 스트림의 DAG(방향성 비순환 그래프)를 생성할 수 있습니다. 이 시나리오에서는 1개 이상의 Amazon Kinesis 애플리케이션이 이후 처리를 위해 다른 Amazon Kinesis 데이터 스트림에 데이터를 추가할 수 있어 스트림을 단계별로 연이어 처리할 수 있습니다.
Q: 샤드란 무엇입니까?
샤드는 Amazon Kinesis 데이터 스트림의 기본 처리량 단위입니다. 샤드 1개는 초당 1MB의 데이터 입력 및 2MB의 데이터 출력 용량을 제공하며 샤드 1개는 초당 최대 1,000개의 PUT 레코드를 지원합니다. 데이터 스트림을 생성할 때 필요한 샤드 수를 지정하게 됩니다. 예를 들어, 샤드가 2개 있는 데이터 스트림을 생성할 수 있습니다. 이 데이터 스트림은 초당 2MB의 데이터 입력 및 초당 4MB의 데이터 출력을 처리할 수 있으며 초당 최대 2,000개의 PUT 레코드를 허용합니다. Amazon Kinesis Data Streams에서 샤드 수준 지표를 모니터링하고, 데이터 스트림 리샤딩을 통해 데이터 처리량이 변경됨에 따라 샤드를 동적으로 스트림에 추가하거나 스트림에서 제거할 수 있습니다.
Q: 레코드란 무엇입니까?
레코드는 Amazon Kinesis 데이터 스트림에 저장되는 데이터의 단위입니다. 레코드는 시퀀스 번호, 파티션 키, 데이터 Blob으로 구성됩니다. 데이터 Blob은 사용자의 데이터 생산자가 데이터 스트림에 추가한 대상 데이터입니다. 데이터 Blob의 최대 크기(Base64로 인코딩하기 전 데이터 페이로드)는 1메가바이트(MB)입니다.
Q: 파티션 키란 무엇입니까?
파티션 키는 레코드를 데이터 스트림의 다른 샤드로 분리하고 라우팅하는 데 사용됩니다. 파티션 키는 Amazon Kinesis 데이터 스트림에 데이터가 추가되는 동안 데이터 생산자가 지정합니다. 예를 들어, 샤드가 2개 있는 데이터 스트림이 있다고 가정해 보겠습니다(샤드 1과 샤드 2). 파티션 키 2개(키 A와 키 B)를 사용하도록 데이터 생산자를 구성하여 키 A가 있는 모든 레코드는 샤드 1에 추가하고 키 B가 있는 모든 레코드는 샤드 2에 추가할 수 있습니다.
Q: 시퀀스 번호란 무엇입니까?
시퀀스 번호는 각 레코드에 대한 고유 식별자입니다. Amazon Kinesis 데이터 스트림에 데이터를 추가하기 위해 데이터 생산자가 PutRecord 또는 PutRecords 작업을 호출할 때 Amazon Kinesis에서 시퀀스 번호를 할당합니다. 동일한 파티션 키에 대한 시퀀스 번호는 일반적으로 시간이 지남에 따라 증가합니다. PutRecord 또는 PutRecords 요청 사이의 시간 간격이 길어질수록 시퀀스 번호도 커집니다.
Kinesis vs Firehose : Amazon Kinesis 제품
Amazon Kinesis는 현재 세 가지 개별 서비스로 나뉩니다.
Kinesis Streams 차이점
Kinesis Streams는 데이터 생산자로부터 대량의 데이터 (시간당 테라 바이트)를 캡처하고이를 데이터 처리 및 분석을 위해 사용자 지정 애플리케이션으로 스트리밍 할 수 있습니다. 스트리밍 데이터는 데이터의 안정성과 가용성을 보장하기 위해 Kinesis에서 AWS 내의 3개의 개별 가용 영역에 걸쳐 복제됩니다.
Kinesis Streams는 스트리밍 데이터의 시간당 1MB에서 최대 테라 바이트까지 확장 할 수 있습니다. 처리 할 것으로 예상되는 데이터 볼륨을 처리하려면 스트림에 적절한 수의 샤드를 수동으로 프로비저닝해야합니다. Amazon은 스트림을 생성 할 때이 수를 올바르게 결정하기 위해 샤드 계산기를 유용하게 제공합니다. 생성 된 후에는 수요를 충족하기 위해 샤드 수를 동적으로 확장하거나 축소 할 수 있지만 현재로서는 AWS Streams API를 통해서만 가능합니다.
HTTPS, Kinesis Producer Library, Kinesis Client Library 및 Kinesis 에이전트를 포함한 다양한 방법을 사용하여 Streams에 데이터를로드 할 수 있습니다.
기본적으로 데이터는 스트림에서 24 시간 동안 사용할 수 있지만 추가 요금으로 최대 168 시간 (7 일) 동안 사용할 수 있습니다.
Amazon Cloudwatch를 통해 모니터링이 가능합니다.
Kinesis Firehose 차이점
Kinesis Firehose는 Kinesis를위한 Amazon의 데이터 수집 제품입니다. 스트리밍 데이터를 캡처하고 S3 및 Redshift와 같은 다른 Amazon 서비스로로드하는 데 사용됩니다. 여기에서 Elastic Map Reduce 및 Amazon Elasticsearch Service와 같은 데이터 처리 및 분석 도구로 스트림을 로드 할 수 있습니다. Firehose를 사용하여 동일한 데이터를 S3 및 Redshift에 동시에로드 할 수도 있습니다.
Firehose는 초당 기가 바이트의 스트리밍 데이터로 확장 할 수 있으며 데이터를 일괄 처리, 암호화 및 압축 할 수 있습니다. Firehose는 수요를 충족하기 위해 자동으로 확장된다는 점에 유의해야합니다. 이는 Kinesis Streams와 달리 예상되는 요구 사항을 충족하기 위해 충분한 용량을 수동으로 프로비저닝해야합니다.
Kinesis Streams와 마찬가지로 HTTPS, Kinesis Producer Library, Kinesis Client Library 및 Kinesis 에이전트를 비롯한 여러 방법을 사용하여 Firehose에 데이터를로드 할 수 있습니다. 현재는 Firehose를 통해 S3 및 Redshift로만 데이터를 스트리밍 할 수 있지만 이러한 서비스 중 하나에 저장되면 추가 처리 및 분석을 위해 데이터를 다른 서비스로 복사 할 수 있습니다.
Amazon Cloudwatch를 통해 모니터링이 가능합니다.
Kinesis Analytics 차이점
Kinesis Analytics는 데이터 스트림에 대해 표준 SQL 쿼리를 실행하고 해당 데이터를 모니터링 및 경고를 위해 분석 도구로 보낼 수있는 Amazon의 향후 제품입니다. 이 상품은 아직 출시되지 않았으며 아마존은이 날짜를 기준으로 서비스 세부 정보를 게시하지 않았습니다.