Athena & Step functions으로
만드는 Serverless Data Pipeline
변규현
소프트웨어 엔지니어
당근마켓
오늘 다룰 내용!
Private subnet
VPC
AWS Cloud
Availability Zone
Public
subnet
Users ALB Server Athena
Firehose
DynamoDB Raw
data
Micro services
GRPC
Lambda
DDB
Stream
Step functions
S3
EventBridge
Introduction
• 쿼리 목적에 따른 데이터 스토어 (S3, Redshift, RDS)
• Athena를 사용한 서버리스 쿼리서비스 알아보기
• Batch Pipeline 살펴보기
• AWS Step functions를 통해 Pipeline 작성하기
1. 쿼리 목적에 따른 데이터 스토어 살펴보기
Feat. S3, Redshift, and RDS
S3
• 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체
스토리지 서비스
• 99.999999999%의 데이터 내구성을 제공
• 저장되는 Object의 생명주기 적용 가능
• 접근 빈도에 따른 과금방식 적용 가능
• 거의 모든 보안, 규정, 감사 기능을 제공
Redshift
RDS – Relational Database Service
• 가장 기본적인 데이터 저장소
• 적은 데이터일 경우에는 RDS에서 저장하고 쿼리하는 게 간편함
• 트래픽이 조금만 늘어나도 대응하기 어려운 구조
• 원장데이터는 보통 RDB에 존재함
2. Athena를 사용한 서버리스 쿼리서비스 알아보기
Amazon Athena
• 서버리스로 ETL이 필요없음
• 스캔한 데이터에 대해서만 과금되는 구조
• Presto를 사용하며, CSV, JSON, ORC, Avro, Parquet 등 다양한 표준 데이터
형식과 호환됨
• S3를 기본 데이터 스토어로 사용하여 데이터 가용성과 내구성이 우수함
• 병렬 방식으로 쿼리를 자동 실행하기 때문에 대부분 결과가 수 초 만에
반환됨
• Athena를 사용하면 관계형, 비관계형, 객체 및 사용자 지정 데이터 원본에
저장된 데이터에 대해 SQL 쿼리를 실행함
• Athena SQL 쿼리에서 SageMaker 기계 학습 모델을 호출하여 추론을 실행함
3. Batch Pipeline 살펴보기
Batch process via Airflow
https://aws.amazon.com/ko/blogs/korea/introducing-amazon-managed-workflows-for-apache-airflow-mwaa/
Airflow를 사용해야한다면?
• Airflow가 올라갈 머신이 필요함
• 머신의 스펙을 관리해야함
• 파이프라인을 코드로 작성해야함
• 올리면 모니터링해야하고, 나중에 또 일이 생길 것 같은 기분이 있음...
4. AWS Step functions를 통해 Pipeline 작성하기
AWS Step Functions
• 간단하게 끌어서 놓기 인터페이스 지원
• 통합 코드 작성 감소
• 내결함성 및 상태 유지 워크플로 구축
• try/catch, 재시도 및 롤백 기능이 정의된 비즈니스 로직에 따라 오류와 예외를
자동으로 처리
• 관리하는 건 코드이고, 서버리스 형태로 인프라 요소는 모두 없음
Pipeline
serverless.yml
main.go
QueryAthena
WriteS3
쿼리 추가하기
References
• https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/selecting-
content-from-objects.html
• https://aws.amazon.com/ko/s3/
• https://aws.amazon.com/ko/athena
• https://aws.amazon.com/ko/redshift
• https://aws.amazon.com/ko/step-functions
team.daangn.com
에서
함께할 분을 찾고 있어요😊
감사합니다.
Blog : novemberde.github.io
Github: github.com/novemberde

Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Online 2021

  • 1.
    Athena & Stepfunctions으로 만드는 Serverless Data Pipeline 변규현 소프트웨어 엔지니어 당근마켓
  • 2.
  • 3.
    Private subnet VPC AWS Cloud AvailabilityZone Public subnet Users ALB Server Athena Firehose DynamoDB Raw data Micro services GRPC Lambda DDB Stream Step functions S3 EventBridge
  • 5.
    Introduction • 쿼리 목적에따른 데이터 스토어 (S3, Redshift, RDS) • Athena를 사용한 서버리스 쿼리서비스 알아보기 • Batch Pipeline 살펴보기 • AWS Step functions를 통해 Pipeline 작성하기
  • 6.
    1. 쿼리 목적에따른 데이터 스토어 살펴보기 Feat. S3, Redshift, and RDS
  • 7.
    S3 • 업계 최고의확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스 • 99.999999999%의 데이터 내구성을 제공 • 저장되는 Object의 생명주기 적용 가능 • 접근 빈도에 따른 과금방식 적용 가능 • 거의 모든 보안, 규정, 감사 기능을 제공
  • 8.
  • 9.
    RDS – RelationalDatabase Service • 가장 기본적인 데이터 저장소 • 적은 데이터일 경우에는 RDS에서 저장하고 쿼리하는 게 간편함 • 트래픽이 조금만 늘어나도 대응하기 어려운 구조 • 원장데이터는 보통 RDB에 존재함
  • 10.
    2. Athena를 사용한서버리스 쿼리서비스 알아보기
  • 11.
    Amazon Athena • 서버리스로ETL이 필요없음 • 스캔한 데이터에 대해서만 과금되는 구조 • Presto를 사용하며, CSV, JSON, ORC, Avro, Parquet 등 다양한 표준 데이터 형식과 호환됨 • S3를 기본 데이터 스토어로 사용하여 데이터 가용성과 내구성이 우수함 • 병렬 방식으로 쿼리를 자동 실행하기 때문에 대부분 결과가 수 초 만에 반환됨 • Athena를 사용하면 관계형, 비관계형, 객체 및 사용자 지정 데이터 원본에 저장된 데이터에 대해 SQL 쿼리를 실행함 • Athena SQL 쿼리에서 SageMaker 기계 학습 모델을 호출하여 추론을 실행함
  • 12.
    3. Batch Pipeline살펴보기
  • 13.
    Batch process viaAirflow https://aws.amazon.com/ko/blogs/korea/introducing-amazon-managed-workflows-for-apache-airflow-mwaa/
  • 14.
    Airflow를 사용해야한다면? • Airflow가올라갈 머신이 필요함 • 머신의 스펙을 관리해야함 • 파이프라인을 코드로 작성해야함 • 올리면 모니터링해야하고, 나중에 또 일이 생길 것 같은 기분이 있음...
  • 15.
    4. AWS Stepfunctions를 통해 Pipeline 작성하기
  • 16.
    AWS Step Functions •간단하게 끌어서 놓기 인터페이스 지원 • 통합 코드 작성 감소 • 내결함성 및 상태 유지 워크플로 구축 • try/catch, 재시도 및 롤백 기능이 정의된 비즈니스 로직에 따라 오류와 예외를 자동으로 처리 • 관리하는 건 코드이고, 서버리스 형태로 인프라 요소는 모두 없음
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 25.
    References • https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/selecting- content-from-objects.html • https://aws.amazon.com/ko/s3/ •https://aws.amazon.com/ko/athena • https://aws.amazon.com/ko/redshift • https://aws.amazon.com/ko/step-functions
  • 26.
  • 27.