ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 엔지니어링 도구 in AWS
    데이터 엔지니어링 2023. 1. 16. 14:54

    데이터 수집

    DMS ( Amazon Database Migration Service)

     기존의 데이터베이스를 다른 데이터베이스로 마이그레이션 하거나 S3 기반 데이터 레이크로 동기화할 때 사용하는 서비스

    CDC (Change Data Capture)
    데이터베이스가 변경에 대한 로그 파일(database transaction log files)을 기반으로 S3에 변경점이 적용되는 것을 확인하고 기록하는 과정

    Amazon Kinesis Series

     스트리밍 데이터 수집 및 처리 과정을 간소화하는 관리형 서비스

     

    Kinesis Data Firehose

         스트리밍 데이터를 수신하고 일정 기간 동안 해당 데이터를 버퍼링 한 다음 지원하는 대상에 파일을 생성하는 서비스

         버퍼링 한 데이터를 전달할 수 있는 대상이 제한되어 있으므로 확인이 필요

         버퍼링 없이 빠른 전달이 필요한 경우 적절하지 않음

    Kinesis Data Streams

         스트리밍 데이터를 수신하고 수신한 데이터를 빠른 시간 안에 사용할 필요가 있을 경우 또는 수신한 데이터를 사용자 지정 애플리케이션으로 처리하려는 경우 사용할 수 있는 서비스

     

      Kinesis Data Streams가 수신한 데이터를 사용하는 애플리케이션

    • 다른 Kinesis 서비스
    • AWS Lambda
    • Containers

    Kinesis Data Analytics

          표준 SQL 쿼리 또는 Apache Flink˚를 사용하여 스트리밍 데이터 처리 과정을 간소화해 주는 서비스

          실시간 데이터를 수집하는 동시에 데이터 분석 및 주요 지표 추출이 필요한 경우 사용

          기존에 사용하고 있는 Apache Flink 애플리케이션을 마이그레이션 하려는 경우 사용권장

    참고
    Apache Flink는 Apache Software Foundation에서 개발한 오픈 소스 통합 스트림 처리 및 일괄 처리 프레임워크

    Kinesis Vidio Streams

          여러 소스에서 수집은 비디오, 오디오와 같은 시계열 데이터 스트림을 처리하는 데 사용하는 서비스

    Amazon Kinesis agent
    별도의 프로세스에서 파일에 기록되는 데이터를 Kinesis로 스트리밍 하려는 경우에 사용할 수 있도록 AWS에서 제공하는 agent
    최적화가 필요하지 않은 애플리케이션이라면 손쉽게 데이터 수집 파이프라인을 생성할  수 있다.

    참고
    https://docs.aws.amazon.com/ko_kr/streams/latest/dev/writing-with-agents.html

    Amazon MSK( Managed Streaming for Apache Kafka )

    Amazon MSK는 안전하고 가용성이 뛰어난 완전관리형 Apache Kafka˚ 서비스로서, 저렴한 비용으로 스트리밍 데이터를 실시간으로 손쉽게 수집하고 처리하게 해 줍니다

    참고
    Apache Kafka는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 중개인 프로젝트

    Amazon AppFlow

    여러 기업에서 활용되는 Salesforce, SAP, Zendesk, Slack 및 ServiceNow와 같은 SaaS 서비스에서 데이터 수집 및 변환하는 데이터 파이프를 생성해 주는 서비스

    배치와 실시간 형식 둘 다 생성 가능하고 필터링 및 검증을 데이터 파이프라인 자체에 포함시켜 데이터 파이프라인 생성 단계를 간편화 시킬 수 있다.

    참고
    https://aws.amazon.com/ko/appflow/

    Amazon Transfer Family

      서버와 S3( 데이터레이크 ) 사이의 FTP / SFTP 프로토콜 통신을 통한 데이터 파이프라인 구성할 때 사용하는 서비스

      

    Amazon DataSync

      NFS, SMB와 같은 온프레미스의 네트워크 스토리지에서 데이터를 수집 과정을 단순화하는 서비스

     

    Amazon Snow

      로컬 데이터 센터의 네트워크에 연결하여 데이터를 저장하고 AWS 센터로 이송하여 AWS에 저장하는데 디바이스

      종류 :

       - AWS Snowcone : 2.1kg의 경량 디바이스, 저장용량 8TB

       - AWS Snowball Edge Optimized : 22.5kg의 중형 디바이스, 저장용량 80TB 

       - AWS Snowmobile : 13.7미터의 컨테이너형 디바이스, 저장용량 100PB

    데이터 변환

      Amazon DMS와 Kinesis Firehose는 Parquet 형식으로 데이터를 작성할 수 있습니다. 하지만 Parquet 형식의 데이터가 넓게 사용되지 않기 때문에 JSON 또는 CSV에서 Parquet로, Parquet에서 JSON 또는 CSV로의 변환과 같이 변환 필요한데 다음 서비스들을 통해 진행 가능합니다.

    AWS Lambda

      코드 실행을 위한 서버리스 환경을 제공하는 서비스

    Parquet이란?
    Apache Hadoop 에코시스템의 무료 오픈 소스 열 지향 데이터 저장 형식

    AWS Glue

      서버리스 Spark로 Python 엔진 또는 Apache Spark˚ 엔진을 이용하여 데이터 변환과 처리가 가능한 서비스

      Python 엔진의 경우 작거나 중간 크기의 데이터셋을 다루는 것에 적합하고 Apache Spark 엔진의 경우 매우 큰 데이터셋을 다루는 것이 가능하다. 두 엔진 사이의 차이점은 Python 엔진의 경우 단일 노드를 이용하는 엔진이고 Apache Spark 엔진은 다수의 노드를 이용하는 엔진이라는 점입니다.

    참고
    Apache Spark는 오픈 소스 클러스터 컴퓨팅 프레임워크
    데이터를 디스크보다 전달속도가 빠른 메모리를 이용하여 처리할  수 있도록 구현된 통합 분석 엔진

     

    AWS EMR

    관리형 Hadoop 서비스이며, Apache Spark, Apache Hive, Apache Hudi, Apache HBase, Presto, Pig 등과 같은 빅데이터를 다루기 위한 오픈 소스 툴에 적합한 플랫폼을 제공

     

    참고
    AWS Glue와 AWS EMR의 가장 큰 차이점은  Glue는 서버리스 환경으로 컴퓨팅 클러스터에 대한 관리를 사용자가 따로 할 필요가 없지만 AWS EMR의 경우는 서버리스가 아니라서 사용자의 관리가 필요합니다. 

    데이터 파이프라인 조정

    AWS Glue Workflow

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

     

    AWS Step Functions

    많은 AWS 서비스들을 이용해 복잡한 워크플로우를 생성하고 오케스트레이션 할 수 있는 서비스

    서버리스 서비스로 고정 인프라 비용이 아닌 사용량에 따라 서비스 비용을 지불합니다.

    JSON과 GUI로 워크플로우 정의를 할 수 있습니다.

    Amazon EventBridge와 Step Functions API를 통해 트리거 할 수 있습니다.

    AWS Glue Workflow와 AWS Step Functions 차이
    Glue의 경우 ETL에 대한 Workflow만 구성 가능하고,
    Step Functions의 경우 ETL 외의 AWS Lambda와 같은 작업을 Workflow에 포함시킬 수 있다.

     

    Amazon managed workflows for Apache Airflow.

    Amazon managed workflows for Apache Airflow는 이름과 같이 AWS에서 관리해 주는 Apache Airflow 서비스입니다. 

    Apache Airflow에 발생하는 부하에 따라서 컴퓨팅 환경이 유연하게 크게 작아져서 효율적인 작업환경 구성을 도와줍니다.

    Apache Airflow
    복잡한 데이터 엔지니어링 워크플로우를 오케스트레이션 할 수 있는 오픈 소스 솔루션입니다
    Python 언어를 이용한 프로그래밍 방식으로 데이터 파이프라인을 생성할 수 있고, 워크플로우의 실행을 모니터링하는 인터페이스를 제공합니다.
    복잡한 워크플로우를  생성할 수 있고 AWS, Azure, GCP 등의 서비스를 통합하는 것을 가능하게 합니다.

    데이터 사용

    Amazon Athena

    데이터 레이크 또는 다른 데이터에 있는 데이터를 쿼리 할 수 있는 서버리스 설루션

    JDBC
      자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API

    ODBC
      마이크로소프트가 만든, 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격

    Amazon Redshift & Redshift Spectrum

    Redshift Spectrum은 데이터 웨어하우스에 있는 데이터와 데이터 레이크에 있는 데이터를 함께 사용해서 단일 쿼리문으로 쿼리 할 수 있는 서비스

    Amazon QuickSight

    Amazon Athena와 Amazon S3를 포함한 다양한 소스의 데이터를 액세스 하여 그 데이터를 이용해 시각화할 수 있는 서버리스 서비스

    댓글

Designed by Tistory.