클라우드 기반의 실시간 비딩 시스템 아키텍처를 구축하는 방법에 대해 설명하는 백서 [Building a Real-Time Bidding Platform on AWS]의 내용을 AWS 코리아의 김필중 솔루션즈 아키텍트가 한글로 요약한 슬라이드입니다. 어떻게 클라우드가 RTB의 필수 요소인 낮은 지연시간과 확장성을 확보하는 데 도움이 될 수 있는지 설명하고, 실제 고객 사례를 통해 이러한 아키텍처를 구성하는 법을 살펴보실 수 있습니다.
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...
[백서 요약] Building a Real-Time Bidding Platform on AWS
1. Building a Real-Time Bidding
Platform on AWS
백서 요약
Amazon Web Services Korea 김필중
2016년 6월
2. Building a Real-Time Bidding Platform on AWS
• 백서
– https://aws.amazon.com/whitepapers/
3. Building a Real-Time Bidding Platform on AWS
• PDF 다운로드
– https://d0.awsstatic.com/whitepapers/Building_a_Real_Time_Bidding_Pl
atform_on_AWS_v1_Final.pdf
– 2016년 3월 기준으로 version 1 이 올라와 있음
4. 개요
• 백서의 목적
– 아키텍트, 광고주 및 개발자가 RTB를 이해하고 AWS에서 RTB 플랫폼을
구축하기 위한 정보 제공
– 실제 고객 사례 바탕의 참고용 아키텍처 제시 및 AWS 상의 RTB 플랫폼을
시작하기 위한 추가 정보 제공
5. 소개
• 2016년 RTB 상황
– 온라인 광고는 매우 성장하고 있으며, 그 광고 지출비는 2016년 TV 광고
지출비를 상회할 것으로 예상됨
– 그 중에서도 RTB 는 현저한 성장을 나타내고 있음
• RTB 는 실시간으로 디지털 광고 거래에 대한 경매 기반의 접근 방식
• RTB 는 2015년에 프로그래매틱 바잉 방식으로 구매한 광고의 74%를
차지하고 있으며, 110억 US 달러 규모
• RTB 거래는 2016년에 30% 성장할 것으로 전망됨
• RTB 가 60% 의 초과 성장이 예상되는 모바일 디스플레이 광고에서도
RTB는 인기를 끌고 있음
– 취급 볼륨이 늘어나며 각 광고 노출에 대해 더 나은 판단이 필요해짐
• AWS 는 실시간으로 낮은 지연 분석을 가능하게 하는 솔루션의
생태계가 구축되어 있음
6. Real-Time Bidding 설명
• RTB 의 흐름
– 접속한 웹사이트에 광고가 배치되어 있다면, 다음과 같은 과정을 거침
1. 사용자가 웹사이트나 모바일 애플리케이션(Publisher)을 방문
2. Publisher 또는 3rd party 데이터 공급자에게서 Ad Exchange 에 노출
공지
3. Ad Exchange 에서 입찰 요청을 입찰자(광고주)에게 통지. 일반적으로
100 ms 이내로 입찰 가격을 Ad Exchange 에 반환
4. 가장 높은 가격으로 입찰한 입찰자(광고주)가 노출에 대한 광고
표시의 권리를 가짐
5. 광고주는 Web 사이트나 모바일 애플리케이션 광고문안을 전달
7. Real-Time Bidding 설명
• 광고와 애드테크의 탄력성
– 일일 Web 트래픽 볼륨은 시간대에 따라 큰 차이를 보임
– RTB 의 일반적인 부하는 아래와 같은 그래프 패턴을 보임
• 트래픽이 적은 시간에 리소스 비용의 절감 가능
8. Real-Time Bidding 설명
• 광고와 애드테크의 탄력성
– 계절에 따라 트래픽 볼륨은 매우 상이
• EX) 미국에서는 크리스마스 시즌과 봄 Tax 시즌에 트래픽이 크게 증가
• AWS 를 사용할 경우 피크에 맞춰 리소스 프로비저닝이 불필요
9. Real-Time Bidding 설명
• 낮은 지연 시간의 중요성
– Ad Exchange 는 모든 입찰자로부터 100ms 이내에 응답받기를 기대함
• 1ms라도 늦으면 높은 입찰 응답에도 광고 표시의 기회를 잃음
– 입찰 실패는 중요한 고객층에 대한 광고의 기회를 잃는것을 의미
• 분당 수백만의 입찰 요청을 받게 됨
• 모든 입찰 요청을 처리하는 능력은 입찰자(광고주) 에 있어서 매우 중요
– Exchange 에 대한 네트워크 연결을 포함하여 가능한 빠르게!
10. Real-Time Bidding 설명
• 광고의 글로벌성
– 온라인 광고는 바로 글로벌로 진행 가능
• 많은 잠재력있는 고객에게 광고를 제공하고 싶다면 RTB 플랫폼을
전세계의 모든 Exchange 근처에 배치할 필요가 있음
– 지리적으로 멀리 떨어진 Exchange 에서는 100ms 이하라는 조건을
충족시키지 못함
• RTB 플랫폼을 구축한다면 전 세계에 구축할 수 있는지를 생각하여야 함
11. Real-Time Bidding 설명
• RTB 의 경제성
– 디지털 광고 사업은 매우 경쟁이 치열하며, 마진은 감소하는 추세
– 다양한 기술 솔루션을 활용하더라도 낮은 비용으로 운용할 수 있어야
이익을 확보할 수 있음
– RTB 의 비용
• 트래픽을 받아 기록
• 입찰 로직을 실행
• 입찰 로직에서 사용하는 데이터 저장소의 운영
– AWS 에서 RTB 의 비용 최적화
• 다양한 전략 사용 가능
12. Real-Time Bidding 설명
• RTB 플랫폼 구성요소
– 입찰 트래픽 수집과 처리 (Bid Traffic Ingestion and Processing)
• 어떤 Web 사이트의 광고 표시 크기, 사용자 데모그래픽 정보 등 입찰
트래픽을 수집해 사용자의 과거 데이터 등과 대조하여 입찰 가격을
계산하고, 광고 URL 과 함께 결과를 돌려줌. 이를 매우 빠르게 할
필요가 있음.
– 분석용 트래픽 수집과 처리 (Analysis Traffic Ingestion and Processing)
• 분석용 트래픽은 Ad Exchange 및 Publisher 에서 추적 용 픽셀
이미지를 바탕으로 보내져 옴. 입찰 요청과 같이 시간에 민감한 것은
아니지만 매우 가치있는 정보이며, 입찰 가격 결정에 활용될 수 있음.
이 데이터의 분석은 광고 노출의 가치 추정에 중요함.
13. Real-Time Bidding 설명
• RTB 플랫폼 구성요소
– 낮은 지연 데이터 저장소 (Low Latency Data Repository)
• 입찰 요청의 빠른 응답을 위해서는 사용자 정보 조회, 사용자와
광고의 적합성, 그 광고가 사용자에게 얼마나 노출되는지와 같은
데이터를 낮은 지연 시간(가급적 10ms 이내)으로 취득해야 함
• 다른 지역에서 사용자가 접속해 올 수 있기에 지역 간 복제 기능은
매우 중요한 요소
14. Real-Time Bidding 설명
• RTB 플랫폼 구성요소
– 내구성 있는 장기간 데이터 저장소 (Durable Data Repository for
Long-Term Storage)
• 대량의 데이터(과거 모든 데이터)를 저렴하게 유지하기 위함
• 사용자의 행동을 예측하기 위해서 과거 데이터의 활용은 필수
– 예를 들어, 12월과 4월의 쇼핑 행동은 각각 다를 것이고, 만일
지난 12월 사용자의 행동 데이터가 있으면, 올해 12월에
사용자의 더 나은 행동 예측 가능
• 광고주가 보유한 데이터뿐만 아니라 데이터 공급자가 제공하는
외부 데이터를 활용
15. Real-Time Bidding 설명
• RTB 플랫폼 구성요소
– 분석 플랫폼 (Analytics Platform)
• 기계학습과 같은 기술을 활용하여 특정 데모그래픽 및 사용자에게
특정 광고의 효율성 계산.
• 여러 장치를 통해 사용자의 행동을 추적 및 기록하고 사용자 프로필
및 고객 세그먼트를 업데이트.
• 내구성 있는 장기간 저장소 (Long Term Durable Data Repository)
에 있는 다양한 데이터를 활용
– 처리 결과 데이터는 Low-Latency Store 에 보유하여 입찰
요청에 빠르게 응답할 수 있음
16. Real-Time Bidding 설명
• RTB 플랫폼 구성요소
– 캠페인 관리 (Campaign Management)
• 일반적으로 멀티 테넌트의 Web 애플리케이션에서 광고 캠페인의
관리 및 광고 예산 관리
• 입찰에 대한 자세한 보고서는 고객에게 제공
– 즉시(on the fly) 광고 캠페인을 수동 또는 자동으로 조정
– 조정 결과를 낮은 지연의 데이터 저장소(Low-Latency Data
Store) 에 반영
18. AWS 와 Real-Time Bidding
• AWS 와 탄력성
– Amazon EC2
• 수 분내 시작할 수 있는 서버 인스턴스
• 요구되는 자원(컴퓨팅, 메모리 등)에 따라 빠른 확장 및 축소가 가능
• 급변하는 트래픽에 따라 빠른 확장 및 축소 가능
• 분석 처리를 일괄적으로 가동시킬 수 있음
– 가동 후 인스턴스를 중지하면, 그 동안은 과금되지 않음
• 예측 불가능한 스파이크에도 대응 가능
• 장기 계약과 거액의 초기 투자 불필요
19. AWS 와 Real-Time Bidding
• AWS 와 낮은 지연 네트워킹
– AWS Region
• Exchange 의 위치와 같은 지역의 AWS Region 을 사용하여 낮은
지연시간 유지 가능
– AWS Direct Connect
• Public 에 있는 Internet 회선을 통하면 지연과 지터가 발생할 수 있음
• Exchange 및 VPC 를 Direct Connect (DX)로 연결하여 빠르고 안정적인
연결 가능
– EC2 Instance type
• 확장 네트워킹 사용 (Enhanced networking with SR-IOV)
– http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/enhanced-
networking.html
20. AWS 와 Real-Time Bidding
• AWS 글로벌 입지
– AWS 글로벌 각 지역으로 RTB 플랫폼을 배포 가능
– AWS 의 배포 서비스 이용 가능
• AWS CloudFormation
– https://aws.amazon.com/cloudformation/
• AWS OpsWorks
– https://aws.amazon.com/opsworks/
• AWS Elastic Beanstalk
– https://aws.amazon.com/elasticbeanstalk/
– 만약 특정 지역에서 광고 캠페인이 필요 없어지는 경우 즉시 종료 가능
• 필요할 때 언제든 즉시 재시작 가능
• AWS 는 사용한 만큼의 종량 과금제
21. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 운영의 경제성
– AWS 에서 RTB 운영을 점진적으로 발전해가는 일반적인 방법
1. Auto Scaling 기능을 사용한 탄력적인 확장 및 축소의 실현
2. Spot Instances 를 이용한 비용 절감
– Spot Fleet API 활용
» http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/spot-
fleet.html
– Spot Bid Advisor 활용
» https://aws.amazon.com/jp/ec2/spot/bid-advisor/
3. 예약 인스턴스를 통한 비용 절감
4. Direct Connect 를 사용한 외부와의 빠르고 안정적인 네트워크 연결
5. Amazon DynamoDB 를 사용한 동적인 확장 및 축소의 실현
22. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 운영 구성요소
– RTB 플랫폼의 이해를 바탕으로 구성 요소 별 AWS서비스의 선택
– AWS 에서 입찰 트래픽 수집과 처리
• 입찰 요청의 부하 분산에 Elastic Load Balancing (ELB) 를 활용
– ELB 는 AWS 가 관리해주는 완전 관리형 로드 밸런서
» 여러 Availability Zone 에 대한 분산을 쉽게 실현
» 헬스 체크 기능
• Auto Scaling 및 API/CLI 를 사용한 확장 및 축소
– 『Managing Your Infrastructure at Scale』백서의 자세한 내용 참고
• 오픈 소스 Bidder 인 RTBkit(http://rtbkit.org/)
– EC2에 쉽게 구성 가능
23. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– AWS 에서의 분석용 트래픽의 수집과 처리
• Amazon Kinesis 를 통해 직접 데이터를 수집, 혹은 ELB + EC2 에서
데이터를 캡처 pre-processing 후 Kinesis Producer 를 사용하여 Kinesis
에 전달
• Kinesis Client Library(KCL) 를 사용한 Kinesis 스트림에서 데이터 검색
• Kinesis ⇒ S3(Durable 인 Repository) 에 데이터를 저장
• Amazon Kinesis Firehose 를 활용하면 대량의 데이터 S3 에 저장
프로세스를 간소화 가능
24. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– AWS 에서의 낮은 지연의 데이터 저장소
• AWS Managed 서비스를 활용
– Amazon DynamoDB
– Amazon ElastiCache
– Do-it-yourself 를 통해 EC2 에 Aerospike, Cassandra, Couchbase 같은
데이터베이스를 실행하는 것도 가능
• Amazon DynamoDB 는 매우 큰 테이블을 적은 노력으로 작업 및 인적
개입(운용 인력) 없이 운용 가능
– DynamoDB Streams 를 활용하여 지역을 넘어 복제 가능
– 트랜잭션량에 따라 프로비저닝 처리량의 오르내림
» 클러스터 관리가 필요하지 않으며, 비용 절감이 가능
» 테이블마다 처리량을 설정 가능
25. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– Amazon DynamoDB
• Hash Key 와 Range Key 를 사용하여 사용자의 카테고리화 예제
– 사용자 ID 를 해시 키로 지정, 사용자가 속한 세그먼트가 레인지 키로
– 사용자가 속한 세그먼트에 따라 입찰가를 조정
26. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– Durable Data Repository for Long-Term Storage on AWS
• Amazon S3
– 확장성, 안정성, 고가용성을 제공, 사용한만큼의 종량 과금
– Object Lifecycle Management
» 예) 7 년 경과한 객체는 Amazon Glacier 로 이동
• Amazon Elastic MapReduce
– 분산 데이터 처리 기반
– S3 에서 직접 데이터를 읽어 들여, Apache Spark 같은 오픈
소스 도구를 사용하여 분석 가능
• AWS Lambda
– S3 에 객체가 생성된 이벤트를 바탕으로, 이벤트 기반
프로세싱의 실현
– 지금까지의 batch-based 아키텍처에서의 개방
27. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– AWS 에서의 RTB 분석 플랫폼
• 기계학습(Machine Learning) 접근을 채택하는 경우가 많음
– EMR 에 Spark MLlib 이 사용되는 경우가 많음
» 또한, EMR 과 결합하여 다양한 도구 활용 가능
– Amazon Machine Learning (Amazon ML)
» S3 에 있는 장기 데이터 세트를 사용한 분석 가능
• 『Big Data Analytics Options on AWS』 백서
• 분석 워크로드에 많이 이용되는 서비스
– Amazon Simple Workflow Service(SWF)
– AWS Data Pipeline
– AWS Lambda
28. AWS 와 Real-Time Bidding
• AWS 에서의 RTB 플랫폼 구성요소들
– AWS 에서의 캠페인 관리
• 이른바 Well-Architected 의 Web 애플리케이션
• Bid-processing 시스템과 비슷하지만, 영속 데이터의 가용성이 더 중요
• Amazon RDS
– Oracle, SQL Server, Aurora, MySQL, PostgreSQL, 그리고 Maria DB 를 지원
– 설치, 패치, 일일백업과 같은 유지 보수 및 운영 작업과 Multi-AZ 지원
• Amazon CloudFront
– 콘텐츠 딜리버리 네트워크 (CDN)
– 보안에 신속하게 사용자에게 가장 가까운 엣지에서 JavaScript 나 광고
이미지를 전달하는 것이 가능
30. 결론
• Real-Time Bidding
– 성장 추세!
– 효과적인 실시간 광고 구매는 다양한 구성요소들을 필요로 함
– AWS 서비스 군은 RTB 각각의 구성요소에 매우 잘 어울림
• 비용 절감이 가능하며 플랫폼의 복잡성을 줄일 수 있음
• AWS 글로벌 인프라의 혜택을 누릴 수 있음
– 확장 가능한 Real-Time 인프라를 구축하는 작업을 AWS 에 오프로드 가능
• 경쟁과 차별화 된 본질적인 작업에 주력 가능!
31. 기고자
• Steve Boltuch, solutions architect, Amazon Web Services
• Chris Marshall, solutions architect, Amazon Web Services
• Marco Pedroso, software engineer, A9
• Erik Swensson, solutions architect manager, Amazon Web Services
• Dmitri Tchikatilov, business development manager, Amazon Web Services
• Vlad Vlasceanu, solutions architect, Amazon Web Services
• (日本語要約) Eiji Shinohara, solutions architect, Amazon Web Services
• (한국어 요약) Piljoong Kim, solutions architect, Amazon Web Services
참고 자료
• IAB Real Time Bidding Project
• Beating the Speed of Light with Your Infrastructure on AWS
• Deploying an RTBkit on AWS with a CloudFormation Template