◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
Amazon kinesis는 기본적으로 스트리밍 데이터를 다루는 서비스이다.
Amazon Kinesis
Amazon Kinesis는 스트리밍 데이터를 다루는 서비스이다.
스트리밍 데이터란?
대량의 데이터 소스로 인해 실시간으로 연속적으로 생성되는 데이터 (로그, IoT 데이터, ...)
Amazon Kinesis에는 4가지 종류의 서비스가 있다.
- Kinesis Data Streams
- Kinesis Data Firehose (현재 이름: Amazon Data Firehose)
- Kinesis Data Analytics (현재 이름: Amazon Managed Service for Apache Flink )
- Kinesis Video Streams
실시간으로 대량의 스트리밍 데이터를 수집하는 서비스. | 수집한 데이터를 저장소/분석 툴로 전송하는 서비스 | SQL 쿼리를 사용하여 실시간으로 데이터 분석하는 서비스 | 카메라, 드론 등의 디바이스에서 AWS에 비디오 스트리밍 데이터를 전송 |
Kinesis Data Streams: 수집 & 전송
대규모의 애플리케이션의 로그, IoT 디바이스의 데이터 등 스트리밍 데이터를 실시간으로 수집하는 서비스이다.
수집한 데이터는 다른 AWS 서비스 또는 애플리케이션에서 사용되어 분석처리 된다.
주목적: 실시간 스트리밍 데이터 수집
Producers → → → | Kinesis Data Streams → → → | Cosumers |
- PC - Sensor - Mobile Phone |
Shard 1, 2, 3, ... N | - S3 - EC2 - DynamoDB - ...etc |
Kinesis Data Firehose (Amazon Data Firehose): 수집 & 전송 & 데이터 처리
Data Firehose는 스트리밍 데이터를 수집하고, 이를 S3, RedShift, Elasticsearch 또는 Splunk 등 데이터 스토어나 분석 툴에게 전송하는 서비스이다.
Kinesis Data Firehose currently supports Amazon S3, Redshift, OpenSearch, Splunk, Datadog, NewRelic, Dynatrace, Sumologic, LogicMonitor, MongoDB, and HTTP End Point as destinations. (*but not support DynamoDB)
복잡한 설정없이 데이터를 전송할 수 있다. → Serverless 서비스이기 때문에 따로 용량 설정을 할 필요없다.
요금
최저 요금과 설치 요금 같은건 없이 아래의 2가지 방식으로 요금이 계산된다.
- 데이터 수집: 전송된 데이터 양에 따라 요금이 부과된다.
- 데이터 변환: 데이터를 다른 형태로 변환하는 경우(예: Lambda 함수를 이용한 변환), 추가 요금이 발생한다.
Data Stream과 Data Firehose의 차이
Real time(Data Stream) vs Near Real time(Data Firehose)
Kinesis Data Analytics (Amazon Managed Service for Apache Flink)
Kinesis에 저장된 스트리밍 데이터에 대해서 SQL 쿼리를 사용하여 실시간으로 데이터를 분석하는 서비스이다.
실시간 데이터 처리: 초당 기가바이트 단위의 스트리밍 데이터를 실시간으로 처리하고 분석할 수 있다.
표준 SQL 사용: SQL 언어를 사용하여 스트리밍 데이터를 쿼리하고 분석할 수 있다.
Kinesis Video Streams: 실시간 동영상 스트리밍
카메라, 드론 등의 디바이스에서 실시간으로 AWS에 동영상을 간단하면서도 안전하게 스트리밍 할 수 있다.
사용 사례: 보안 카메라 데이터 스트리밍, 실시간 비디오 분석, 미디어 스트리밍.
SAA 문제
스트리밍 데이터를 로그 파일로 저장하고 싶습니다. 다음 중 가장 적합한 서비스 조합은 무엇입니까?
- Amazon Data Firehose, Amazon Redshift
- Amazon EC2, Auto Scaling
- Amazon Kinesis Data Streams, Amazon RDS
- Amazon Data Firehose, Amazon S3
정답
4번. Amazon Data Firehose, Amazon S3
Amazon Data Firehose는 스트리밍 데이터를 Amazon S3, Amazon Redshift, Amazon OpenSearch Service 등으로 전송하는 서비스이다.
Data Firehose는 프로듀서로부터 스트리밍 데이터를 받아 필요에 따라 데이터 변환 처리나 Lambda 함수를 호출한 후, 데이터 전송 대상지로 보낸다.
오답
- 1. Amazon Data Firehose, Amazon Redshift
Redshift는 데이터 웨어하우스 서비스로 대규모 분석을 위한 데이터 저장에 적합합니다.
로그 파일 저장으로는 과도한 사양이며, 비용도 높아집니다. 따라서, 잘못된 설명입니다. - 2. Amazon EC2, Auto Scaling
EC2 인스턴스와 Auto Scaling을 사용하여 로그 수집 시스템을 구축하는 것도 가능하지만, 인프라 관리가 필요합니다. Data Firehose와 S3가 운영 관리 측면과 비용 측면에서 더 우수하므로, 가장 적합하다고 할 수 없습니다. 따라서, 잘못된 설명입니다. - 3. Amazon Kinesis Data Streams, Amazon RDS
Kinesis Data Streams는 스트리밍 데이터를 수집하는 서비스이며, 데이터를 RDS에 저장하려면 Lambda 함수 등을 사용해야 합니다. 또한, RDS는 데이터베이스 서비스이므로 로그 파일은 스토리지 서비스인 S3가 더 적합합니다. 따라서, 잘못된 설명입니다.