본문 바로가기
AWS

[AWS 데이터엔지니어링] 3장 데이터 엔지니어 도구 키트

by 권미정 2023. 1. 25.

<Data Engineering with AWS> 3장을 번역 및 요약한 내용입니다.


2006년, Amazon은 Amazon Web Services(AWS)를 시작하여 인터넷을 통해 IT 리소스를 주문형으로 제공하는 클라우드 컴퓨팅 산업을 탄생시켰습니다. 그 이후로 AWS는 놀라운 속도로 혁신하여 광범위한 IT 서비스에서 심층적인 기능을 제공하는 새로운 서비스와 기능을 지속적으로 출시했습니다.

현재 AWS는 데이터 엔지니어가 복잡한 데이터 분석 파이프라인을 구축하는 데 사용할 수 있는 다양한 분석 서비스를 포함하여 약 200가지의 다양한 서비스를 제공합니다.

이 장에서는 AWS에서 빅 데이터 솔루션을 구축하는 데 일반적으로 사용되는 여러 가지 AWS 관리형 서비스를 소개합니다.

 

1. 데이터 수집을 위한 AWS 서비스

빅 데이터 분석 솔루션을 구축하는 첫 번째 단계는 다양한 소스의 데이터를 AWS로 수집하는 것입니다. 이 섹션에서는 다음을 지원하도록 설계된 몇 가지 핵심 AWS 서비스를 소개합니다.

① Amazon 데이터베이스 마이그레이션 서비스(DMS) 개요

Amazon DMS는 기존 Oracle 데이터베이스를 PostgreSQL과 호환되는 Amazon Aurora 데이터베이스로 마이그레이션하는 것과 같이, 기존 데이터베이스 시스템을 새로운 데이터베이스 엔진으로 마이그레이션하는 데 사용할 수 있는 다목적 도구입니다.

프로덕션 고객, 제품 및 주문 데이터베이스를 데이터 레이크에 동기화하려고 할 때 사용합니다. DMS를 사용하면 데이터베이스에서 S3로 초기 데이터 로드를 수행할 수 있으며, 파일을 작성하려는 형식(CSV 또는 Parquet)과 S3의 특정 수집 위치를 지정할 수 있습니다.

동시에 전체 로드가 완료되면 원본 데이터베이스에서 S3로 지속적인 복제를 수행하도록 DMS 작업을 설정할 수도 있습니다. 트랜잭션 데이터베이스를 사용하면 고객이 주소나 전화번호를 변경하는 경우와 같이 테이블의 행이 정기적으로 업데이트됩니다. 이 중 DMS는 데이터베이스의 데이터베이스 트랜잭션 로그 파일을 사용하여 데이터베이스의 행에 대한 업데이트를 추적하고 행에 반영되는 작업(삽입, 업데이트 또는 삭제) 변경 사항을 추적하고 기록하는 것을 일반적으로 변경 데이터 캡처(CDC)라고 합니다.

 

custid, lastname, firstname, address  phone 스키마가 있는 원본 테이블이 있고 다음과 같은 일련의 이벤트가 발생하는 상황을 가정해 봅시다.

  • 모든 필드가 완료된 새 고객이 추가됩니다.
  • 전화번호가 잘못 입력되어 레코드에 전화번호가 업데이트되었습니다.
  • 그러면 고객 레코드가 데이터베이스에서 삭제됩니다.

DMS에서 작성한 CDC 파일에서 다음을 볼 수 있습니다.

I, 9335, Smith, John, "1 Skyline Drive, NY, NY", 201-555-9012
U, 9335, Smith, John, "1 Skyline Drive, NY, NY", 201-555-9034
D, 9335, Smith, John, "1 Skyline Drive, NY, NY", 201-555-9034

파일의 첫 번째 행은 새 레코드가 테이블 에 삽입되었음을 보여줍니다(첫 번째 열의 I 로 표시됨). 두 번째 행은 레코드가 업데이트 되었음을 ​​보여줍니다(첫 번째 열에서 U 로 표시됨). 마지막으로 파일의 세 번째 항목은 이 레코드가 테이블에서 삭제 되었음을 나타냅니다(첫 번째 열의 D로 표시됨).

