SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
RDS Aurora에 40억건 데이터 입력하기
26. Jul. 2018
hello@hbsmith.io
(AWS KRUG - architecture 소모임)
S3, EMR, Aurora 그리고 자동화
1
발표자 소개
• 한종원
• Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑.
• 2012년 석사 학위를 마치고, startup을 시작 (이때부터 AWS를 production level에서 사용)
• '의미가 있는 일을, 올바르게 하고 싶다.'
• 경력
• (현) DevOps 전문 스타트업 ‘HB Smith’ 대표
• 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당
• Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병)
• NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원)
2
https://www.linkedin.com/in/addnull/
https://hbsmith.io
“Startup 경력 = AWS 사용 기간”
Contents
• 요구사항 정리
• Version 0: S3 -> Aurora (bulk insert)
• Version 1: S3 -> Aurora (scale down and HA)
• Version 2: S3 -> EMR -> S3 -> Aurora
• Wrap Up
3
요구사항 정리
4
요구사항 정리
• “40억건 data를 DB에 넣어주세요.”
• “단, 일주일마다 한 번씩 최대한 빨리 넣어주세요.”
• “원본 data는 S3에 있습니다.”
5
요구사항 정리
• data 1건의 구성
• 원본 6개 field
• 마지막 2개의 field 를 조합해서 새로운 값을 계산해서 넣어야함
6
018c32d8 0.000457 0.000178 3 3.3529 1.0002
018c32d8 0.000457 0.000178 3 3.3529 1.0002 A3WFA
Version 0: S3 -> Aurora (bulk insert)
7
Version 0: S3 -> Aurora (bulk insert)
• 구글링, 구글링!
• 1.1M writes/sec over 3B Items with 50 nodes (n1-standard-16)

1M writes/sec over 100 million Items with 40 nodes (n1-standard-8)
• 1시간 안에 완료 가능?!?!
8
https://blog.couchbase.com/couchbase-server-hits-1m-
writes-with-3b-items-with-50-nodes-on-google-cloud/
Version 0: S3 -> Aurora (bulk insert)
• 문제점
• AWS 에서는 Couchbase를 직접 구성해야함.
• Couchbase 잘모름.
9
Version 0: S3 -> Aurora (bulk insert)
• Couchbase 를 선택하면,

지속적으로 유지보수 이슈가

생길 것 같은 슬픈 예감..
10
Version 0: S3 -> Aurora (bulk insert)
• Ground rule
• 내가 잘 알고 있고, 잘 아는 사람이 많은 기술을 선택

-> 즉, MySQL 같은 것들.
• AWS에서 기본으로 지원해주는 full-managed service

-> 그래서 결론은 RDS Aurora
11
Version 0: S3 -> Aurora (bulk insert)
• RDS Aurora는 S3로부터 bulk insert를 지원
• 즉, S3에 있는 delimiter separated text file을 (예: csv file)

RDB table로 바로 입력 가능함
12
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/
AuroraMySQL.Integrating.LoadFromS3.html
Version 0: S3 -> Aurora (bulk insert)
• [TIP] bulk insert의 속도를 빠르게 하기 위해서 index는 나중에 생성
13
Version 0: S3 -> Aurora (bulk insert)
14
Aurora 최고 사양 ‘db.r4.16xlarge’으로 실행
Version 0: S3 -> Aurora (bulk insert)
• 실행 결과..
• bulk insert에는 8시간

create index는 20시간 정도 걸림 (음?!?!)
15
Version 0: S3 -> Aurora (bulk insert)
• bulk insert와 create index를 10개로 나눠서 동시 실행

(EC2 하나에서 multi process 로 실행해도 무방)
16
…
Version 0: S3 -> Aurora (bulk insert)
• 실행 결과
• bulk insert: 3시간

create index: 5시간
17
bulk insert가 최대 초당 4M
Version 1: S3 -> Aurora (scale down and HA)
18
Version 1: S3 -> Aurora (scale down and HA)
• “HA(이중화) 해야할 것 같아요.”
• “그리고 db.r4.16xlarge 너무 비싸요.”
19
Version 1: S3 -> Aurora (scale down and HA)
• bulk insert 가 완료되면 ‘db.r4.xlarge’로 scale down 하기로 함
• 앞서 과정에서 동시에 실행되는 10개의 bulk insert 가 모두 끝날 때까지 polling
20
Version 1: S3 -> Aurora (scale down and HA)
• 동시에 실행되는 10개의 bulk insert 가 모두 끝나면

scale down 하고 완료되면 HA
• [TIP] Aurora는 기존의 RDS 와 달리

‘create_db_instance_read_replica’가 아니라

‘create_db_instance’를 써야함.
21
Version 2: S3 -> EMR -> S3 -> Aurora
22
Version 2: S3 -> EMR -> S3 -> Aurora
• “마지막 2개의 field 를 조합해서

