발표영상 다시보기: https://youtu.be/hPvBst9TPlI
S3 기반의 데이터레이크에서 대량의 데이터 변환과 처리에 사용될 수 있는 가장 대표적인 솔루션이 Apache Spark 입니다. EMR 플랫폼 환경에서 쉽게 적용 가능한 Apache Spark의 성능 향상 팁을 소개합니다. 또한 데이터의 레코드 레벨 업데이트, 리소스 확장, 권한 관리 및 모니터링과 같은 다양한 데이터 워크로드 관리 최적화 방안을 함께 살펴봅니다.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...Amazon Web Services Korea
AWS re:Invent에서는 다양한 고객들의 요구에 맞추어 새로운 분석 및 서버리스 서비스가 대거 출시되었습니다. 본 강연에서는 새롭게 출시된 핵심 분석 기능들과 함께, 누구나 손쉽게 사용할 수 있는 AWS의 분석 서버리스와 On-demand 기능들에 대한 심층적인 정보를 확인하실 수 있습니다.
AWS Glue는 고객이 분석을 위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형 ETL(추출, 변환 및 로드) 서비스입니다. AWS 관리 콘솔에서 클릭 몇 번으로 ETL 작업을 생성하고 실행할 수 있습니다. 빅데이터 분석 시 다양한 데이터 소스에 대한 전처리 작업을 할 때, 별도의 데이터 처리용 서버나 인프라를 관리할 필요가 없습니다. 본 세션에서는 지난 5월 서울 리전에 출시한 Glue 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
This document provides an overview of the architectures and internals of Amazon DocumentDB and MongoDB. It discusses how DocumentDB separates computing and storage layers for improved scalability compared to MongoDB, which couples these layers. It also explains key differences in how each handles data reads/writes, replication, sharding, and other functions. The goal is to help users understand the pros and cons of each for their use cases and needs around performance, scalability and management.
발표영상 다시보기: https://youtu.be/eQjkwhyOOmI
대규모 데이터 레이크 구성 및 관리는 복잡하고 시간이 많이 걸리는 작업입니다. AWS Lake Formation은 수일만에 안전한 데이터 레이크를 구성할 수 있는 완전 관리 서비스입니다. 본 세션에서는 데이터 수집, 분류, 정리, 변환 및 보안을 위해 AWS Lake Formation을 통해 Amazon S3, EMR, Redshift 및 Athena와 같은 분석 도구를 쉽게 구성하는 방법을 알아봅니다. (2019년 11월 서울 리전 출시)
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...Amazon Web Services Korea
Apache Airflow는 복잡한 데이터 처리 파이프라인의 전체적인 프로세스를 자동화하기 위한 워크플로우 관리 플랫폼이며 오픈 소스 커뮤니티에서 활발하게 기여하고 있는 top-level 프로젝트 입니다. AWS는 최근에 Amazon Managed Workflow for Apache Airflow (MWAA) 서비스를 정식 출시하였고, 본 강연에서는 Apache Airflow 및 MWAA를 소개하고 어떻게 AWS 서비스와 연동하여 데이터 처리 워크플로우를 구축할 수 있는지 데모를 통해 알려 드립니다.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...Amazon Web Services Korea
AWS re:Invent에서는 다양한 고객들의 요구에 맞추어 새로운 분석 및 서버리스 서비스가 대거 출시되었습니다. 본 강연에서는 새롭게 출시된 핵심 분석 기능들과 함께, 누구나 손쉽게 사용할 수 있는 AWS의 분석 서버리스와 On-demand 기능들에 대한 심층적인 정보를 확인하실 수 있습니다.
AWS Glue는 고객이 분석을 위해 손쉽게 데이터를 준비하고 로드할 수 있게 지원하는 완전관리형 ETL(추출, 변환 및 로드) 서비스입니다. AWS 관리 콘솔에서 클릭 몇 번으로 ETL 작업을 생성하고 실행할 수 있습니다. 빅데이터 분석 시 다양한 데이터 소스에 대한 전처리 작업을 할 때, 별도의 데이터 처리용 서버나 인프라를 관리할 필요가 없습니다. 본 세션에서는 지난 5월 서울 리전에 출시한 Glue 서비스에 대한 자세한 소개와 함께 다양한 활용 팁을 데모와 함께 소개해 드립니다.
This document provides an overview of the architectures and internals of Amazon DocumentDB and MongoDB. It discusses how DocumentDB separates computing and storage layers for improved scalability compared to MongoDB, which couples these layers. It also explains key differences in how each handles data reads/writes, replication, sharding, and other functions. The goal is to help users understand the pros and cons of each for their use cases and needs around performance, scalability and management.
발표영상 다시보기: https://youtu.be/eQjkwhyOOmI
대규모 데이터 레이크 구성 및 관리는 복잡하고 시간이 많이 걸리는 작업입니다. AWS Lake Formation은 수일만에 안전한 데이터 레이크를 구성할 수 있는 완전 관리 서비스입니다. 본 세션에서는 데이터 수집, 분류, 정리, 변환 및 보안을 위해 AWS Lake Formation을 통해 Amazon S3, EMR, Redshift 및 Athena와 같은 분석 도구를 쉽게 구성하는 방법을 알아봅니다. (2019년 11월 서울 리전 출시)
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...Amazon Web Services Korea
Apache Airflow는 복잡한 데이터 처리 파이프라인의 전체적인 프로세스를 자동화하기 위한 워크플로우 관리 플랫폼이며 오픈 소스 커뮤니티에서 활발하게 기여하고 있는 top-level 프로젝트 입니다. AWS는 최근에 Amazon Managed Workflow for Apache Airflow (MWAA) 서비스를 정식 출시하였고, 본 강연에서는 Apache Airflow 및 MWAA를 소개하고 어떻게 AWS 서비스와 연동하여 데이터 처리 워크플로우를 구축할 수 있는지 데모를 통해 알려 드립니다.
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
Amazon ElastiCache는 Redis 및 MemCached와 호환되는 완전관리형 서비스로서 현대적 애플리케이션의 성능을 최적의 비용으로 실시간으로 개선해 줍니다. ElastiCache의 Best Practice를 통해 최적의 성능과 서비스 최적화 방법에 대해 알아봅니다.
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Amazon Web Services Korea
발표영상 다시보기: https://kr-resources.awscloud.com/data-databases-and-analytics/aurora-mysql-backtrack%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B9%A0%EB%A5%B8-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95-%EC%A7%84%EA%B5%90%EC%84%A0-aws-database-modernization-day-%EC%98%A8%EB%9D%BC%EC%9D%B8-2
Aurora MySQL은 기존 MySQL의 운영에 추가한 많은 기능들을 제공해 드리고 있습니다. 이 중 복구에 관련된 기능인 Aurora MySQL PITR과 Backtrack에 대한 소개를 드리고자 합니다. 두 기능을 통해 운영 중 일어날 수 있는 rollback 상황에서, 어떠한 방식으로 복구를 할 수 있는지 실습해보실 수 있습니다.
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
LG ThinQ는 LG전자의 가전제품과 서비스를 아우르는 플랫폼 브랜드로서 앱 하나로 간편한 컨트롤, 똑똑한 케어, 스마트한 쇼핑까지 한번에 가능한 플랫폼입니다. ThinQ 플랫폼은 글로벌 서비스로 제공되고 있어, 작업 시간을 최소화하고, 서비스의 영향을 최소화 할 필요가 있었습니다. 따라서 DB 버전 업그레이드 작업 시 애플리케이션 배포가 필요없는 Blue/Green Deployment 방식은 최선의 선택이 되었습니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
- The document discusses Amazon Redshift, a cloud data warehouse service from AWS.
- It provides an overview of Redshift's architecture and how it has evolved over time, including the addition of new instance types.
- It also discusses how Redshift can be used with Amazon S3 as a data lake, through features like Redshift Spectrum, to enable analytics on both data warehouse and lake storage.
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...Amazon Web Services Korea
스타트업에서 빠르게 분석 서비스를 구성하기 위한 AWS 분석 서비스를 활용하고 있습니다. 본 세션에서는 커머스 서비스의 대용량 데이터를 Amazon Kinesis Firehose를 이용하여 실시간으로 사내에 흐르는 중요 데이터를 캡쳐하여 다양한 용도로 사용하는 방법을 알아봅니다. 매달 수백억 건의 사용자 행동 로그를 안정적이고 견고하게 수집하여 인하우스 데이터 분석 방법을 소개합니다. 또한, Amazon Personalize를 통한 개인화 추천 및 Amazon SageMaker를 이용한 이미지분류 등 기계 학습 활용 사례도 공유합니다.
This document provides an overview and agenda for an AWS webinar on AWS Glue. It introduces AWS Glue as a fully managed and serverless ETL service that can manage metadata for various data sources. The webinar will cover the background of AWS Glue, its key features including being serverless and enabling secure development in notebooks, use cases, pricing, and a conclusion. It also provides details on the components and functions of AWS Glue like the data catalog, orchestration, and serverless engines.
- 동영상 보기: https://www.youtube.com/watch?v=Rq4I57eqIp4
Amazon RDS 프록시는 Amazon Relational Database Service (RDS)를 위한 완전 관리형 고가용성 데이터베이스 프록시로, 애플리케이션의 확장 성, 데이터베이스 장애에 대한 탄력성 및 보안 성을 향상시킬 수 있습니다. (2020년 6월 서울 리전 출시)
[Bespin Global 파트너 세션] 분산 데이터 통합 (Data Lake) 기반의 데이터 분석 환경 구축 사례 - 베스핀 글로벌 장익...Amazon Web Services Korea
기업 환경에 따라 차이는 있겠지만, 최근 대부분의 기업은 데이터 분석 환경이 구축되어 있고, 이를 기반으로 데이터를 분석하고 있습니다. 그럼에도 불구하고 현업에서는 분석하고자 하는 데이터가 없거나 변화하는 비즈니스 요건을 반영하지 못한다는 불만을 제기하고, 분석 환경을 제공하는 IT운영팀은 변화하는 비즈니스 요건에 따라 분석 환경을 적시에 제공하기 쉽지 않다는 어려움을 토로하고 있습니다. 이 해결책으로 운영시스템에 데이터베이스 형태로 존재하고 있거나, 현업의 PC에서 수작업으로 작성한 정형, 비정형 파일을 통합 관리할 수 있고, 또한 인프라 환경의 확장 및 변경을 보다 유연하게 할 수 있는 AWS Cloud 기반의 분석 환경 구축 사례를 소개하고자 합니다.
다시보기 링크: https://youtu.be/YvYfNZHMJkI
Cloud DW technology trends and considerations for enterprises to apply snowflakeSANG WON PARK
올해 처음 오프라인으로 진행된 "한국 데이터 엔니지어 모임"에서 발표한 cloud dw와 snowflake라는 주제로 발표한 내용을 정리하여 공유함. (2022.07)
[ 발표 주제 ]
Cloud DW 기술 트렌드와 Snowflake 적용
- Modern Data Stack에서 Cloud DW의 역할
- 기존 Data Lake + DW와 무엇이 다른가?
- Data Engineer 관점에서 어떻게 사용하면 좋을까? (기능/성능/비용 측면의 장점/단점)
[ 주요 내용 ]
- 최근 많은 Data Engineer가 기존 기술 스택(Hadoop, Spark, DW 등)의 기술적/운영적 한계를 극복하기 위한 고민중.
- 특히 Cloud의 장점과 운영 및 성능을 고려한 Cloud DW(AWS Redshift, GCP BigQuery, DataBricks, Snowflake)를 고려
- 이 중 Snowflake를 실제 프로젝트에 적용한 경험과 기술적인 특징/장점/단점을 공유하고자 함.
작년부터 정부의 데이터 정책 변화와 Cloud 기반의 기술 변화 가속화로 기업의 데이터 환경에도 많은 변화가 발생하고 있고, 기업들은 이에 적응하기 위한 다양한 시도를 하고 있다.
그 중심에 cloud dw (또는 Lake house)가 위치하고 있으며, 이를 기반으로 통합 데이터 플랫폼으로의 아키텍처로 변화하고 있다. 하지만, 아직까지 기존 DW 제품과 주요 CSP(AWS, GCP, Azure)의 제품군을 다양하게 시도하고 있으나, 기대와 다르게 생각보나 낮은 성능 또는 비싼 사용료, 운영의 복잡성으로 인한 많은 시행착오를 거치고 있다.
이 상황에서 작년에 처음 검토한 snowflake의 다양한 기능들이 기업들의 고민과 문제를 상당부분 손쉽게 해결할 수 있다는 것을 확인할 수 있었고, 이를 이용하여 실제 많은 기업들에게 적용하기 위한 POC를 수행하거나, 실제 적용하는 프로젝트를 수행하게 되었다.
본 발표 내용은 이러한 경험을 기반으로 기업(그리고 실제 업무를 수행할 Data Engineer) 관점에서 snowflake가 어떻게 문제를 해결할 수 있는지 cloud dw를 도입/활용/확장 하는 단계별로 문제와 해결 방안을 중심으로 설명하였다.
https://blog.naver.com/freepsw?Redirect=Update&logNo=222815591918
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
Amazon ElastiCache는 Redis 및 MemCached와 호환되는 완전관리형 서비스로서 현대적 애플리케이션의 성능을 최적의 비용으로 실시간으로 개선해 줍니다. ElastiCache의 Best Practice를 통해 최적의 성능과 서비스 최적화 방법에 대해 알아봅니다.
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Amazon Web Services Korea
발표영상 다시보기: https://kr-resources.awscloud.com/data-databases-and-analytics/aurora-mysql-backtrack%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B9%A0%EB%A5%B8-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95-%EC%A7%84%EA%B5%90%EC%84%A0-aws-database-modernization-day-%EC%98%A8%EB%9D%BC%EC%9D%B8-2
Aurora MySQL은 기존 MySQL의 운영에 추가한 많은 기능들을 제공해 드리고 있습니다. 이 중 복구에 관련된 기능인 Aurora MySQL PITR과 Backtrack에 대한 소개를 드리고자 합니다. 두 기능을 통해 운영 중 일어날 수 있는 rollback 상황에서, 어떠한 방식으로 복구를 할 수 있는지 실습해보실 수 있습니다.
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
LG ThinQ는 LG전자의 가전제품과 서비스를 아우르는 플랫폼 브랜드로서 앱 하나로 간편한 컨트롤, 똑똑한 케어, 스마트한 쇼핑까지 한번에 가능한 플랫폼입니다. ThinQ 플랫폼은 글로벌 서비스로 제공되고 있어, 작업 시간을 최소화하고, 서비스의 영향을 최소화 할 필요가 있었습니다. 따라서 DB 버전 업그레이드 작업 시 애플리케이션 배포가 필요없는 Blue/Green Deployment 방식은 최선의 선택이 되었습니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
- The document discusses Amazon Redshift, a cloud data warehouse service from AWS.
- It provides an overview of Redshift's architecture and how it has evolved over time, including the addition of new instance types.
- It also discusses how Redshift can be used with Amazon S3 as a data lake, through features like Redshift Spectrum, to enable analytics on both data warehouse and lake storage.
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...Amazon Web Services Korea
스타트업에서 빠르게 분석 서비스를 구성하기 위한 AWS 분석 서비스를 활용하고 있습니다. 본 세션에서는 커머스 서비스의 대용량 데이터를 Amazon Kinesis Firehose를 이용하여 실시간으로 사내에 흐르는 중요 데이터를 캡쳐하여 다양한 용도로 사용하는 방법을 알아봅니다. 매달 수백억 건의 사용자 행동 로그를 안정적이고 견고하게 수집하여 인하우스 데이터 분석 방법을 소개합니다. 또한, Amazon Personalize를 통한 개인화 추천 및 Amazon SageMaker를 이용한 이미지분류 등 기계 학습 활용 사례도 공유합니다.
This document provides an overview and agenda for an AWS webinar on AWS Glue. It introduces AWS Glue as a fully managed and serverless ETL service that can manage metadata for various data sources. The webinar will cover the background of AWS Glue, its key features including being serverless and enabling secure development in notebooks, use cases, pricing, and a conclusion. It also provides details on the components and functions of AWS Glue like the data catalog, orchestration, and serverless engines.
- 동영상 보기: https://www.youtube.com/watch?v=Rq4I57eqIp4
Amazon RDS 프록시는 Amazon Relational Database Service (RDS)를 위한 완전 관리형 고가용성 데이터베이스 프록시로, 애플리케이션의 확장 성, 데이터베이스 장애에 대한 탄력성 및 보안 성을 향상시킬 수 있습니다. (2020년 6월 서울 리전 출시)
[Bespin Global 파트너 세션] 분산 데이터 통합 (Data Lake) 기반의 데이터 분석 환경 구축 사례 - 베스핀 글로벌 장익...Amazon Web Services Korea
기업 환경에 따라 차이는 있겠지만, 최근 대부분의 기업은 데이터 분석 환경이 구축되어 있고, 이를 기반으로 데이터를 분석하고 있습니다. 그럼에도 불구하고 현업에서는 분석하고자 하는 데이터가 없거나 변화하는 비즈니스 요건을 반영하지 못한다는 불만을 제기하고, 분석 환경을 제공하는 IT운영팀은 변화하는 비즈니스 요건에 따라 분석 환경을 적시에 제공하기 쉽지 않다는 어려움을 토로하고 있습니다. 이 해결책으로 운영시스템에 데이터베이스 형태로 존재하고 있거나, 현업의 PC에서 수작업으로 작성한 정형, 비정형 파일을 통합 관리할 수 있고, 또한 인프라 환경의 확장 및 변경을 보다 유연하게 할 수 있는 AWS Cloud 기반의 분석 환경 구축 사례를 소개하고자 합니다.
다시보기 링크: https://youtu.be/YvYfNZHMJkI
Cloud DW technology trends and considerations for enterprises to apply snowflakeSANG WON PARK
올해 처음 오프라인으로 진행된 "한국 데이터 엔니지어 모임"에서 발표한 cloud dw와 snowflake라는 주제로 발표한 내용을 정리하여 공유함. (2022.07)
[ 발표 주제 ]
Cloud DW 기술 트렌드와 Snowflake 적용
- Modern Data Stack에서 Cloud DW의 역할
- 기존 Data Lake + DW와 무엇이 다른가?
- Data Engineer 관점에서 어떻게 사용하면 좋을까? (기능/성능/비용 측면의 장점/단점)
[ 주요 내용 ]
- 최근 많은 Data Engineer가 기존 기술 스택(Hadoop, Spark, DW 등)의 기술적/운영적 한계를 극복하기 위한 고민중.
- 특히 Cloud의 장점과 운영 및 성능을 고려한 Cloud DW(AWS Redshift, GCP BigQuery, DataBricks, Snowflake)를 고려
- 이 중 Snowflake를 실제 프로젝트에 적용한 경험과 기술적인 특징/장점/단점을 공유하고자 함.
작년부터 정부의 데이터 정책 변화와 Cloud 기반의 기술 변화 가속화로 기업의 데이터 환경에도 많은 변화가 발생하고 있고, 기업들은 이에 적응하기 위한 다양한 시도를 하고 있다.
그 중심에 cloud dw (또는 Lake house)가 위치하고 있으며, 이를 기반으로 통합 데이터 플랫폼으로의 아키텍처로 변화하고 있다. 하지만, 아직까지 기존 DW 제품과 주요 CSP(AWS, GCP, Azure)의 제품군을 다양하게 시도하고 있으나, 기대와 다르게 생각보나 낮은 성능 또는 비싼 사용료, 운영의 복잡성으로 인한 많은 시행착오를 거치고 있다.
이 상황에서 작년에 처음 검토한 snowflake의 다양한 기능들이 기업들의 고민과 문제를 상당부분 손쉽게 해결할 수 있다는 것을 확인할 수 있었고, 이를 이용하여 실제 많은 기업들에게 적용하기 위한 POC를 수행하거나, 실제 적용하는 프로젝트를 수행하게 되었다.
본 발표 내용은 이러한 경험을 기반으로 기업(그리고 실제 업무를 수행할 Data Engineer) 관점에서 snowflake가 어떻게 문제를 해결할 수 있는지 cloud dw를 도입/활용/확장 하는 단계별로 문제와 해결 방안을 중심으로 설명하였다.
https://blog.naver.com/freepsw?Redirect=Update&logNo=222815591918
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
Amazon EMR은 Apache Spark, Hive, Presto, Trino, HBase 및 Flink와 같은 오픈 소스 프레임워크를 사용하여 분석 애플리케이션을 쉽게 실행할 수 있는 관리형 서비스를 제공합니다. Spark 및 Presto용 Amazon EMR 런타임에는 오픈 소스 Apache Spark 및 Presto에 비해 두 배 이상의 성능 향상을 제공하는 최적화 기능이 포함되어 있습니다. Amazon EMR Serverless는 Amazon EMR의 새로운 배포 옵션이지만 데이터 엔지니어와 분석가는 클라우드에서 페타바이트 규모의 데이터 분석을 쉽고 비용 효율적으로 실행할 수 있습니다. 이 세션에 참여하여 개념, 설계 패턴, 라이브 데모를 사용하여 Amazon EMR/EMR 서버리스를 살펴보고 Spark 및 Hive 워크로드, Amazon EMR 스튜디오 및 Amazon SageMaker Studio와의 Amazon EMR 통합을 실행하는 것이 얼마나 쉬운지 알아보십시오.
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
spark 1.6을 기준으로 spark sql에 대해서 개략적으로 설명한 자료입니다. 발표 자료가 친절하지 않으나 한글로 된 자료가 없길래 혹시나 도움 되시는 분들이 있을까 하여 공유합니다.
발표자료 보다는 마지막 페이지의 참고자료들을 읽어보시기를 권장 드립니다.
출처만 남겨주시면 자유롭게 가져가셔서 사용하셔도 무방합니다.
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...Amazon Web Services Korea
Amazon Aurora Database는 오픈소스의 개방성과 상용 데이터베이스의 성능과 안정성을 모두 제공하는 관리형 데이터베이스 서비스입니다. Amazon Aurora Database는 처음 소개된 이후로 계속 기능을 추가하며 진화해 왔습니다. Amazon Aurora의 성능과 새롭게 업데이트된 기능들을 게임사에 적용할 수 있는 사용 사례와 함께 소개합니다.
더 빠른 게임시스템을 위하여 개선된 서비스들
김병수 솔루션즈 아키텍트, AWS
AWS의 모든 서비스들은 끊임없이 발전하고 개선되고 있습니다. 그런데 이러한 새로운 서비스들, 얼마나 빠른지, 과연 사용할때 얼마나 개선이 될수 있을지 궁금하지 않으신가요? 본 세션에서는 기존의 시스템에서 그대로 적용할 수 있는 AWS의 새로운 서비스와 기능을 중심으로 서비스 개선 부터 새롭게 선보이는 최적화된 시스템들까지, 다양한 개선점들과 이들을 사용할수 있는 최적의 조합을 살펴봅니다.
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
Apache Kafak의 성능이 특정환경(데이터 유실일 발생하지 않고, 데이터 전송순서를 반드시 보장)에서 어느정도 제공하는지 확인하기 위한 테스트 결과 공유
데이터 전송순서를 보장하기 위해서는 Apache Kafka cluster로 partition을 분산할 수 없게되므로, 성능향상을 위한 장점을 사용하지 못하게 된다.
이번 테스트에서는 Apache Kafka의 단위 성능, 즉 partition 1개에 대한 성능만을 측정하게 된다.
향후, partition을 증가할 경우 본 테스트의 1개 partition 단위 성능을 기준으로 예측이 가능할 것 같다.
Similar to EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Korea 2020 (20)
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
Database Migration Service(DMS)는 RDBMS 이외에도 다양한 데이터베이스 이관을 지원합니다. 실제 고객사 사례를 통해 DMS가 데이터베이스 이관, 통합, 분리를 수행하는 데 어떻게 활용되는지 알아보고, 동시에 데이터 분석을 위한 데이터 수집(Data Ingest)에도 어떤 역할을 하는지 살펴보겠습니다.
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
ccAmazon Aurora 데이터베이스는 클라우드용으로 구축된 관계형 데이터베이스입니다. Aurora는 상용 데이터베이스의 성능과 가용성, 그리고 오픈소스 데이터베이스의 단순성과 비용 효율성을 모두 제공합니다. 이 세션은 Aurora의 고급 사용자들을 위한 세션으로써 Aurora의 내부 구조와 성능 최적화에 대해 알아봅니다.
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
오랫동안 관계형 데이터베이스가 가장 많이 사용되었으며 거의 모든 애플리케이션에서 널리 사용되었습니다. 따라서 애플리케이션 아키텍처에서 데이터베이스를 선택하기가 더 쉬웠지만, 구축할 수 있는 애플리케이션의 유형이 제한적이었습니다. 관계형 데이터베이스는 스위스 군용 칼과 같아서 많은 일을 할 수 있지만 특정 업무에는 완벽하게 적합하지는 않습니다. 클라우드 컴퓨팅의 등장으로 경제적인 방식으로 더욱 탄력적이고 확장 가능한 애플리케이션을 구축할 수 있게 되면서 기술적으로 가능한 일이 달라졌습니다. 이러한 변화는 전용 데이터베이스의 부상으로 이어졌습니다. 개발자는 더 이상 기본 관계형 데이터베이스를 사용할 필요가 없습니다. 개발자는 애플리케이션의 요구 사항을 신중하게 고려하고 이러한 요구 사항에 맞는 데이터베이스를 선택할 수 있습니다.
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
실시간 분석은 AWS 고객의 사용 사례가 점점 늘어나고 있습니다. 이 세션에 참여하여 스트리밍 데이터 기술이 어떻게 데이터를 즉시 분석하고, 시스템 간에 데이터를 실시간으로 이동하고, 실행 가능한 통찰력을 더 빠르게 얻을 수 있는지 알아보십시오. 일반적인 스트리밍 데이터 사용 사례, 비즈니스에서 실시간 분석을 쉽게 활성화하는 단계, AWS가 Amazon Kinesis와 같은 AWS 스트리밍 데이터 서비스를 사용하도록 지원하는 방법을 다룹니다.
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
로그 및 지표 데이터를 쉽게 가져오고, OpenSearch 검색 API를 사용하고, OpenSearch 대시보드를 사용하여 시각화를 구축하는 등 Amazon OpenSearch의 새로운 기능과 기능에 대해 자세히 알아보십시오. 애플리케이션 문제를 디버깅할 수 있는 OpenSearch의 Observability 기능에 대해 알아보세요. Amazon OpenSearch Service를 통해 인프라 관리에 대해 걱정하지 않고 검색 또는 모니터링 문제에 집중할 수 있는 방법을 알아보십시오.
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
데이터 거버넌스는 전체 프로세스에서 데이터를 관리하여 데이터의 정확성과 완전성을 보장하고 필요한 사람들이 데이터에 액세스할 수 있도록 하는 프로세스입니다. 이 세션에 참여하여 AWS가 어떻게 분석 서비스 전반에서 데이터 준비 및 통합부터 데이터 액세스, 데이터 품질 및 메타데이터 관리에 이르기까지 포괄적인 데이터 거버넌스를 제공하는지 알아보십시오. AWS에서의 스트리밍에 대해 자세히 알아보십시오.
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
이 세션에 참여하여 Amazon Redshift의 새로운 기능을 자세히 살펴보십시오. Amazon Data Sharing, Amazon Redshift Serverless, Redshift Streaming, Redshift ML 및 자동 복사 등에 대한 자세한 내용과 데모를 통해 Amazon Redshift의 새로운 기능을 알고 싶은 사용자에게 적합합니다.
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
데이터는 혁신과 변혁의 토대입니다. 비즈니스 혁신을 이끄는 혁신은 특정 시점의 전략이나 솔루션이 아니라 성장을 위한 반복적이고 집단적인 계획입니다. 혁신에 이러한 접근 방식을 채택하는 기업은 전략과 비즈니스 문화에서 데이터를 기반으로 하는 경우가 많습니다. 이러한 접근 방식을 개발하려면 리더가 데이터를 조직의 자산처럼 취급하고 조직이 더 나은 비즈니스 성과를 위해 데이터를 활용할 수 있도록 권한을 부여해야 합니다. AWS와 Amazon이 어떻게 데이터와 분석을 활용하여 확장 가능한 비즈니스 효율성을 창출하고 고객의 가장 복잡한 문제를 해결하는 메커니즘을 개발했는지 알아보십시오.
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...Amazon Web Services Korea
데이터는 최종 소비자의 성공에 초점을 맞춘 디지털 혁신에서 중추적인 역할을 하고 있습니다. 모든 기업들은 데이터를 자산으로 사용하여 사례 제공을 추진하고 까다로운 결과를 해결하고 있습니다. AWS 클라우드 기술과 분석 솔루션의 강력한 성능을 통해 고객은 혁신 여정을 가속화할 수 있습니다. 이 세션에서는 기업 고객들이 클라우드에서 데이터의 힘을 활용하여 혁신 목표를 달성하고 필요한 결과를 제공하는 방법에 대해 다룹니다.
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...Amazon Web Services Korea
온프레미스 분석 플랫폼에는 자원 증설 비용, 자원 관리 비용, 신규 자원 도입 및 환경 설정의 리드타임 등 다양한 측면에서의 한계가 존재합니다. 이에 KB국민카드에서는 기존 분석 플랫폼의 한계를 극복함과 동시에 시너지를 낼 수 있는 클라우드 기반 분석 플랫폼을 설계 및 도입하였습니다. 본 사례 소개는 KB국민카드의 데이터 혁신 여정과 노하우를 소개합니다.
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
SK Telecom의 망관리 프로젝트인 TANGO에서는 오라클을 기반으로 시스템을 구축하여 운영해 왔습니다. 하지만 늘어나는 사용자와 데이터로 인해 유연하고 비용 효율적인 인프라가 필요하게 되었고, 이에 클라우드 도입을 검토 및 실행에 옮기게 되었습니다. TANGO 프로젝트의 클라우드 도입을 위한 검토부터 준비, 실행 및 이를 통해 얻게 된 교훈과 향후 계획에 대해 소개합니다.
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
2022년 코리안리는 핵심업무시스템(기간계/정보계 시스템)을 AWS 클라우드로 전환하는 사업과 AWS 클라우드 기반에서 손익분석을 위한 어플리케이션 구축 사업을 동시에 진행하고 있었습니다. 이에 따라 클라우드 전환 이후 시스템 간 상호운용성과 호환성을갖춘 데이터 분석 플랫폼 또한 필요하게 되었습니다. 코리안리 IT 환경에 적합한 플랫폼 선정을 위하여 AWS Native Analytics Platform, 3rd Party Analytics Platform (클라우데라, 데이터브릭스)과의 PoC를 진행하고, 최종적으로 AWS Native Analytics Platform 으로 확정하였습니다. 코리안리는 메가존클라우드와 함께 2022년 10월부터 4개월(구축 3개월, 안정화 및 교육 1개월) 동안 AWS 기반 데이터 분석 플랫폼을 구축하고 활용 범위를 지속적으로 확대하고 있습니다.
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
LG 이노텍은 세계 시장을 선도하는 글로벌 소재·부품기업으로, Amazon Redshift 을 데이터 분석 플랫폼의 핵심 서비스로 활용하고 있습니다.지속적인 데이터 증가와 업무 확대에 따른 유연한 아키텍처 개선의 필요성에 대처하기 위해, 2022년에 AWS 에서 발표된 Redshift Serverless 를 활용한, 비용 최적화된 아키텍처 개선 과정의 실사례를 엿볼수 있는 기회가 됩니다.
[Keynote] Data Driven Organizations with AWS Data - 발표자: Agnes Panosian, Head...Amazon Web Services Korea
데이터는 모든 애플리케이션, 프로세스 및 비즈니스 의사 결정의 중심에 있습니다. 데이터는 거의 모든 조직의 디지털 트랜스포메이션의 초석입니다. 데이터는 새로운 경험을 촉진하고 혁신을 이끌어내는 통찰력으로 이어집니다. 전체 조직을 위한 데이터의 가치를 실현하는 전략을 구축하는 것은 쉽고 간단한 여정이 아닙니다. 이 세션에서는 데이터 기반 조직화를 위한 모범 사례와 그 여정에서 AWS가 어떻게 도움을 드릴 수 있는지를 다룹니다.
Amazon Neptune은 확장성과 가용성을 제공하도록 설계된 서버리스 데이터 그래프 데이터베이스입니다. 본 세션에서는 Neptune 서버리스를 통해 한의학 컨텐츠내용 및 상품 상세 데이터를 통해 그래프 DB를 구축하고 상품 추천 구현 사례를 살펴봅니다.
ECK(Elasticsearch Cloud on Kubernetes)는 쿠버네티스 환경에서 Elastic 제품을 배포하고 관리할 수 있는 오퍼레이터입니다. 본 세션에서는 Amazon EKS 환경에서 ECK를 사용한 검색 엔진 플랫폼 구축 사례 및 개발팀과 인프라팀 간 협업 과정을 공유합니다.
ChatGPT를 비롯한 거대 언어 모델(LLM) 기반 생성 AI를 통해 다양한 활용 사례가 나오고 있습니다. 본 세션에서는 생성 AI 모델의 임베딩벡터에 대해 알아보고 이를 통해 손쉽게 서버리스 텍스트 및 이미지 추천 검색을 구현하는 방법을 소개합니다. OpenAI의 GPT3 API 및 Amazon SageMaker JumpStart를 통해 올린 EleutherAI 모델 기반으로 한국어 추천 및 검색 애플리케이션을 구현한 사례를 살펴봅니다.
에이슬립은 AI 모델로 수면을 정확하게 분석하여 맞춤형 수면 서비스를 제공하는 SaaS 서비스를 제공합니다. 본 세션에서는 SaaS 서비스 인증 및 권한제어, 사용량 측정 등 필수적인 기능을 AWS 기반 서버리스 서비스를 통해 제공하여 데이터베이스 부하 없이 대규모 트래픽에도 견딜 수 있는 아키텍처를 소개합니다.
매드업은 디지털 마케팅 자동화 솔루션을 개발 및 운영하면서 대용량 데이터를 수집, 가공해서 데이터웨어하우스를 만드는 도전이 있습니다. 본 세션에서는 기존의 Amazon Athena에서 어떻게 Amazon Redshift Serverless를 통해 데이터가 필요한 조직에 정확하게 공급했는지 그 사례와 장단점을 소개합니다.
2. Agenda
• Spark 워크로드 최적화
• Spark on EMR 성능 최적화 방안
• EMR Runtime for Apache Spark
• Apache Hudi - 레코드 레벨의 데이터 Update, delete, insert
• EMR Managed Resize
• Spark Job 디버그 및 모니터링을 위한 Off-cluster Spark Log 관리
• Lake Formation 과 EMR 통합
• Docker 환경에서 Spark 어플리케이션 배포 가능
4. 관리형 하둡 플랫폼 - Amazon EMR
Analytics and ML at scale • 컴퓨팅 리소스(Amazon EMR) 와
저장공간(Amazon S3)의 분리
• PB에서 EB 규모의 데이터까지 저장 /
처리 가능
• 필요한 수 만큼의 노드로 확장 가능
• 최신 Open-source 어플리케이션
• AWS내 보안 기능과 통합
• 자유롭게 커스터마이징, 접근 가능
• 오토 스케일을 통해 Elastic 한 구성
• 초당 과금을 통한 가격 절감
Data lake
on AWS
Amazon EMR
5. Amazon EMR - Hadoop
엔터프라이즈 레벨의 Hadoop 플랫폼
PIG
SQL
Infrastructure
Data Layer
Process Layer
Framework
Applications
8. EMR 노드 구성
마스터 노드
클러스터 관리
NameNode와 JobTracker 포함
코어 노드
작업 실행을 위한 Task tracker
하둡에서의 DataNode
태스트 노드
Task tracker만 설치
로컬 HDFS 없음
Amazon EMR cluster
Task instance groupCore instance group
HDFS HDFS
Master instance group
9. Stateless 클러스터 아키텍쳐 권장
• 클러스터 외부에 메타스토어 유지(Glue
Data Catalog 또는 RDS)
• 빠르게 시작하고 목적한 작업을 수행
• 동시에 여러 클러스터가 S3 데이터를
활용 가능 Amazon RDS
Amazon
Redshift
Amazon
Athena
AWS Glue
AWS Glue
Data Catalog
10. Stateless 클러스터 아키텍쳐 권장
Master node
CPU
Memory
HDFS
storage
CPU
Memory
HDFS
storage
CPU
Memory
HDFS
storage
CPU
Memory
HDFS
storage
Master node
CPU
Memory
CPU
Memory
CPU
Memory
CPU
Memory
다수의 EMR 클러스터와 노드가 동시에 EMR file
system을 통해 S3 데이터 사용
Amazon EMR decoupled model
HDFS가 3개의 복제본을 가져야 하므로
500-TB 데이터 저장을 위해 1.5-PB 규모의 클러스터 필요
Old clustering/localized model
12. Spark의 실행 모델
Spark는 마스터/워커 아키텍쳐를 가지고 실질적인 작업을 수행하는
Executor와 해당 Worker를 관리하는 Driver가 있음
13. Spark 메모리 구성
yarn.nodemanager.resource.memory-mb : 익스큐터 전체의 물리 메모리 영역
spark.executor.memory : 익스큐터가 Job 실행에 사용할 수 있는 메모리 영역
spark.shuffle.memoryFraction : 전체 힙 영역에서 익스큐터와 RDD 데이터 저장에 사용될 비율
spark.storage.memoryFraction : 할당된 메모리에서 데이터 저장에 사용할 비율
spark.yarn.executor.MemoryOverHead : VM 관련 오버헤드를 위해 할당, 필요시 조정 가능
15. Spark 워크로드 최적화 (1/2)
Spark 작업은 일반적으로 대량의 데이터를 Memory 기반의 리소스에서
빠르게 처리해야 하는 요구사항을 가진다.
• 대량의 데이터 작업에서 로딩하는 데이터를 줄여주는 접근이 가장 중요
최적의 데이터 포멧 활용 - Apache Parquet compressed by Snappy(Spark 2.x의 기본값)
데이터 스캔 범위를 최소화 한다. - Hive partitions, Bucketing, Push Down, Partitioning Pruning
특정 파티션에 Data Skew 가 발생하면 파티션 키에 대한 고려가 필요
• 사용 가능한 클러스터의 메모리를 최대한 효율적으로 사용
작업에서 빈번하게 사용되는 데이터를 메모리에 캐쉬한다. - dataFrame.cache()
워크로드에 적절한 Spark 설정값을 지정해줘야 함.
작업 유형에 적합한 파티션 사이즈로 변경한다. - spark.sql.files.maxPartitionBytes
16. Spark 워크로드 최적화 (2/2)
• 리소스를 가장 많이 사용하는 조인 및 셔플링 최적화
셔플링과 repartioning 은 가장 비용이 비싼 오퍼레이션이므로 최소화 되도록 Job 모니터링
Spark 2.3 이후 기본 조인은 SortMerge(조인전 각 데이터셋의 정렬이 필요), Broadcast Hash
조인은 대상 테이블의 사이즈가 크게 차이나는 경우 유용, 특히 10Mb 미만 테이블은 자동
Broadcast, 설정을 통해 변경 가능 spark.sql.autoBroadcastJoinThreshold
테이블 사이즈에 따라 조인 순서를 변경하여 대량 데이터 셔플링 방지 - Join Reorder
• 클러스터 규모와 작업 유형에 따라 적절한 환경 변수 설정
익스큐터 갯수 설정 --num-executors
익스큐터의 코어수 설정 --executor-cores
익스큐터의 메모리 크기를 변경 --executor-memory
• 스토리지 성능 최적화
데이터 활용 빈도 및 속도 요구치에 맞춰 HDFS, EMRFS(S3) 활용 선택
%%configure
{"executorMemory": "3072M", "executorCores": 4, "numExecutors":10}
17. Spark의 주요 메모리 이슈 유형 (1/2)
• 자바 힙메모리 부족 오류 - Spark instance 수, executor memory, core수
등이 많은 양의 데이터를 처리할 수 있도록 설정되지 않는 경우
• 물리 메모리 초과 - 가비지 컬렉션과 같은 시스템 작업을 수행하는 데
필요한 메모리를 Spark executor 인스턴스에서 사용할 수 없는 경우
WARN TaskSetManager: Loss was due to
java.lang.OutOfMemoryError java.lang.OutOfMemoryError: Java heap space
Error: ExecutorLostFailure Reason: Container killed by YARN for exceeding limits. 12.4 GB of 12.3 GB
physical memory used.
Consider boosting spark.yarn.executor.memoryOverhead.
Error: ExecutorLostFailure Reason: Container killed by YARN for exceeding limits. 4.5GB of 3GB
physical memory used limits.
Consider boosting spark.yarn.executor.memoryOverhead.
18. Spark의 주요 메모리 이슈 유형 (2/1)
• 가상 메모리 초과 - 가비지 컬렉션과 같은 시스템 작업을 수행하는 데
필요한 메모리를 Spark executor 인스턴스에서 사용할 수 없는 경우
• 익스큐터 메모리 초과 - Spark executor 물리적 메모리가 YARN에서 할당한
메모리를 초과하는 경우
Container killed by YARN for exceeding memory limits.
1.1gb of 1.0gb virtual memory used. Killing container.
Required executor memory (1024+384 MB) is above
the max threshold (896 MB) of this cluster!
Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or
'yarn.nodemanager.resource.memory-mb
19. Spark 메모리 관련 주요 파라미터 설정 사례
• EMR에서는 spark-defaults 값을 통해 기본값 설정이 되어 있으나
전반적으로 낮게 설정된 값으로 인해 애플리케이션이 클러스터 전체
성능을 사용하지 못하므로 추가 설정이 필요함.
• Spark 구성 파라미터
spark.executor.memory – 작업을 실행하는 각 익스큐터에 사용할 메모리의 크기입니다.
spark.executor.cores – 익스큐터에 할당되는 가상 코어의 수입니다.
spark.driver.memory – 드라이버에 사용할 메모리의 크기입니다.
spark.driver.cores – 드라이버에 사용할 가상 코어의 수입니다.
spark.executor.instances – 익스큐터의 수입니다. spark.dynamicAllocation.enabled가 true로
설정된 경우 외에는 이 파라미터를 설정합니다.
spark.default.parallelism – 사용자가 파티션 수를 설정하지 않았을 때 join, reducdByKey 및
parallelize와 같은 변환에 의해 반환된 RDD의 파티션 수 기본값입니다.
20. Spark 메모리 관련 주요 파라미터 설정 사례
.
• r5.12xlarge(48 vCPU, 384 Gb 메모리) 마스터 1대, r5.12xlarge 코어노드
19대의 EMR 클러스터로 S3에 저장된 10TB 데이터 처리 환경
익스큐터당 5개의 vCPU 할당 spark.executor.cores = 5 (vCPU)
인스턴스당 익스큐터수 계산 (48-1) / 5 = 9
인스턴스 메모리 384Gb 중 90%는 각 익스큐터에 할당 spark.executor.memory = 42 * 0.9 = 37
약 10%는 각 익스큐터의 Overhead에 할당 spark.yarn.executor.memoryOverhead = 42 * 0.1 = 5
드라이버 메모리는 익스큐터와 동일하게 spark.driver.memory = spark.executor.memory
전체 익스큐터 수는 spark.executor.instances = (9 * 19) - 1(드라이버수) = 170
병렬처리 값은 spark.default.parallelism = 170(익스큐터수) * 5(코어수) * 2 = 1,700
21. Spark configuration 변경 방법
Spark configuration을 변경하기 위한 방법 여러가지가 있으나 각각은 config
값을 적용하는 시점이 달라 1번부터 우선순위가 가장 높게 반영된다.
1. SparkConf의 Set 함수를 이용하여 Runtime에서 설정 값을 변경한다.
2. spark-submit을 통해 설정값을 전달한다.
3. conf/spark-defaults.conf 파일을 직접 수정한다.
conf = spark.sparkContext._conf
.setAll([('spark.executor.memory', '4g'), ('spark.executor.cores','4')),('spark.driver.memory','4g’)])
spark.sparkContext.stop()
spark = SparkSession.builder.config(conf=conf).getOrCreate()
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster
--executor-memory 20G --num-executors 50
spark.executor.memory 18971M
spark.executor.cores 4
spark.yarn.executor.memoryOverheadFactor 0.1875
22. EMR 인스턴스 템플릿 및 구성 방법
• Spark 및 Yarn의 구성 파라미터 설정을 EMR 콘솔의 Edit software
settings 항목을 통해 직접 입력하거나 Load JSON from S3 기능을 통해
미리 구성된 json 파일을 로딩할 수 있음
26. Spark on EMR 성능 최적화 기본 팁
• 데이터의 크기와 작업의 사이즈에 적절한 메모리 할당이 가능한 instance
type을 선택(같은 vCPU를 가진 c 타입 인스턴스 대비 m / r 타입
인스턴스가 두배의 메모리를 가짐)
• 최신 버젼의 EMR 버젼을 사용한다. (최소 5.24.0 이상) 버젼 5.28 이후에는
EMR Runtime for Apache Spark이 포함되어 있어 성능 향상
• 추가적인 성능 최적화를 위해서 워크로드 특성에 맞는 메모리 설정 변경이
필요
27. Spark on EMR 성능 최적화 (1/5)
• Dynamic Partition Pruning - 쿼리 대상 테이블을 보다 정확하게 선택하여
스토리지에서 읽고 처리하는 데이터량을 줄여 주어 시간과 리소스 절약
Spark Properties : spark.sql.dynamicPartitionPruning.enabled (EMR 5.24 이후 사용 가능,
5.26 이후 기본적으로 활성화)
아래의 쿼리에서 동적으로 파티셔닝 된 데이터의 범위를 줄여주어, Where 절의 조건에 맞는
데이터만 필터링 하여 ‘North America’ 영역에 해당하는 파티션 데이터만 읽어서 처리
select ss.quarter, ss.region, ss.store, ss.total_sales
from store_sales ss, store_regions sr
where ss.region = sr.region and sr.country = 'North America'
28. Spark on EMR 성능 최적화 (2/5)
• Flattening Scalar Subqueries - 다수개의 서브쿼리를 하나로 통합하여 재작성, 수행
성능을 향상
Spark Properties : spark.sql.optimizer.flattenScalarSubqueriesWithAggregates.enabled (EMR 5.24 이후 사용
가능, 5.26 이후 기본적으로 활성화)
동일한 관계를 사용하는 다수의 스칼라 쿼리를 하나의 쿼리로 통합하여 실행하여 성능을 향상
/* 샘플 쿼리 */
select (select avg(age) from students /* Subquery 1 */
where age between 5 and 10) as group1,
(select avg(age) from students /* Subquery 2 */
where age between 10 and 15) as group2,
(select avg(age) from students /* Subquery 3 */
where age between 15 and 20) as group3
/* 최적화 된 쿼리 */
select c1 as group1, c2 as group2, c3 as group3
from (select avg (if(age between 5 and 10, age, null)) as c1,
avg (if(age between 10 and 15, age, null)) as c2,
avg (if(age between 15 and 20, age, null)) as c3 from students);
29. Spark on EMR 성능 최적화 (3/5)
• DISTINCT Before INTERSECT - Intersect 사용시 자동적으로 Left semi
join으로 변환, Distinct 연산을 Intersect 하위 항목을 푸시하여 성능 향상
Spark Properties : spark.sql.optimizer.distinctBeforeIntersect.enabled (EMR 5.24 이후 사용
가능, 5.26 이후 기본적으로 활성화)
/* 샘플 쿼리 */
(select item.brand brand from store_sales,item
where store_sales.item_id = item.item_id)
intersect
(select item.brand cs_brand from catalog_sales, item
where catalog_sales.item_id = item.item_id)
/* 최적화 쿼리 */
select brand from
(select distinct item.brand brand from store_sales, item
where store_sales.item_id = item.item_id)
left semi join
(select distinct item.brand cs_brand from catalog_sales, item
where catalog_sales.item_id = item.item_id) on brand <=> cs_brand
30. Spark on EMR 성능 최적화 (4/5)
• Bloom Filter Join - 사전에 작성된 Bloom Filter를 통해 쿼리 대상 데이터의
범위를 줄여줌으로써 성능을 향상
Spark Properties : spark.sql.bloomFilterJoin.enabled (EMR 5.24 이후 사용 가능, 5.26 이후
기본적으로 활성화)
아래의 쿼리에서 조인 전에 sales 테이블에서 item.category가 1, 10, 16 에 해당하는 데이터를
먼저 필터링 하므로 조인 성능을 매우 향상 시킬 수 있음
select count(*) from
sales, item
where sales.item_id = item.id and item.category in (1, 10, 16)
31. Spark on EMR 성능 최적화 (5/5)
• Optimized Join Reorder - 쿼리에 적혀있는 테이블의 순서를 필터와
데이터 규모에 따라 재정렬하여 소규모 쿼리를 먼저 수행
Spark Properties : spark.sql.optimizer.sizeBasedJoinReorder.enabled (EMR 5.24 이후 사용
가능, 5.26 이후 기본적으로 활성화)
Spark 의 기본 동작은 쿼리에 있는 테이블들의 왼쪽에서 오른쪽으로 차례대로 조인하는 것임.
아래의 쿼리에서 원래 조인 순서는 store_sales, store_returns, store, item 순서이지만
실제 조인 실행 순서는 1. store_sales 와 store (store에 country 필터가 있으므로) 2.
store_returns 3. item 순서이며, Item에 필터가 추가되면 item이 store_returns 보다 먼저 조인
되도록 재정렬 될 수 있음
select ss.item_value, sr.return_date, s.name, i.desc,
from store_sales ss, store_returns sr, store s, item i
where ss.id = sr.id and ss.store_id = s.id and ss.item_id = i.id and s.country = 'USA'
32. S3를 통한 Spark 성능 향상 (1/2)
• EMRFS S3 최적화된 커미터 사용
Spark Properties : spark.sql.parquet.fs.optimized.committer.optimization-enabled (EMR
5.19 이후 사용 가능, 5.20 이후 기본적으로 활성화)
기본적으로 S3 multipart upload 옵션이 활성화 된 상태에서 Spark SQL / DataFrames /
Datasets 에서 Parquet 형식으로 저장할 때 사용 가능
테스트 환경 - EMR 5.19 (Master m5d.2xlarge / Core Node m5d,2xlarge * 8)
Input Data : 15Gb (100개의 parquet 파일)
INSERT OVERWRITE DIRECTORY ‘s3://${bucket}/perf-test/${trial_id}’
USING PARQUET SELECT * FROM range(0, ${rows}, 1, ${partitions});
60% 성능 향상 80% 성능 향상
33. S3를 통한 Spark 성능 향상 (2/2)
• S3 Select를 통해 데이터 필터링을 S3로 푸시다운
Spark, Presto, Hive에서 S3 Select 를 통해 대용량 데이터 필터링을 S3 레벨에서 사전 처리
가능(EMR 5.17 이후 사용 가능)
CSV, JSON, Parquet 파일 형식 지원 / Bzip2, Gzip, Snappy 압축 파일 지원
기본적인 Where 조건에서의 특정 컬럼 기반의 필터링에 유용, 단 쿼리에 명시되어야 함
집계함수, 형변환이 포함된 필터링 등은 S3로 푸시다운 되지 않음
테이블 및 파일 형식은 다음과 같이 선언하며, 쿼리는 일반적인 Where 조건과 동일하게 사용
CREATE TEMPORARY VIEW MyView
(number INT, name STRING)
USING s3selectCSV
OPTIONS (path "s3://path/to/my/datafiles", header "true", delimiter "t")
SELECT *
FROM MyView
WHERE number > 10;
35. Spark 성능 향상을 위한 성능 최적화 EMR 제공
2.6배 성능과 1/10 가격으로 Spark 성능 최적화 Runtime 을 EMR에 포함
Spark 워크로드 실행 성능 향상을 위한 Runtime 내장
최상의 성능 제공
• 기존 Runtime 미포함 버젼과 비교하여 2.6배 성능 향상
• 3rd party 에서 제공하는 Spark 패키지 대비 1.6배 성능 우위
비용 효율성
• 3rd party 에서 제공하는 Spark 패키지 대비 1/10 가격
오픈소스 Apache Spark API와 100% 호환*Based on TPC-DS 3TB Benchmarking running 6 node C4x8
extra large clusters and EMR 5.28, Spark 2.4
10,164
16,478
26,478
0 5,000 10,000 15,000 20,000 25,000 30,000
Spark with EMR (with runtime)
3rd party Managed Spark (with their
runtime)
Spark with EMR (without runtime)
Runtime total on 104 queries (seconds - lower is better)
36. 최신 버젼의 EMR을 통한 성능 향상과 비용 절감
427.68
113.13
169.41
46.28
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
450.00
Runtime for 102 TPC-DS queries Geomean for 104 TPC-DS queries
Improvements since last year (minutes)
EMR 5.16 with Spark 2.4 EMR 5.28 with Spark 2.4
2.5x
2.4x
37. Long-running 쿼리에 대해서 평균 5배의 성능 향상
.5X
5.5X
10.5X
15.5X
20.5X
25.5X
30.5X
35.5X
Speedup
Query number
39. Spark를 위한 Runtime의 최적화 방법
• Spark 작업 실행을 위한 최적의 configuration 값 셋팅
• CPU/disk ratios, driver/executor conf, heap/GC, native overheads, instance defaults
• 데이터 작업 플랜 생성의 최적화
• Dynamic partition pruning, join reordering
• Query execution 최적화
• Data pre-fetch and more
• Job startup 설정 셋팅
• Eager executor allocation, and more
41. Data Lake 운영 환경에서의 Data Update 이슈
MySQL database
Amazon S3
Data lake
Order ID Quantity Date
001 10 01/01/2019
001 15 01/02/2019
002 20 01/01/2019
002 20 01/02/2019
Action Order ID Quantity Date
I 001 10 01/01/2019
U 001 15 01/02/2019
I 002 20 01/01/2019
D 002 20 01/02/2019
42. Uber의 실제 유스케이스 - Incremental Update
Past Years
New Files
Unaffected Files
Updated Files
Incremental
Update
Last Month
Files Affected
Last Week
Yesterday
엄청난 양의
IO 발생
Today
43. Uber의 실제 유스케이스 - Cascading Effects
New Data
Unaffected Data
Updated Data
update
Raw table
update
ETL Table A
update
ETL Table B
44. Slow Data Lake 이슈
매일 Hbase에 업데이트된 500GB 데이터를
이후 데이터 레이크에 반영하기 위해 실제
120TB 데이터를 처리, 8시간이 소요
Amazon S3
Raw Tables Derived Tables
120 TB HBase table
ingested every 8 hours;
Actual change < 500GB
Full recompute
every 6-8 hours
Updated /
Created rows
from databases
Streaming data Big batch jobs
Data Lake
45. Apache Hudi (Hadoop upserts and incrementals)
• 스파크 기반의 데이터 관리 레이어
• S3, Hive metastore와 호환
가능
• Spark-SQL, Hive, Presto를
통해 데이터 쿼리 가능
• Hudi CLI, DeltaStreamer,
Hive Catalog Sync와 같은
다양한 인터페이스 제공
47. 워크로드 유형에 따라 두가지 Storage type 지원
Copy On Write
Read heavy
읽기 성능 최적화
비교적 예측 가능한
작은 규모의 워크로드
Merge On Read
Write heavy
데이터 변경을 즉시 활용
어드밴스드 모드
워크로드 변화 대응 가능
Hudi
Dataset
48. Hudi Storage types & Views - Copy on Write
Storage Type: Copy On Write
Views/Queries: Read-Optimized, Incremental
49. Hudi Storage types & Views - Copy on Write
Storage Type: Copy On Write
Views/Queries: Read-Optimized, Incremental
File 1’
C, D’
File 0’
A’, B
50. Hudi Storage types & Views - Copy on Write
Storage Type: Copy On Write
Views/Queries: Read-Optimized, Incremental
File 1’
C, D’
File 0’
A’, B
File 0’’
A’’, B
File 2’
E’, F
51. Hudi Storage types & Views - Copy on Write
Storage Type: Copy On Write
Views/Queries: Read-Optimized, Incremental
언제 사용할 것인가?
• 현재 작업이 데이터 업데이트를 위해서 전체 테이블/파티션을 다시 쓰기 할때
• 현재 워크로드가 비교적 증감이 일정하고, 갑작스럽게 피크를 치지 않을 때
• 데이터가 이미 Parquet 파일 형태로 저장되어 있을 때
• 오퍼레이션 관련 가장 간단한 요구사항을 가지고 있을 때
52. Hudi Storage types & Views - Merge On Read
Storage type: Merge On Read
Views/Queries: Read Optimized, Incremental, Real Time
53. Hudi Storage types & Views - Merge On Read
Storage type: Merge On Read
Views/Queries: Read Optimized, Incremental, Real Time
Log 1
D’
Log 0
A’
54. Hudi Storage types & Views - Merge On Read
Storage type: Merge On Read
Views/Queries: Read Optimized, Incremental, Real Time
Log 1
D’
Log 0
A’
Log 2
E’,F
Log 0
A’
A”
55. Hudi Storage types & Views - Merge On Read
Storage type: Merge On Read
Views/Queries: Read Optimized, Incremental, Real Time
Log 1
D’
Log 0
A’
File 2’
E’, F
Log 2
E’,F
File 0’
A”, B
Log 0
A’
A”
File 1’
C, D’
56. Hudi Storage types & Views - Merge On Read
Storage type: Merge On Read
Views/Queries: Read Optimized, Incremental, Real Time
언제 사용할 것인가?
• 데이터 수집 시점에 최대한 빠르게 쿼리가 필요할 때
• 워크로드에 갑작스런 변화나 쿼리 패턴의 변화에 대응해야 할때
• 사례 : 데이터베이스 변경분의 벌크 업데이트로 인해 대량의 기존 S3 파티션
데이터의 변경 필요
57. Hudi DataSet Sample Code
• Hudi Data Set 저장을 위한 설정 - Storage Type, Record Key, Partition Key
61. Hudi Dataset 사용을 통한 얻는 장점
Apache HUDI 오픈소스 커뮤니티 기술 지원
Spark, Hive, Presto 지원
Data Lake에서 다음을 가능하게 한다.
a) 개인정보 관련법 준수
b) 실시간 스트림 데이터와 변경분 데이터(CDC) 활용을
효율적으로
c) 빈번하게 변경되는 데이터 관리
d) 변경 히스토리의 관리 및 롤백 가능
66. EMR Managed resize (베타)
EMR 클러스터 리사이즈를 자동적으로 관리
• 최대 / 최소 node 수만 지정하면 다른 설정은 필요 없음
• 모니터링 데이터 기반으로 1분 내외의 빠른 스케일 아웃 가능
• 워크로드에 따라 전체 사용 비용이 20~60% 까지 절약
기존 방식의 오토스케일링 클러스터도 운영 가능
• 사용자의 선택에 따라 직접 커스텀 메트릭을 사용하여 설정하거나
• Managed resize 옵션을 통해 자동화 가능
71. EMR 어플리케이션 로그 off-cluster 설정
Amazon EMR, Hadoop에서는 클러스터의 상태와 어플리케이션 로그파일을
생성하여 기본적으로 마스터 노드에 기록되며 다음과 같이 확인 가능
• SSH를 통해 마스터 노드 저장 경로(/mnt/var/log)에 연결하여 작업 유형별
로그 파일 확인
• EMR Console에서 Spark history
server UI를 통해 확인
• 지정된 S3에 로그를 자동 저장
72. EMR 어플리케이션 로그 보기
EMR 클러스터 생성시 마스터 노드의 로그를 S3에 저장 설정 가능, 저장된
로그를 Athena를 통해 탐색
예 – ERROR, WARN, INFO, EXCEPTION, FATAL 또는 DEBUG에 대한 Namenode 애플리케이션 로그 쿼리
SELECT "data", "$PATH" AS filepath FROM "default"."myemrlogs" WHERE regexp_like("$PATH",'namenode') AND
regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
예 – 작업 job_1561661818238_0004 및 Failed Reduces에 대한 Hadoop-Mapreduce 파티션 쿼리
SELECT data, "$PATH" FROM "default"."mypartitionedemrlogs" WHERE logtype='hadoop-mapreduce' AND
regexp_like(data,'job_1561661818238_0004|Failed Reduces') limit 100;
CREATE EXTERNAL TABLE `myemrlogs`( `data` string COMMENT 'from deserializer’)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|’
LINES TERMINATED BY 'n’
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat’
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat’
LOCATION.'s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6'
74. 한번 설정으로 모든 데이터를 안전하게 Lake Formation
Amazon
Athena
Amazon
Redshift
Amazon
EMR
AWS
Glue
Amazon
S3
Data
catalog
Permissions
Lake Formation
Admin
75. Lake Formation을 통한 데이터 관리
• 테이블의 컬럼레벨까지의 세부 레벨의 권한 관리가 가능
• AWS Glue Data Catalog와 통합된 메타스토어 제공
• 내부 ID 관리 시스템(AD, Auth0, Okta)와 통합 인증 시스템 연동
• SAML 2.0 파일 지원을 통한 관리 지원
• 다양한 어플리케이션에서 지원
• Spark SQL
• EMR Notebooks과 Zeppelin with Livy
77. Hadoop 3.0에서 Docker 지원
• Hadoop 3.1.0, Spark 2.4.3 부터 지원, EMR 6.0.0에서 지원 시작
• EMR에서 Docker를 활용함으로써 다음과 같은 장점을 가질 수 있다.
• 복잡성 감소 - 번들 라이브러리와 어플리케이션의 종속성을 관리해준다.
• 사용률 향상 - 동일 클러스터에서 다수 버젼의 EMR이나 어플리케이션 실행 가능
• 민첩성 향상 - 새로운 버젼의 소프트웨어 신속하게 테스트 하고 생산
• 응용 프로그램 이식성 - 사용자 운영 환경을 변경하지 않고 여러 OS에서 실행
78. Docker Registry 선택 옵션 제공
Public subnet
• 인터넷을 통해 YARN에서 Docker Hub와 같은 공개 리파지토리를 선택한 디플로이 지원
Private subnet
• AWS PrivateLink를 통해 Amazon ECR 리파지토리 정보를 통한 디플로이 지원
79. Docker를 이용한 EMR 클러스터 구성
다음과 같이 container-executor.json 파일을 생성하고 CLI를 통해 EMR 6.0.0
(베타) 클러스터를 시작 가능
[ { "Classification": "container-executor",
"Configurations": [ {
"Classification": "docker",
"Properties": { "docker.trusted.registries": "local,centos, your-public-repo,123456789123.dkr.ecr.us-east-
1.amazonaws.com",
"docker.privileged-containers.registries": "local,centos, your-public-repo,123456789123.dkr.ecr.us-east-
1.amazonaws.com" } } ] } ]
$ aws emr create-cluster
--name "EMR-6-Beta Cluster"
--region $REGION
--release-label emr-6.0.0-beta
--applications Name=Hadoop Name=Spark
--service-role EMR_DefaultRole
--ec2-attributes KeyName=$KEYPAIR,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=$SUBNET_ID
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=$INSTANCE_TYPE
InstanceGroupType=CORE,InstanceCount=2,InstanceType=$INSTANCE_TYPE
--configuration file://container-executor.json