그런 다음 업데이트를 읽고 해당 업데이트를 전체 로드에 적용하여 소스 데이터베이스의 새로운 특정 시점 스냅샷을 생성하기 위해 실행되는 별도의 업데이트 프로세스가 있습니다. 업데이트 프로세스는 정기적으로 실행되도록 예약되고 실행될 때마다 DMS에서 기록된 최신 업데이트를 이전 스냅샷에 적용하여 새로운 특정 시점 스냅샷을 생성합니다.

 

Amazon DMS는 단순화합니다. 하나의 데이터베이스 엔진에서 다른 데이터베이스 엔진으로 마이그레이션하거나 기존 데이터베이스에서 Amazon S3로 데이터를 지속적으로 동기화할 때 사용합니다.

 

② 스트리밍 데이터 수집을 위한 Amazon Kinesis 개요

Amazon Kinesis는 수집 및 처리 프로세스를 간소화하는 관리형 서비스입니다. 실시간 또는 거의 실시간으로 데이터를 스트리밍합니다. Kinesis를 사용할 수 있는 사례에는 스트리밍 데이터(예: 로그 파일, 웹 사이트 클릭스트림 또는 IoT 데이터) 수집과 비디오 및 오디오 스트림이 포함됩니다.

 

Amazon Kinesis Agent