새로운 값을 계산해서 넣어주세요”
23
018c32d8 0.000457 0.000178 3 3.3529 1.0002 A3WFA
018c32d8 0.000457 0.000178 3 3.3529 1.0002
Version 2: S3 -> EMR -> S3 -> Aurora
• 복잡한 산술 연산을 RDB 에서 하는 건 부적절
• ‘음... S3 에 있는 원본 data를 bulk insert 하기 전에 전처리가 가능할까?’
24
Version 2: S3 -> EMR -> S3 -> Aurora
• EMR steps는 S3에 있는 text file 대상으로 map reduce가 가능

(결과는 다시 S3에 text file로 저장)
25
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html
Version 2: S3 -> EMR -> S3 -> Aurora
• mapper : 딱히 할 일이 없음
26
Version 2: S3 -> EMR -> S3 -> Aurora
• reducer: 실제 연산 수행



-> 여기서 앞서 말한 10개 bulk insert를

위해서 결과를 10개의 text file로

나눠서 저장
27
Version 2: S3 -> EMR -> S3 -> Aurora
• 전체 architecture 요약
28
Wrap Up
29
Wrap Up
• 요구사항
• “40억건 data를 DB에 넣어주세요.”
• “단, 일주일마다 한 번씩 최대한 빨리 넣어주세요.”
• “원본 data는 S3에 있습니다.”
• “HA(이중화) 해야할 것 같아요.”
• “그리고 db.r4.16xlarge 너무 비싸요.”
• “마지막 2개의 field 를 조합해서 새로운 값을 계산해서 넣어주세요”
30
Wrap Up
• Ground rule
• 내가 잘 알고 있고, 잘 아는 사람이 많은 기술을 선택
• AWS에서 기본으로 지원해주는 full-managed service
31
그래서 S3, EMR, Aurora
Wrap Up
32
LEGO 블럭처럼 여러 개의 AWS service들을 조합해서 나만의 Infra 구축
Wrap Up
33
전 과정을 code로 표현 가능. 즉 cron job 형태 자동화에 용이
Wrap Up
• 결론: “AWS는 사랑입니다.”
34
감사합니다
jongwon.han@hbsmith.io
010-9166-6855
35

Mais conteúdo relacionado

Mais procurados

게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Web Services Korea
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
Amazon Web Services Korea
 

Mais procurados (20)

Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDBDeep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
 
게임의 성공을 위한 Scalable 한 데이터 플랫폼 사례 공유 - 오승용, 데이터 플랫폼 리더, 데브시스터즈 ::: Games on AW...
게임의 성공을 위한 Scalable 한 데이터 플랫폼 사례 공유 - 오승용, 데이터 플랫폼 리더, 데브시스터즈 ::: Games on AW...게임의 성공을 위한 Scalable 한 데이터 플랫폼 사례 공유 - 오승용, 데이터 플랫폼 리더, 데브시스터즈 ::: Games on AW...
게임의 성공을 위한 Scalable 한 데이터 플랫폼 사례 공유 - 오승용, 데이터 플랫폼 리더, 데브시스터즈 ::: Games on AW...
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
 
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
 
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingAurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
AWS 빅데이터 아키텍처 패턴 및 모범 사례- AWS Summit Seoul 2017
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
 
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
 

Semelhante a 20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기

AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Web Services Korea
 

Semelhante a 20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기 (20)

AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
 
AWS GameServer Management
AWS GameServer ManagementAWS GameServer Management
AWS GameServer Management
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
[AWS Migration Workshop] 데이터베이스를 AWS로 손쉽게 마이그레이션 하기
[AWS Migration Workshop]  데이터베이스를 AWS로 손쉽게 마이그레이션 하기[AWS Migration Workshop]  데이터베이스를 AWS로 손쉽게 마이그레이션 하기
[AWS Migration Workshop] 데이터베이스를 AWS로 손쉽게 마이그레이션 하기
 
AWS Summit Seoul 2023 | 오픈소스 데이터베이스로 탈 오라클! Why not?
AWS Summit Seoul 2023 | 오픈소스 데이터베이스로 탈 오라클! Why not?AWS Summit Seoul 2023 | 오픈소스 데이터베이스로 탈 오라클! Why not?
AWS Summit Seoul 2023 | 오픈소스 데이터베이스로 탈 오라클! Why not?
 
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
 
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기
 
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
 
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
 
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
T11_1_한종원_20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Fron...
 
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
20181126 AWS S3, SPA, 그리고 Vue.JS - HBSmith는 어떻게 Frontend를 Serverle...
 
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...
 

Mais de Jongwon Han

AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
Jongwon Han
 

Mais de Jongwon Han (20)

