2016年3月に公開されたWhitepaper『Building a Real-Time Bidding Platform on AWS』の要約です。
https://d0.awsstatic.com/whitepapers/Building_a_Real_Time_Bidding_Platform_on_AWS_v1_Final.pdf
16. Real Time Bidding on AWS
• Elasticity on AWS
– Amazon EC2
• 数分間で起動できるサーバーインスタンス
• トラフィックに応じたクイックなスケールアップ/ダウンが可能
• 解析処理をバッチで稼働させることも可能
– 稼働終了後インスタンスを落とせばその間は課⾦されない
• 予想不可能なスパイクにも対応可能
• ⻑期間のコミットメントや巨額の初期投資は不要
17. Real Time Bidding on AWS
• Low Latency Networking on AWS
– AWS Region
• Exchangeがある場所と同じ地域にあるAWS Regionを使うことで低レ
イテンシを実現
– AWS Direct Connect
• PublicなInternet回線を経由すると、jitter(イライラする)なレイテン
シが起こる可能性がある
• ExchangeとあなたのVPCをDirect Connect(DX)で結ぶことによって
⾼速で安定した接続を実現
– EC2 Instance type
• Enhanced networking with SR-IOV(拡張ネットワーキングの有効化)
– http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enh
anced-networking.html
18. Real Time Bidding on AWS
• AWS Global Footprint
– AWSなら世界中のリージョンにRTBプラットフォームをデプロイ可
– デプロイメントサービスを利⽤できるのも⼤きなアドバンテージ
• AWS CloudFormation
– https://aws.amazon.com/cloudformation/
• AWS OpsWorks
– https://aws.amazon.com/opsworks/
• AWS Elastic Beanstalk
– https://aws.amazon.com/elasticbeanstalk/
– もし特定のリージョンで広告キャンペーンを持つことがなくなったのであ
れば、すぐにシャットダウン可能
• 次に利⽤する機会があれば直ぐに⽴ち上げ直すことも可能
• AWSは使った分だけの従量課⾦
19. Real Time Bidding on AWS
• The Economics of RTB on AWS
– RTB on AWSを改良していく⼀般的な⽅法
• Auto Scaling機能を使ったエラスティックなスケールの実現
• 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/
• リザーブドインスタンスによるコスト削減
• Direct Connectを使った外部との⾼速で安定したネットワーク接続
• Amazon DynamoDBを使ったダイナミックなスケールの実現
20. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– RTBプラットフォームについて理解し、そこで使われるコンポーネントが
どんなものか分かったところで、どのコンポーネントにどのAWSサービス
が使われていくか解説
– Bid Traffic Ingestion and Processing on AWS
• ⼊札リクエストの負荷分散にElastic Load Balancing(ELB)の活⽤
– ELBはAWSによるフルマネージドなロードバランサ
» 複数Availability Zoneへの振り分けを簡単に実現
» ヘルスチェック機能
• Auto ScalingやAPI/CLIを使ったスケールイン/アウト
– Whitepaper『Managing Your Infrastructure at Scale』に詳細
• オープンソースのBidderであるRTBkit(http://rtbkit.org/)
– EC2上に簡単にローンチ可能
21. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– Analysis Traffic Ingestion and Processing on AWS
• Amazon Kinesisへの直接のデータの取り込み、もしくは、ELB+EC2
でデータを取り込みpre-processingした後にKinesis Producerを使っ
てKinesisへフォワード
• Kinesis Client Library(KCL)を使ったKinesisストリームからのデータ
の取り出し
• Kinesis⇒S3(DurableなRepository)にデータを保存
• Amazon Kinesis Firehoseを活⽤すれば⼤量データのS3への保存プロ
セスを簡略化可能
22. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– Low Latency Data Repository on AWS
• AWS Managedサービスを活⽤
– Amazon DynamoDB
– Amazon ElastiCache
– Do-it-yourselfでEC2上にAerospike, Cassandra, Couchbaseといった
データベースを稼働させることは可能
• Amazon DynamoDBは⾮常に⼤きなテーブルを少ない管理系タスクお
よび⼈的な介⼊無しに運⽤可能
– DynamoDB Streamsを活⽤しリージョンをまたいだレプリケーションを
実現
– トランザクション量に応じたプロビジョンスループットの上げ下げ
» クラスタ管理等は不要。容易なコスト削減
» テーブル毎にスループットを設定可能
23. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– Amazon DynamoDB
• Hash KeyとRenge Keyを使ったユーザーのカテゴライズ例
– ユーザーIDをハッシュキー、ユーザーが属するセグメントをレンジキー
– ユーザーが属するセグメントによって⼊札価格を調整
24. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– 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なアーキテクチャからの開放
25. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– RTB Analytics Platform on AWS
• 機械学習のアプローチを取られることが多い
– Spark MLlib on EMRが使われることが多い
» もちろん他のツールをEMR上で稼働させることも可能
– Amazon Machine Learning(Amazon ML)
» S3にあるLong-termなデータセットを使った分析が可能
• Whitepaper『Big Data Analytics Options on AWS』
• 分析のワークロードに⽤いられることが多いサービス
– Amazon Simple Workflow Service(SWF)
– AWS Data Pipeline
– AWS Lambda
26. Real Time Bidding on AWS
• Components of an RTB Platform on AWS
– Campaign Management on AWS
• いわゆるWell-ArchitectedなWebアプリケーション
• Bid-processingと同じようにシステムになることが多いが、永続化
データの可⽤性がより問われる
• Amazon RDS
– Oracle, SQL Server, Aurora, MySQL, PotgreSQL, そしてMaria DBをサ
ポート
– インストール、パッチあて、⽇次バックアップのような保守運⽤的なタス
ク、そしてMulti-AZの同期レプリケーションをサポート
• Amazon CloudFront
– コンテントデリバリネットワーク
– セキュアに素早く、ユーザーに⼀番近いエッヂの拠点からJavaScriptや広
告画像を配信することが可能
29. Contributors
• 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
Further Reading
• IAB Real Time Bidding Project
• Beating the Speed of Light with Your Infrastructure on AWS
• Deploying an RTBkit on AWS with a CloudFormation Template