Amazon Kinesis Agent는 GitHub에서 Amazon 소프트웨어 라이선스(https://github.com/awslabs/amazon-kinesis-agent) 및 Windows용 버전(Microsoft Windows용 Amazon Kinesis 에이전트)에 따라 Java 애플리케이션으로 사용할 수 있습니다.

파일 세트를 모니터링하도록 에이전트를 구성할 수 있으며 새 데이터가 파일에 기록되면 에이전트는 데이터를 버퍼링한 다음(1초에서 15분 사이의 기간 동안 구성 가능) 데이터를 Kinesis에 기록합니다. 에이전트는 실패 시 재시도와 파일 회전 및 체크포인트를 처리합니다.

일반적인 사용의 예로 웹사이트에서 발생하는 이벤트를 거의 실시간으로 분석하려는 시나리오를 들 수 있습니다.

 

Amazon Kinesis Firehose

Amazon Kinesis Firehose는 스트리밍에서 거의 실시간으로 데이터를 쉽게 수집할 수 있도록 설계되었습니다. Amazon S3, Amazon Redshift, Amazon Elasticsearch 및 타사 서비스(예: Splunk , Datadog  New Relic)를 비롯한 공통 대상에 해당 데이터를 소싱하고 기록합니다.

Kinesis Firehose를 사용하면 스트리밍 소스에서 데이터를 쉽게 수집하고 처리하거나 변환할 수 있습니다. 수신 데이터를 수집하고 해당 데이터를 Amazon S3와 같은 대상에 전달합니다. 데이터 엔지니어링 목적의 일반적인 사용 사례는 웹사이트를 수집하는 것입니다. 웹 서버의 Apache 웹 로그에서 클릭스트림 데이터를 수집하고 해당 데이터를 S3 데이터 레이크(또는 Redshift 데이터 웨어하우스)에 기록합니다.

Kinesis Firehose 엔드포인트는 수신 레코드를 버퍼링하고 특정 시간(1~15분) 후 또는 수신 레코드의 크기(1MB~128MB)에 따라 지정된 대상에 파일을 씁니다. Kinesis Firehose에서는 크기와 시간을 모두 지정해야 하며 먼저 도달하는 것이 파일 쓰기를 트리거합니다.

Amazon S3에 파일을 쓸 때 수신 데이터를 Parquet 또는 ORC 형식으로 변환하거나 Amazon Lambda 함수를 사용하여 수신 데이터 스트림의 사용자 지정 변환을 수행하는 옵션도 있습니다.

 

Amazon Kinesis Data Streams

Kinesis Firehose는 수신 데이터를 지원되는 대상 중 하나에 쓰기 전에 버퍼링하는 반면, Kinesis Data Streams는 데이터 소비 방식에 대해 향상된 유연성을 제공합니다. 대기 시간이 매우 짧은 스트리밍 애플리케이션에서 사용할 수 있는 수신 데이터(AWS는 데이터가 Kinesis에 기록된 후 70밀리초 이내에 소비 애플리케이션에서 데이터를 사용할 수 있음을 나타냅니다)를 처리합니다.

Kinesis Agent는 에이전트에서 데이터를 지원할 수 있는 경우(예: 로그 파일 작성 시) 데이터를 Kinesis Data Streams로 보내는 가장 간단한 방법이며, AWS SDK는 가장 낮은 지연 시간을 제공하고 Amazon KPL은 최고의 성능을 제공합니다. 그리고 단순화 모니터링 및 Kinesis Client Library (KCL)와의 통합과 같은 작업입니다.

 

Amazon Kinesis Data Analytics

Amazon Kinesis Data Analytics는 표준 SQL 쿼리 또는 Apache Flink 애플리케이션을 사용하여 스트리밍 데이터 처리 프로세스를 간소화합니다.

Kinesis Data Analytics의 사용 사례 중 하나는 전자상거래 웹 사이트에서 들어오는 클릭스트림 데이터를 분석하여 제품 판매에 대한 거의 실시간 인사이트를 얻는 것입니다. 이 사례에서 조직은 프로모션이 효과적인지 확인하기 위해 특정 제품의 판촉이 판매에 어떤 영향을 미치는지 알고 싶을 수 있으며, Kinesis Data Analytics는 상대적으로 간단한 SQL 쿼리를 사용하여 웹에서 전송되는 레코드를 처리할 수 있습니다. 이를 통해 기업은 "프로모션이 시작된 후 각 5분 동안 제품 x가 얼마나 많이 판매되었습니까?"와 같은 질문에 대한 답변을 신속하게 얻을 수 있습니다.

 

Amazon Kinesis Video Streams

Amazon Kinesis Video Streams는 비디오, 오디오 및 RADAR 데이터와 같은 구조화되지 않은 데이터의 시간 제한 스트림을 처리하는 데 사용할 수 있습니다.

Kinesis Video Streams는 잠재적으로 수백만 개의 소스에서 스트리밍 비디오(또는 다른 유형의 미디어 파일)를 수집하는 데 필요한 컴퓨팅 인프라를 프로비저닝하고 확장합니다. Kinesis Video Streams는 라이브 및 온디맨드 보기를 위한 비디오 재생을 지원하며, 컴퓨터 비전 및 비디오 분석과 같은 애플리케이션을 지원하기 위해 다른 Amazon API 서비스와 통합될 수 있습니다.

비디오 초인종 시스템, 가정용 보안 카메라, 베이비 모니터와 같은 어플라이언스는 Kinesis Video Analytics를 통해 비디오를 스트리밍할 수 있으므로 이러한 어플라이언스를 지원하는 모든 기능을 갖춘 애플리케이션을 생성하는 작업을 간소화할 수 있습니다.

 

③ 스트리밍 데이터 수집을 위한 Amazon MSK 개요

Amazon MSK(Apache Kafka용 관리형 스트리밍)는 AWS에서 사용할 수 있는 Apache Kafka의 관리형 버전입니다. AWS는 Apache Kafka에서 종종 관리가 어렵고 전문 기술이 필요한 작업을 단순화하기 위해, 조직이 콘솔에서 몇 번의 클릭만으로 Apache Kafka 클러스터를 배포하고 클러스터 상태를 자동으로 모니터링하고 실패한 구성 요소를 교체하여 관리 오버헤드를 줄일 수 있는 Amazon MSK를 제공합니다.

 

④ SaaS 서비스에서 데이터를 수집하기 위한 Amazon AppFlow 개요

Amazon AppFlow는 SaaS 서비스에서 데이터를 수집하고 변환하는 데 사용할 수 있습니다. 데이터를 공통 분석 대상(예:Amazon S3, Amazon Redshift 및 Snowflake(인기 있는 클라우드 데이터 웨어하우징 솔루션)뿐만 아니라 일부 SaaS 서비스에 쓸 수 있습니다.

AppFlow는 일정에 따라 또는 특정 이벤트에 대한 응답으로 실행되도록 구성할 수 있으며, 데이터를 필터링하고, 데이터를 마스킹하고, 데이터를 검증하고, 소스의 데이터 필드에서 계산을 수행할 수 있습니다.

 

Amazon AppFlow는 다음과 같은 통합을 지원합니다.

  • AWS 서비스:
    • Amazon EventBridge (데이터를 수집하여 대상으로 라우팅하는 서버리스 이벤트 버스)
    • 아마존Redshift (클라우드 기반 데이터 웨어하우징 서비스)
    • 아마존S3 (분석 데이터 레이크의 스토리지 계층으로 자주 사용되는 객체 스토리지 서비스)
    • Amazon Honeycode (모바일 및 웹 애플리케이션 구축을 위한 관리형 서비스프로그래밍이 필요하지 않음)
    • Amazon Lookout for Metrics (비즈니스 및 운영 지표에서 이상값을 식별하고 근본 원인을 파악하기 위한 기계 학습 서비스)
  • 타사 서비스:
    • 진폭 (제품 분석 도구 세트)
    • Datadog (애플리케이션 모니터링 서비스)
    • Dynatrace (애플리케이션 및 인프라 모니터링 서비스)
    • Google Analytics (웹 사이트 트래픽 모니터링 및 추적 서비스)
    • Infor Nexus (주문형 글로벌 공급망 관리 플랫폼)
    • Marketo (고객과 잠재 고객의 참여를 돕는 마케팅 자동화 소프트웨어)
    • Salesforce (고객 관계 관리 및 관련 서비스)
    • ServiceNow (디지털 워크플로우 관리를 위한 플랫폼)
    • Singular (마케팅 분석 및 ETL 솔루션)
    • Slack (채널 기반 메시징 플랫폼)
    • Snowflake (클라우드 기반 데이터 웨어하우스 솔루션)
    • Trend Micro (워크로드 보안 솔루션)
    • Upsolver (이벤트 스트림을 분석 가능한 데이터로 변환하는 서비스)
    • Veeva (클라우드제약 및 생명과학 기업에 초점을 맞춘 컴퓨팅 서비스)
    • Zendesk (고객서비스 및 헬프데스크 플랫폼)

 

⑤ FTP/SFTP 프로토콜을 사용한 수집을 위한 Amazon Transfer Family 개요

Amazon Transfer Family는 파일 전송을 지원하는 완전관리형 서비스를 제공합니다. FTP  SFTP를 포함한 일반적인 파일 전송 프로토콜을 사용하여 Amazon S3에서 직접 송수신합니다. 조직이 현재 FTP, SFTP 또는 FTPS를 통해 데이터를 수신하는 경우 Amazon Transfer에서 제공하는 이 서비스의 관리형 버전으로 마이그레이션하는 것을 고려해야 합니다.

 

⑥ 온프레미스 스토리지에서 수집하기 위한 Amazon DataSync 개요

기존 사내 스토리지 시스템에서 데이터를 수집해야 하는 경우가 많은데, Amazon DataSync는 데이터 전송을 위한 고성능과 안정성을 제공하면서 이러한 프로세스를 간소화합니다.

NFS(네트워크 파일 시스템) 및 SMB (서버 메시지 블록)는 두 가지 일반적인 프로토콜입니다. 컴퓨터 시스템이 다른 시스템에 저장된 파일에 액세스합니다. DataSync를 사용하면 이러한 프로토콜 중 하나를 사용하는 파일 서버에서 데이터를 쉽게 수집하고 복제할 수 있습니다. DataSync는 핵심 AWS S3 API 호출과 호환되는 온프레미스 객체 기반 스토리지 시스템에서 데이터 수집을 지원합니다.

DataSync는 Amazon S3를 포함하여 AWS 내의 여러 대상에 쓸 수 있으므로 온프레미스 스토리지에서 AWS S3 데이터 레이크로 데이터를 동기화하는 이상적인 방법입니다.

 

⑦ 대규모 데이터 전송을 위한 AWS Snow 디바이스 제품군 개요

AWS에 수집해야 하는 매우 큰 데이터 세트가 있고 양호한 네트워크 연결이 없거나 데이터 세트의 크기만으로 네트워크 연결을 통해 전송하는 것이 비현실적인 사용 사례의 경우, AWS Snow 장치 제품군을 사용할 수 있습니다.

여기에 요약된 대로 다양한 사용 사례에 사용할 수 있는 여러 장치가 있습니다.

  • AWS Snowcone : 경량(4.5lb/2.1kg) 디바이스8TB의 사용 가능한 스토리지
  • AWS Snowball Edge Optimized (데이터 전송용): 중간 무게(49.7lb/22.5kg) 디바이스80TB의 사용 가능한 스토리지
  • AWS Snowmobile : 대형 45피트세미트레일러 트럭이 끄는 견고한 선적 컨테이너. 최대 100PB의 용량

 

2. 데이터 변환을 위한 AWS 서비스

데이터가 Amazon S3와 같은 적절한 AWS 서비스로 수집되면 다음 파이프라인의 단계에서는 분석을 위해 데이터를 최적화하고 데이터 소비자가 사용할 수 있도록 데이터를 변환해야 합니다.

데이터를 AWS로 수집하기 위해 이전 섹션에서 논의한 일부 도구는 수집 프로세스의 일부로 간단한 변환을 수행할 수 있습니다. 이 섹션에서는 이를 위해 사용할 수 있는 몇 가지 핵심 AWS 서비스를 살펴보겠습니다.

① 간단한 변환을 위한 AWS Lambda 개요

AWS Lambda는 코드 실행을 위한 서버리스 환경을 제공하며 AWS의 가장 인기 있는 서비스 중 하나입니다. Lambda 함수를 트리거하여 코드를 실행할 수 있습니다. 140개 이상의 다른 AWS 서비스와의 통합을 포함하여 여러 가지 방법으로 코드가 실행되는 시간에 대해서만 비용을 지불하면 됩니다.

데이터 엔지니어링 분야에서 Lambda의 일반적인 사용 사례는 들어오는 데이터의 유효성 검사 또는 광 처리 및 변환을 수행하는 것입니다. 최대 15분 동안 실행할 수 있고 최대 10GB의 메모리 구성으로 더 고급 처리도 가능합니다.
또한 람다는 대규모로 병렬 처리되므로 동시 워크로드에 맞게 쉽게 확장할 수 있습니다. 데이터 엔지니어링 관련 작업에서 가장 인기 있는 언어 중 하나인 파이썬을 포함하여 많은 다양한 언어를 지원합니다.

 

② 서버리스 Spark 처리를 위한 AWS Glue 구성 요소

서버리스 ETL 처리

AWS Glue의 핵심은 데이터 변환 및 처리를 수행하기 위한 파이썬 엔진(Glue Python Shell) 또는 아파치 스파크 엔진을 제공하는 서버리스 환경입니다. Python은 중소 데이터 세트에서 변환을 수행하는 데 사용할 수 있으며 Apache Spark는 매우 큰 데이터 세트에 대해 최적의 처리를 가능하게 합니다.

왼쪽은 단일 노드 Glue Python 셸이고, 오른쪽은 다중 노드 Glue Apache Spark 클러스터입니다.

두 엔진 모두 Amazon S3에 있는 데이터 및 AWS Glue 데이터 카탈로그로 작업할 수 있고, 사용자 관점에서 서버리스입니다. 즉, 사용자는 서버를 배포하거나 관리할 필요가 없으며 작업에 필요한 데이터 처리 장치(DPU)의 수를 지정합니다. Glue ETL 작업은 구성된 DPU 수와 기본 코드가 환경에서 실행되는 시간에 따라 요금이 부과됩니다.

 

AWS Glue Data Catalog

시나리오에서 DMS를 사용하여 HR(Human Resources) 데이터베이스를 S3에 복제하면 소스 데이터베이스의 각 테이블에 대해 S3에서 접두사(디렉토리)가 생깁니다. 이 디렉토리에는 일반적으로 소스 테이블의 데이터를 포함하는 여러 파일이 있습니다(예: 소스 직원 테이블의 행을 포함하는 20개의 CSV 파일).

Glue 카탈로그는 이 데이터 세트의 논리적 보기를 제공하고 데이터 카탈로그에서 데이터 세트에 대한 추가 메타데이터를 캡처할 수 있습니다.

 

다음 스크린샷에는 접두사 hr/employees 아래에 개체가 포함된 버킷 과 직원 데이터베이스에서 가져온 데이터가 포함된 여러 CSV 파일이 표시됩니다.

다음 AWS Glue 데이터 카탈로그는 이 데이터의 논리적 보기를 보여줍니다. 이것이 직원 테이블이고 이전 스크린샷에 표시된 S3 위치를 참조한다는 것을 알 수 있습니다. 이 논리적 보기에서 직원 테이블이 HR 데이터베이스에 있고 CSV 파일에 포함된 열과 데이터 유형을 볼 수 있습니다.

AWS Glue Data Catalog는 Hive 메타스토어와 호환되는 카탈로그이며 그것과 통합할 수 있는 다양한 기타 서비스 및 타사 제품과 함께 작동한다는 의미입니다.

 

AWS Glue 크롤러

AWS Glue Crawler는 프로세스입니다. 데이터 원본(예: S3 버킷의 경로)을 검사하고 해당 데이터 원본에 대한 스키마 및 기타 정보를 자동으로 추론할 수 있으므로 AWS Glue 데이터 카탈로그가 관련 정보로 자동으로 채워질 수 있습니다.

 

③ Hadoop 에코시스템 처리를 위한 Amazon EMR 개요

아마존 EMR은 Apache Spark, Apache Hive, Apache Hudi, Apache HBase, Presto, Pig 등과 같은 인기 있는 오픈 소스 빅 데이터 처리 도구를 실행하기 위한 관리 플랫폼을 제공합니다. Amazon EMR은 이러한 툴을 배포하고 클러스터된 Amazon EC2 컴퓨팅 리소스를 관리하는 복잡성을 해결합니다.

AWS 글루와 아마존 EMR 모두 Apache Spark 엔진을 사용하여 빅데이터 처리를 수행할 수 있지만, 중요한 차이점이 있습니다. Apache Spark 환경을 실행한 경험이 있는 팀이 있고 컴퓨팅 성능 및 Apache Spark 설정에 대해 세부적으로 조정된 클러스터가 필요한 경우 Amazon EMR을 사용하는 것이 좋습니다. 그러나 사용 사례가 단순하고 Apache Spark 코드를 사용하여 최소한의 구성으로 데이터를 처리할 수 있기를 원한다면 AWS Glue가 가장 적합할 수 있습니다.

3. 빅 데이터 파이프라인 조정을 위한 AWS 서비스

이 섹션에서는 오케스트레이션 작업에 도움이 되는 여러 AWS 서비스를 살펴봅니다.

① Glue 구성 요소 조정을 위한 AWS Glue Workflow 개요

AWS Glue 워크플로는 AWS Glue 서비스 내의 기능이며 다양한 AWS Glue 구성 요소를 오케스트레이션하는 데 도움이 되도록 설계되었습니다. 워크플로는 Glue 크롤러 및 Glue ETL 작업(Spark 또는 Python 셸)을 실행할 수 있는 순서가 지정된 일련의 단계로 구성됩니다.

이 워크플로는 다음 작업을 오케스트레이션합니다.

  • Glue 크롤러 를 실행 하여 데이터 레이크의 원시 영역에서 새로 수집된 데이터를 Glue 데이터 카탈로그에 추가합니다.
  • Glue Crawler가 완료되면 Glue ETL 작업 을 트리거하여 원시 CSV 데이터를 Parquet 형식으로 변환하고 데이터 레이크의 선별된 영역에 기록합니다.
  • Glue 작업이 완료되면 Glue 크롤러를 트리거하여 선별된 영역에서 새로 변환된 데이터를 Glue 데이터 카탈로그에 추가합니다.

② 복잡한 워크플로를 위한 AWS Step Functions 개요

데이터 변환 파이프라인을 조정하는 또 다른 옵션은 AWS Step Functions입니다. AWS Step Functions는 여러 AWS 서비스와 통합할 수 있는 복잡한 워크플로우를 만들 수 있는 서비스입니다.

Step Functions를 사용하면 JSON을 사용하여 Amazon States Language라는 구조화된 언어를 사용하여 상태 시스템을 정의할 수 있습니다. 또는 Step Functions Workflow Studio를 사용하여 끌어서 놓기를 지원하는 시각적 인터페이스를 사용하여 워크플로우를 만들 수 있습니다.

Amazon EventBridge를 사용하여 스텝 함수를 트리거하거나(예: 스케줄에 따라 또는 EventBridge 이벤트를 트리거하는 다른 것에 대한 응답) 스텝 함수 API를 호출하여 온디맨드 방식으로 스텝 함수를 트리거할 수 있습니다.

 

③ Apache Airflow에 대한 Amazon 관리형 워크플로 개요

Apache Airflow는 복잡한 데이터 엔지니어링 워크플로우를 조정하는 데 널리 사용되는 오픈 소스 솔루션입니다.
에어플로를 통해 사용자는 파이썬 프로그래밍 언어를 사용하여 프로그래밍 방식으로 처리 파이프라인을 생성할 수 있으며 워크플로우의 실행을 모니터링할 수 있는 사용자 인터페이스를 제공합니다. 복잡한 워크플로우를 생성할 수 있으며 AWS, Microsoft Azure, Google Cloud Platform 등의 서비스와의 통합을 포함한 다양한 통합을 지원합니다.

그러나 대규모 프로덕션 환경에 필요한 복원력과 확장성을 지원할 수 있는 방식으로 Apache Airflow를 설치하고 구성하는 것은 복잡하며 환경을 유지 관리하고 업데이트하는 것은 어려울 수 있습니다. 이에 따라 AWS는 사용자가 관리되는 Apache Airflow 버전을 쉽게 배포할 수 있는 MWAA(Managed Workflow for Apache Airflow)를 만들었습니다.

 

MWAA 환경은 다음 구성 요소로 구성됩니다.

  • 스케줄러 : 스케줄러는 실행해야 하는 작업과 해당 작업을 실행할 위치와 시기를 제어하는 멀티스레드 파이썬 프로세스를 실행합니다.
  • 작업자/실행자 : 작업자가 작업을 실행합니다. 각 MWAA 환경에는 적어도 한 명의 작업자가 포함되어 있지만 환경을 구성할 때 사용 가능한 최대 추가 작업자 수를 지정할 수 있습니다. MWAA는 작업자 수를 최대까지 자동으로 스케일아웃하지만 작업이 완료되고 새로운 작업을 실행할 필요가 없을 경우 작업자 수를 자동으로 줄입니다. 작업자는 VPC(AWS 계정의 전용 네트워크)에 연결되어 있습니다.
  • 메타데이터베이스 : 이것은 MWAA 서비스 계정에서 실행되며 태스크의 상태를 추적하는 데 사용됩니다.
  • 웹 서버 : 웹 서버는 또한 MWAA 서비스 계정에서 실행되며 사용자가 작업을 모니터링하고 실행하는 데 사용할 수 있는 웹 기반 인터페이스를 제공합니다.

 

4. 데이터 소비를 위한 AWS 서비스

분석을 위해 데이터가 변환되고 최적화되면 다양한 데이터 소비자는조직에서 다양한 유형의 인터페이스를 통해 데이터에 쉽게 액세스해야 합니다. 이 섹션에서는 다양한 유형의 데이터 소비자가 최적화된 데이터 세트로 작업할 수 있도록 하는 여러 AWS 서비스를 소개합니다. 데이터 엔지니어링 역할과 관련된 기본 서비스를 강조 표시합니다.

① 데이터 레이크의 SQL 쿼리를 위한 Amazon Athena 개요

Amazon Athena는 표준 SQL 쿼리를 사용하여 데이터 레이크 또는 다른 데이터 소스에 있는 데이터를 쿼리하는 서버리스 솔루션입니다. 데이터셋이 Amazon S3에 작성되고 AWS Glue Data 카탈로그에 카탈로그화되는 즉시 인프라를 설정하거나 관리할 필요 없이 데이터에 대해 복잡한 SQL 쿼리를 실행할 수 있습니다.

Amazon Athena를 사용하면 데이터 소비자가 AWS Management Console 인터페이스 또는 JDBC 또는 ODBC 드라이버를 통해 데이터 레이크(또는 기타 연결된 데이터 소스)의 데이터셋을 쿼리할 수 있습니다.
SQL Workbench와 같은 그래픽 SQL 쿼리 도구는 JDBC 드라이버를 통해 Amazon Athena에 연결할 수 있으며, ODBC 드라이버를 통해 프로그래밍 방식으로 Amazon Athena에 연결하고 코드의 SQL 쿼리를 실행할 수 있습니다.
Athena의 기능인 Athena Federated Query를 사용하면 Athena가 S3 데이터 레이크의 데이터뿐만 아니라 다른 데이터 소스를 쿼리할 수 있도록 커넥터를 구축할 수 있습니다. Amazon은 Athena용으로 미리 구축된 여러 오픈 소스 커넥터를 제공하여 Athena를 Amazon DynamoDB(NoSQL 데이터베이스)와 같은 소스와 다른 Amazon 관리 관계형 데이터베이스 엔진, 심지어 중앙 집중식 로깅 서비스인 Amazon CloudWatch Logs에도 연결할 수 있습니다.

 

② 데이터 웨어하우징 및 데이터 레이크하우스 아키텍처를 위한 Amazon Redshift 및 Redshift Spectrum 개요

Redshift 데이터 웨어하우스는 일반적으로 OLAP(Online Analytical Processing) 워크로드라고 하는 보고 및 분석 워크로드를 위해 설계되었습니다.

Redshift 클러스터에 대해 실행되는 일반적인 SQL 쿼리는 데이터베이스의 수백 또는 수천 또는 수백만 행에서 데이터를 검색할 수 있으며, 종종 서로 다른 테이블 간에 복잡한 조인을 수행하고 특정 데이터 열을 집계하거나 평균화하는 등의 계산을 수행할 수 있습니다.

다음 다이어그램은 Redshift 및 Redshift Spectrum 아키텍처를 보여줍니다.

 

③ 데이터 시각화를 위한 Amazon QuickSight 개요

대부분의 사람들은 시각적으로 쉽게 볼 수 있으므로 데이터의 그래픽 표현을 선호합니다. 분기, 세그먼트 및 지역 간 판매를 비교하거나 상위를 식별합니다.

Amazon QuickSight는 이러한 유형의 복잡한 시각화를 생성할 수 있는 AWS의 서비스이지만 정적 시각적 개체를 제공하는 것 이상으로 QuickSight에서 생성한 차트사용자가 데이터를 필터링하고 드릴다운하여 추가 세부 정보를 얻을 수 있습니다. 

데이터 엔지니어는 Amazon Athena와의 통합을 통해 Amazon S3 기반 데이터 레이크의 데이터에 액세스하는 것을 포함하여 다양한 소스의 데이터에 액세스하도록 QuickSight를 구성할 수 있습니다.

댓글