20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법20191226 LEGACYLAND에서 살아남는 법
20191226 LEGACYLAND에서 살아남는 법
 
20190518 개발하기 좋은 날
20190518 개발하기 좋은 날20190518 개발하기 좋은 날
20190518 개발하기 좋은 날
 
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 201920190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
20190418 Read Replicas and Django DB Router - AWS Summit Seoul 2019
 
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
20190214 Startup의 한정된 자원(인력, 자금)에서 AWS를 효율적으로 사ᄋ...
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다20180915 HBSmith에서는 Django 이렇게 사용한다
20180915 HBSmith에서는 Django 이렇게 사용한다
 
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
20180609 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 2주차
 
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
 
20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년20180124 스타트업부터 대기업까지 aws와 함께한 7년
20180124 스타트업부터 대기업까지 aws와 함께한 7년
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and security
 
20171221 naver labs aws 101
20171221 naver labs aws 10120171221 naver labs aws 101
20171221 naver labs aws 101
 
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 10120171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
20171013 데이터 분석가를 위한 데이터플랫폼 Seminar - Public Cloud 101
 
20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다20170829 HB Smith에서는 AWS 이렇게 사용한다
20170829 HB Smith에서는 AWS 이렇게 사용한다
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다20170718 hb smith에서는 aws 이렇게 사용한다
20170718 hb smith에서는 aws 이렇게 사용한다
 
20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop20170422 HB Smith - Primer workshop
20170422 HB Smith - Primer workshop
 
HB Smith - Primer workshop
HB Smith - Primer workshopHB Smith - Primer workshop
HB Smith - Primer workshop
 
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
AWS Summit - AWS를 통한 신뢰성 높은 지속적 배포 및 통합(CD, CI) ᄉ...
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IP
 
HB Smith - business plan - live hero - public
HB Smith - business plan - live hero - publicHB Smith - business plan - live hero - public
HB Smith - business plan - live hero - public
 

