본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

AWS Ambassador

AWS 서비스로 구현하는 데이터 파이프라인

2023.02.01

1. 개요

프로젝트에서 데이터 파이프라인을 구성하기 위해 여러 가지 솔루션을 검토하는 경우가 있습니다.
AWS 환경을 사용한다면 AWS에서 제공하는 Managed Service를 통해 손쉽게 데이터 파이프라인을 구성할 수 있습니다.
이번 포스트에서는 실제 프로젝트에서 활용된 AWS Managed Service를 사용한 데이터 파이프라인을 구성 방안에 대해 살펴보겠습니다.

2. 관련된 서비스

  1. AWS Event Bridge
  2. AWS Step Functions
  3. AWS Glue, Lambda 등

3. 구성 방안

3.1 데이터 파이프라인이란?

들어가기에 앞서 데이터 파이프라인을 구성하기 위한 요소를 확인하기 위해 데이터 파이프라인에 대해서 알아보겠습니다.

일반적으로 데이터 파이프라인이란 데이터의 추출(extracting), 변경(transforming), 결합(combining), 검증(validating) 그리고 적재(loading) 하는 과정들을 자동화하는 것을 의미합니다. 이는 기존의 ETL과 크게 다르지 않아 보일 수 있는데 데이터 파이프라인은 데이터를 어느 한 곳에서 다른 한곳으로 옮기는 자동화 방안이며, 이때 데이터의 변환이 발생할 수도 있지만 단순히 저장 위치만 변경되는 경우도 있습니다. 즉, ETL은 데이터 파이프라인 안 하나의 구성 방식(Subset)이라고 이해할 수 있습니다.

그렇다면, 데이터 파이프라인을 구성하기 위해선 어떤 요소들이 필요할까요?

기본적인 데이터 파이프라인을 구성하기 위해선 크게 Orchestrator, Scheduler, ETL Tools 가 필요합니다.

AWS에서는 이에 대응하는 Managed Service를 제공하고 있습니다.
• 데이터 파이프라인 구성요소에 대응한 AWS 제공 Managed Service
o Orchestrator : AWS Step Functions
o Scheduler : Amazon Event Bridge
o ETL Tools : Glue, Lambda 등

다음으로 데이터 파이프라인을 구성하기 위해 실제 프로젝트에서 활용된 사례를 확인해 보겠습니다.

3.2 데이터 파이프라인 아키텍처

다음 아키텍처는 현재 진행 중이 프로젝트에서 사용 중인 데이터 파이프라인의 일부입니다.

이번 프로젝트에서는 IoT Core로부터 발생하는 Sensor Data를 AWS 시계열 DB인 Timestream에 적재 후, Timestream의 Raw Data를 Lambda를 통해 일 단위로 S3 Bucket에 적재한 뒤 Glue Job을 통해 프로젝트에서 분석 시 사용할 데이터로 ETL 하는 일련의 작업을 Step Functions를 활용하여 자동화하였습니다.

3.3 서비스 구성 살펴보기

데이터 파이프라인 구성 시 사용된 AWS Managed Service의 구성을 살펴보겠습니다.

3.3.1 Amazon EventBridge
EventBridge는 AWS 서비스, 외부 시스템, SaaS 앱 등과의 연결을 통해 이벤트 기반의 애플리케이션 구축을 할 수 있는 AWS Managed Service입니다. 프로젝트에서는 이를 사용해 스케쥴을 작성하여 Step Functions를 호출하도록 구성하였습니다.

3.3.1.1 Rule 구성 – 스케줄링
EventBridge는 다음과 같이 Cron 형식으로 스케쥴을 지정하여 동작 시킬 수 있습니다.

3.3.1.2 Rule 구성 – Target 설정
다양한 AWS Service들을 타깃으로 설정하여 이벤트 기반의 애플리케이션 구축에 용이합니다.

3.3.2 AWS Step Functions
AWS Step Functions은 서버리스 형태의 오케스트레이션을 제공합니다. Step Functions을 이용하면 자동화된 워크플로의 구축, 업데이트, 수정에 용이합니다. 이번 프로젝트에서는 Step Functions을 사용해 간단한 데이터 파이프라인을 구현하였습니다.

3.3.2.1 State Machines 설정
Step Functions을 구성하는 State(상태)는 한 단계 단계의 동작을 정의하고, 이 State들이 모인 State machine이 기능하며 워크플로우가 완성됩니다. 다음은 현재 프로젝트에서 생성한 간단한 데이터 파이프라인의 예시입니다. 이번 프로젝트에서는 다음 그림과 같이 Lambda를 통해 시계열 DB로부터 S3로 Data를 적재하고 모든 데이터가 적재되었는지를 확인하는 Lambda 동작 후 Glue Job이 동작하여 L1 Data를 생성하는 State Machine(데이터 파이프라인)를 작성하였습니다.

State Machine은 위 그림과 같이 Workflow Studio GUI를 통해 Drag&Drop으로 쉽게 작성하거나 아래 그림과 같이 JSON 포맷으로 직접 수정할 수도 있습니다.

다음은 이번 프로젝트에서 활용된 State Machine JSON 포맷 예시입니다.

4. 마무리

이번 포스트를 통해 AWS Managed Service만을 이용해 데이터 파이프라인을 구성하는 방법에 대해 알아볼 수 있었습니다.
파이프라인을 구성하기 위한 다양한 방법이 있지만, AWS Service를 사용하는 프로젝트라면 Amazon EventBridge, Step Functions를 사용해 쉽고 직관적인 구축과 Serverless 형태의 Managed Service를 통한 운영 에포트 및 비용 절감까지 챙기는 효율적인 아키텍처를 구현할 수 있습니다.

챗봇과 대화를 할 수 있어요