[지식] AWS Data Streaming(Glue,Kinesis,Kafka, Airflow,RabbitMQ)
2024. 4. 9. 13:58ㆍIT
Glue
정의
- 배치 처리에 중점을 두는 ETL 서비스로, 정형 데이터를 처리하는데 사용
- 완전 관리형의 ETL(Extract, Transform, Load)서비스로, 데이터의 추출, 변환, 로딩을 자동화하는데 중점
특징
- 데이터의 스키마를 자동으로 추론하여 데이터의 구조를 이해하고 처리할 수 있다.
- 서버리스 아키텍처를 기반으로 사용자는 인프라 관리 없이 ETL 작업을 실해할 수 있다.
- 메타데이터를 저장하고 관리하는 메타데이터 저장소를 제공하여 데이터 카탈로그를 효과적으로 관리할 수 있다.
Airflow
정의
- 워크플로우 자동화 및 스케줄링 도구로, 복잡한 데이터 파이프라인 및 작업 흐름을 조직하고 실행 가능
- 주로 큰 규모의 데이터 파이프라인과 배치 작업을 위해 설계되어 있기에 실시간성 보다는, 데이터 처리 및 스케줄링에 중점을 두고 있다.
특징
- 코드로 작성된 다양한 작업 task들을 연결하여 워크플로우를 정의할 수 있다.
- 스케줄링, 모니터링, 알림 및 실패 처리를 지원하여 데이터 처리 작업을 자동화 한다.
- 다양한 플러그인을 통해 다양한 서비스와 통합이 가능하며, 데이터 엔지니어링 및 분석 작업에 활용
Kinesis
정의
- 스트리밍 데이터에 특화된 서비스로, 대규모의 스트리밍 데이터를 처리하고 분석하는데 사용
- 대규모 데이터 스트림을 실시간으로 수집, 처리 및 전송 가능
종류
- Kinesis Data Streams
- 규모와 관계없이 데이터 스트림을 간편하게 캡쳐, 처리 및 저장할 수 있는 서버리스 스트리밍 데이터 서비스이다.
- Spark, EC2, Lambda
- Kinesis Data Firehose
- 스트리밍 데이터를 안정적으로 캡처하고 전환하여 데이터 레이크, 데이터 스토어, 분석 서비스에 전달하는 추출, 전환, 적재(ETL) 서비스이다.
- S3, Redshift, Opensearch, Splunk
- Kinesis Video Streams
- 연결된 디바이스에서 AWS로 보다 쉽고 안정하게 비디오를 스트리밍하여 분석, ML, 재생 및 기타 처리 수행 가능
- Amazon Rekognition Video, SageMaker, TensorFlow
Kafka
정의
- 자체 호스팅되어야 하며, 클러스터 구성, 확장, 유지 관리 등 모든 측면을 사용자가 직접 관리해야한다.
즉 확장성과 유연성은 직접 관리자의 구성과 클러스터 크기에 의존한다. - 실시간으로 처리할 수 있게 해주는 퍼블리싱 및 구독 메시징 시스템이다.
특징
- 대량의 이벤트 스트림을 처리하고 여러 소비자 consumer가 데이터를 동시에 구독할 수 있다.
- 데이터의 내구성과 신뢰성을 제공하여 실시간 데이터 스트림 처리를 지원한다.
- 이벤트 송수신 및 데이터 스트리밍에 사용되며, 대규모 분산 시스템에서 사용된다.
방식
- 자체 메시징 프로토콜을 사용하는데 이는 대용량 데이터를 효율적으로 처리하기 위해 설계된 디자인이다.
- Push 방식을 사용하여 브로커에서 메시지를 전송하는 방식으로 동작한다.
- 다수의 브로커와 파티션을 추가하여 수평적 확장이 가능하여 대용량 데이터 처리가 가능하다.
- 메시지가 디스크에 저장된다.
- 메시지를 로그 형태로 저장하고 순서를 보장하며 장애 발생시에도 메시지를 안전하게 보관한다.
- kafka는 메시지를 여러개의 파티션으로 나누어 저장하고, 각 파티션은 여러 브로커에 분산되기에 메시지의 처리량과 확장성이 증가하며, 대용량 및 대규모의 실시간 데이터 처리에 적합
- 메모리 내 디스크 캐싱을 통해 빠른 읽기와 쓰기 속도를 제공하며, 필요한 경우에만 디스크에서 읽어옥기에 안정성을 제공한다.
RabbitMQ
정의
- AMQP Advanced Message Queuing Protocol을 사용한 메시징 프로토콜로 플랫폼간의 통신을 지원
- Pull 방식으로 소비자가 메시지를 직접 가져온다.
- 메모리 기반의 브로커로, 큐의 크기가 메모리에 의존하기에 대규모 데이터 처리에는 한계가 있다.
- 메시지를 디스크에 지속할 수있기에 메시지 유실 위험이 낮다.
특징
- Pull 방식은 Queue 기반의 모델로 사용되고 구독자는 큐에서 메시지를 가져와 처리한다.
- push 방식은 실시간성으로 이벤트에 대한 즉각적으로 전달이 가능하지만 pull 방식은 구독자가 메시지를 요청하기 전까지는 메시지를 전달하지 않기에 실시간성이 낮을 수 있다.
- 비동기적인 처리에 더 용이할 수 있다.
한줄 요약
- Glue
- ETL 서비스로 데이터 추출, 변환, 로드를 자동화한다.
- Airflow
- 워크플로우 자동화 도구로 복잡한 작업 흐름을 정의하고 실행한다.
- Kafka
- 분산형 스트리밍 플랫폼으로 대량의 데이터를 실시간으로 처리한다.
- RabbitMQ
- 메시지 브로커로 AMQP를 기반으로 메시지 교환을 지원한다.

'IT' 카테고리의 다른 글
[AWS] certificateManager, Route53 (0) | 2024.04.09 |
---|---|
[지식] RDB 비교 분석 (mysql,mariadb,postgresql) (0) | 2024.04.09 |
[AWS] 저장소 비교 분석(Redshift,ElastiCache) (0) | 2024.04.09 |
[AWS] Cloud Formation (0) | 2024.04.09 |
[AWS] Aurora (0) | 2024.04.09 |