20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기

  • 1. RDS Aurora에 40억건 데이터 입력하기 26. Jul. 2018 hello@hbsmith.io (AWS KRUG - architecture 소모임) S3, EMR, Aurora 그리고 자동화 1
  • 2. 발표자 소개 • 한종원 • Python과 Cloud Infra, Lean/Agile 방법론 그리고 애플의 제품을 사랑. • 2012년 석사 학위를 마치고, startup을 시작 (이때부터 AWS를 production level에서 사용) • '의미가 있는 일을, 올바르게 하고 싶다.' • 경력 • (현) DevOps 전문 스타트업 ‘HB Smith’ 대표 • 택시 O2O 서비스 스타트업 ‘Kanizsa Lab’의 backend server / infra devops 담당 • Cloud computing 전문 스타트업 'A2 company' co-founder (‘KINX’에 인수합병) • NEXON 'MapleStory 국내 Live Team'에서 DBA, SA로 근무 (산업 기능 요원) 2 https://www.linkedin.com/in/addnull/ https://hbsmith.io “Startup 경력 = AWS 사용 기간”
  • 3. Contents • 요구사항 정리 • Version 0: S3 -> Aurora (bulk insert) • Version 1: S3 -> Aurora (scale down and HA) • Version 2: S3 -> EMR -> S3 -> Aurora • Wrap Up 3
  • 5. 요구사항 정리 • “40억건 data를 DB에 넣어주세요.” • “단, 일주일마다 한 번씩 최대한 빨리 넣어주세요.” • “원본 data는 S3에 있습니다.” 5
  • 6. 요구사항 정리 • data 1건의 구성 • 원본 6개 field • 마지막 2개의 field 를 조합해서 새로운 값을 계산해서 넣어야함 6 018c32d8 0.000457 0.000178 3 3.3529 1.0002 018c32d8 0.000457 0.000178 3 3.3529 1.0002 A3WFA
  • 7. Version 0: S3 -> Aurora (bulk insert) 7
  • 8. Version 0: S3 -> Aurora (bulk insert) • 구글링, 구글링! • 1.1M writes/sec over 3B Items with 50 nodes (n1-standard-16)
 1M writes/sec over 100 million Items with 40 nodes (n1-standard-8) • 1시간 안에 완료 가능?!?! 8 https://blog.couchbase.com/couchbase-server-hits-1m- writes-with-3b-items-with-50-nodes-on-google-cloud/
  • 9. Version 0: S3 -> Aurora (bulk insert) • 문제점 • AWS 에서는 Couchbase를 직접 구성해야함. • Couchbase 잘모름. 9
  • 10. Version 0: S3 -> Aurora (bulk insert) • Couchbase 를 선택하면,
 지속적으로 유지보수 이슈가
 생길 것 같은 슬픈 예감.. 10
  • 11. Version 0: S3 -> Aurora (bulk insert) • Ground rule • 내가 잘 알고 있고, 잘 아는 사람이 많은 기술을 선택
 -> 즉, MySQL 같은 것들. • AWS에서 기본으로 지원해주는 full-managed service
 -> 그래서 결론은 RDS Aurora 11
  • 12. Version 0: S3 -> Aurora (bulk insert) • RDS Aurora는 S3로부터 bulk insert를 지원 • 즉, S3에 있는 delimiter separated text file을 (예: csv file)
 RDB table로 바로 입력 가능함 12 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/ AuroraMySQL.Integrating.LoadFromS3.html
  • 13. Version 0: S3 -> Aurora (bulk insert) • [TIP] bulk insert의 속도를 빠르게 하기 위해서 index는 나중에 생성 13
  • 14. Version 0: S3 -> Aurora (bulk insert) 14 Aurora 최고 사양 ‘db.r4.16xlarge’으로 실행
  • 15. Version 0: S3 -> Aurora (bulk insert) • 실행 결과.. • bulk insert에는 8시간
 create index는 20시간 정도 걸림 (음?!?!) 15
  • 16. Version 0: S3 -> Aurora (bulk insert) • bulk insert와 create index를 10개로 나눠서 동시 실행
 (EC2 하나에서 multi process 로 실행해도 무방) 16 …
  • 17. Version 0: S3 -> Aurora (bulk insert) • 실행 결과 • bulk insert: 3시간
 create index: 5시간 17 bulk insert가 최대 초당 4M
  • 18. Version 1: S3 -> Aurora (scale down and HA) 18
  • 19. Version 1: S3 -> Aurora (scale down and HA) • “HA(이중화) 해야할 것 같아요.” • “그리고 db.r4.16xlarge 너무 비싸요.” 19
  • 20. Version 1: S3 -> Aurora (scale down and HA) • bulk insert 가 완료되면 ‘db.r4.xlarge’로 scale down 하기로 함 • 앞서 과정에서 동시에 실행되는 10개의 bulk insert 가 모두 끝날 때까지 polling 20
  • 21. Version 1: S3 -> Aurora (scale down and HA) • 동시에 실행되는 10개의 bulk insert 가 모두 끝나면
 scale down 하고 완료되면 HA • [TIP] Aurora는 기존의 RDS 와 달리
 ‘create_db_instance_read_replica’가 아니라
 ‘create_db_instance’를 써야함. 21
  • 22. Version 2: S3 -> EMR -> S3 -> Aurora 22
  • 23. Version 2: S3 -> EMR -> S3 -> Aurora • “마지막 2개의 field 를 조합해서
 새로운 값을 계산해서 넣어주세요” 23 018c32d8 0.000457 0.000178 3 3.3529 1.0002 A3WFA 018c32d8 0.000457 0.000178 3 3.3529 1.0002
  • 24. Version 2: S3 -> EMR -> S3 -> Aurora • 복잡한 산술 연산을 RDB 에서 하는 건 부적절 • ‘음... S3 에 있는 원본 data를 bulk insert 하기 전에 전처리가 가능할까?’ 24
  • 25. Version 2: S3 -> EMR -> S3 -> Aurora • EMR steps는 S3에 있는 text file 대상으로 map reduce가 가능
 (결과는 다시 S3에 text file로 저장) 25 https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html
  • 26. Version 2: S3 -> EMR -> S3 -> Aurora • mapper : 딱히 할 일이 없음 26
  • 27. Version 2: S3 -> EMR -> S3 -> Aurora • reducer: 실제 연산 수행
 
 -> 여기서 앞서 말한 10개 bulk insert를
 위해서 결과를 10개의 text file로
 나눠서 저장 27
  • 28. Version 2: S3 -> EMR -> S3 -> Aurora • 전체 architecture 요약 28
  • 30. Wrap Up • 요구사항 • “40억건 data를 DB에 넣어주세요.” • “단, 일주일마다 한 번씩 최대한 빨리 넣어주세요.” • “원본 data는 S3에 있습니다.” • “HA(이중화) 해야할 것 같아요.” • “그리고 db.r4.16xlarge 너무 비싸요.” • “마지막 2개의 field 를 조합해서 새로운 값을 계산해서 넣어주세요” 30
  • 31. Wrap Up • Ground rule • 내가 잘 알고 있고, 잘 아는 사람이 많은 기술을 선택 • AWS에서 기본으로 지원해주는 full-managed service 31 그래서 S3, EMR, Aurora
  • 32. Wrap Up 32 LEGO 블럭처럼 여러 개의 AWS service들을 조합해서 나만의 Infra 구축
  • 33. Wrap Up 33 전 과정을 code로 표현 가능. 즉 cron job 형태 자동화에 용이
  • 34. Wrap Up • 결론: “AWS는 사랑입니다.” 34