SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:INVENT
Migrating the League of Legends
Platform into the AWS Cloud
R o b C a m e r o n
N o v e m b e r 2 7 , 2 0 1 7
G A M 3 0 1
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Rob Cameron
Senior Infrastructure Engineer
• 15+ year veteran in network, security,
and systems
• Six time author around network
security
• Loves programming, coffee, and
helping people
• Hates repetitive tasks
• Rioter for two years
• MrCrapper—(NA)/EUNE/TR/RU/LAN
Introductions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What are we trying to solve?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Platform
• Chat
• Store
• Matchmaking
• Player statistics
rCluster
• Riot container engine
• Microservices
• All new services
Game servers
• Highly latency sensitive
• Target goal of ~60 ms
or lower
• Hundreds of games per
server
What is a League of Legends shard?
Riot shard locations
Riot
Garena
Tencent
PBE
NA
LAN
BR
LAS
EUW
EUNE
TR
RU CN
KR JP
SG
TW
PH
VN
ID
TH
OCE
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Challenges for shard launches
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Initial concepts for AWS deployment
VPCApp
Subnet
DB
Subnet
Direct Connect
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Initial concepts for AWS deployment
VPC
FE App
Subnet
DB
Subnet
Direct Connect
BE App
Subnet
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How are we going to manage this?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS API driven architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Bare metal support All major cloud vendors Ability to ship quickly
Configuration as code Allows others to contribute Long-term support
Managing infrastructure
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Packer
Builds
• AWS AMIs
• VMware OVF
• Vagrant Virtualbox
• MAAS images
Successes
• Strong adoption within Riot
• Solved our imaging needs
Challenges
• Build pipeline
• Windows images
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Terraform
Infrastructure as code
• Simple to edit and version control
• Allows for collaboration
• One repository, many deployments
Successes
• Strong adoption within Riot
• Used between AWS and MAAS
Challenges
• State management
• Difficult to modify long term
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Workflow for infrastructure
Code Review Validate Apply
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Terraform state system
Code Known state True state
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Terraform state inheritance
VPC
DB
Servers
Web
Servers
ELB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
resource "aws_vpc" "shard" {
cidr_block = "${var.aws_vpc_cidr}"
tags {
Name = "${var.vpc_name}"
Accounting = "${var.aws_accounting_id}"
ShardName = "${var.env_name}"
BuiltBy = "terraform"
}
}
output "vpc_id" {
value = "${aws_vpc.shard.id}"
}
output "vpc_cidr" {
value = "${var.aws_vpc_cidr}"
}
output "vpc_route_table_id" {
value = "${aws_vpc.shard.main_route_table_id}"
}
Code snippet
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
resource "aws_instance" "beapp" {
count = "${lookup(var.instance_count, "beapp")}"
ami = "${lookup(var.platform_ami, var.aws_region)}"
instance_type = "${lookup(var.instance_type, "beapp")}"
subnet_id = "${aws_subnet.platform.id}"
key_name = "${aws_key_pair.shard_key.key_name}"
user_data = "${format(file("${path.module}/user_data/basic_user_data.txt"), format("beapp%03d", count.index+1))}"
ebs_optimized = "${var.ebs_optimized}"
disable_api_termination = "${var.global_termination_protection}"
lifecycle {
ignore_changes = ["user_data"]
}
vpc_security_group_ids = ["${aws_security_group.beapp.id}", "${aws_security_group.common.id}"]
tags {
Name = "${format("beapp%03d", count.index + 1)}"
FQDN = "${format("beapp%03d.%s", count.index + 1, var.domain_name)}"
AppName = "beapp"
Owner = "${var.owner_email}"
Accounting = "${var.aws_accounting_id}"
ShardName = "${var.env_name}"
BuiltBy = "terraform"
}
}
Making instances
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Power DNS
• Create DNS entries
• Custom JWT auth
• Similar to Route 53
F5 configuration
• Create VIPs
• Auto populate servers
• Similar to an ELB/ALB
MAAS provider
• Deploy bare metal
• Custom user data
• Define deployed OS
• Similar to AWS
instances
Extending Terraform
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
When do you build a tool?
• Niche problem
• Existing tools don’t match workflow
• Full control over the situation
• Fun?
What do you build it in?
• A language in your ecosystem
• Supportability in your organization
• Something you can learn in?
Building your own tools
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Golang at Riot Games
We love the gopher!
• Tools
• Microservices
• Sidecars
Ekko
• Manages Chef data bags
EkkoEdge
• Manages edge load balancing
DNS Manager
• Manages AWS instances to DNS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Architecture
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Architecture
Shared
Tools
Mock
Game servers
Test
Clients
Internet Riot
Direct
AWS Region
Production game servers rCluster
Riot WAN
Platforms
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Shared services
Proxy Auto Scaling group
region
VPC subnet
virtual private cloud
VPC subnet VPC subnet
DNS NTP DNS NTPDNSChef/Merlin
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Platform
region
virtual private cloud
Store Matchmaking Chat DatabasesBackend AppsFrontend Apps
Tools
VPC
FE Apps BE Apps Store
Services
Matchmaking Chat
Services
Persistence
Data
Stores
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Platform VPC2
region
virtual private cloud
Store DB Matchmaking DB Chat DBPlatform DB
Tools
VPC
Platform DB Store
DB
Matchmaking
DB
Chat DB Platform
VPC
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Load testing harness
region
virtual private cloud
Tools
VPC
LT A
LT Harness
LT Harness
LT B
LT Harness
LT Harness
LT C
LT Harness
LT Harness
LT E
LT Harness
LT Harness
LT D
LT Harness
LT Harness
LT F
LT Harness
LT Harness
LT G
LT Harness
LT Harness
LT H
LT Harness
LT Harness
LT …
LT Harness
LT Harness
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Load testing game servers
region
virtual private cloud
Tools
VPC
GS A
Game server
Game server
GS B
Game server
Game server
GS C
Game server
Game server
Platform
VPC
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Direct connect to Riot DCs
region
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Load testing flow
LT
Harness
AWS
Internet
Gateway
Internet Riot
Direct
Riot LB Direct
Connect
Platform
VPC
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Long Term Operational Challenges
ELB ScalingStuck
Instances
Lost VPN
Gateways
+/-
instances
Lost
volumes
Flapping
direct
connects
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Results
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Project successes
0
200
400
600
800
1000
1200
1400
1600
1800
2000
Infrastructure Code
Commits
Pull Requests
Contributors
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Project successes
0
50
100
150
200
250
300
Servers Instances
Small
Large
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Project successes
0
1
2
3
4
5
6
7
8
9
10
Time in Months
Before
After
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!
R i o t G a m e s a n d R o b C a m e r o n

Weitere ähnliche Inhalte

Was ist angesagt?

ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...
ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...
ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...Amazon Web Services
 
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game BalancingGAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game BalancingAmazon Web Services
 
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfWPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfAmazon Web Services
 
IOT207_Panasonic—Building the Road of the Future on AWS
IOT207_Panasonic—Building the Road of the Future on AWSIOT207_Panasonic—Building the Road of the Future on AWS
IOT207_Panasonic—Building the Road of the Future on AWSAmazon Web Services
 
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...Amazon Web Services
 
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...Amazon Web Services
 
DVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationDVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationAmazon Web Services
 
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedDVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedAmazon Web Services
 
GPSBUS202_Driving Customer Value with Big Data Analytics
GPSBUS202_Driving Customer Value with Big Data AnalyticsGPSBUS202_Driving Customer Value with Big Data Analytics
GPSBUS202_Driving Customer Value with Big Data AnalyticsAmazon Web Services
 
ARC210_Building Scalable Multi-Tenant Email Sending Programs
ARC210_Building Scalable Multi-Tenant Email Sending ProgramsARC210_Building Scalable Multi-Tenant Email Sending Programs
ARC210_Building Scalable Multi-Tenant Email Sending ProgramsAmazon Web Services
 
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...Amazon Web Services
 
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...Amazon Web Services
 
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...Amazon Web Services
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfWIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfAmazon Web Services
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSAmazon Web Services
 
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...Amazon Web Services
 
ABD201-Big Data Architectural Patterns and Best Practices on AWS
ABD201-Big Data Architectural Patterns and Best Practices on AWSABD201-Big Data Architectural Patterns and Best Practices on AWS
ABD201-Big Data Architectural Patterns and Best Practices on AWSAmazon Web Services
 
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDB
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDBSRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDB
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDBAmazon Web Services
 

Was ist angesagt? (20)

ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...
ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...
ABD208_Cox Automotive Empowered to Scale with Splunk Cloud & AWS and Explores...
 
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game BalancingGAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
 
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfWPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
 
STG401_This Is My Architecture
STG401_This Is My ArchitectureSTG401_This Is My Architecture
STG401_This Is My Architecture
 
IOT207_Panasonic—Building the Road of the Future on AWS
IOT207_Panasonic—Building the Road of the Future on AWSIOT207_Panasonic—Building the Road of the Future on AWS
IOT207_Panasonic—Building the Road of the Future on AWS
 
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...
DynamoDB adaptive capacity: smooth performance for chaotic workloads - DAT327...
 
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...
LFS301-SAGE Bionetworks, Digital Mammography DREAM Challenge and How AWS Enab...
 
DVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationDVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational Transformation
 
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedDVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
 
GPSBUS202_Driving Customer Value with Big Data Analytics
GPSBUS202_Driving Customer Value with Big Data AnalyticsGPSBUS202_Driving Customer Value with Big Data Analytics
GPSBUS202_Driving Customer Value with Big Data Analytics
 
ARC210_Building Scalable Multi-Tenant Email Sending Programs
ARC210_Building Scalable Multi-Tenant Email Sending ProgramsARC210_Building Scalable Multi-Tenant Email Sending Programs
ARC210_Building Scalable Multi-Tenant Email Sending Programs
 
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...
Data Security in the Cloud Demystified – Policies, Protection, and Tools for ...
 
GPSTEC307_Too Many Tools
GPSTEC307_Too Many ToolsGPSTEC307_Too Many Tools
GPSTEC307_Too Many Tools
 
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...
SRV336_Build a Serverless, Face-Recognizing IoT Security System with Amazon R...
 
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...
Easy and Scalable Log Analytics with Amazon Elasticsearch Service - ABD326 - ...
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfWIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
 
CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWS
 
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...
Exploring Blockchain Technology, Risks, and Emerging Trends - ARC313 - re:Inv...
 
ABD201-Big Data Architectural Patterns and Best Practices on AWS
ABD201-Big Data Architectural Patterns and Best Practices on AWSABD201-Big Data Architectural Patterns and Best Practices on AWS
ABD201-Big Data Architectural Patterns and Best Practices on AWS
 
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDB
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDBSRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDB
SRV301-Optimizing Serverless Application Data Tiers with Amazon DynamoDB
 

Ähnlich wie GAM301-Migrating the League of Legends Platform into AWS Cloud.pdf

China Gaming Industry Experience and Architecture Sharing
China Gaming Industry Experience and Architecture SharingChina Gaming Industry Experience and Architecture Sharing
China Gaming Industry Experience and Architecture SharingAmazon Web Services
 
中國AWS遊戲業經驗和架構分享
中國AWS遊戲業經驗和架構分享中國AWS遊戲業經驗和架構分享
中國AWS遊戲業經驗和架構分享Amazon Web Services
 
Migrate & Optimize Microsoft Applications on AWS
Migrate & Optimize Microsoft Applications on AWSMigrate & Optimize Microsoft Applications on AWS
Migrate & Optimize Microsoft Applications on AWSAmazon Web Services
 
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...Amazon Web Services
 
ENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesAmazon Web Services
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Amazon Web Services
 
Case Study: The internals of Amazon.com's architecture that allows it to secu...
Case Study: The internals of Amazon.com's architecture that allows it to secu...Case Study: The internals of Amazon.com's architecture that allows it to secu...
Case Study: The internals of Amazon.com's architecture that allows it to secu...Amazon Web Services
 
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSGAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSAmazon Web Services
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Web Services
 
Leveraging serverless in fullstack development
Leveraging serverless in fullstack developmentLeveraging serverless in fullstack development
Leveraging serverless in fullstack developmentEric Johnson
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaAmazon Web Services
 
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)Amazon Web Services
 
Simplifying Microsoft Architectures with AWS Services
Simplifying Microsoft Architectures with AWS Services Simplifying Microsoft Architectures with AWS Services
Simplifying Microsoft Architectures with AWS Services Amazon Web Services
 
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...Amazon Web Services
 
Modernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSModernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSAmazon Web Services
 
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùng
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùngXây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùng
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùngAmazon Web Services
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeAmazon Web Services
 
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...Amazon Web Services
 

Ähnlich wie GAM301-Migrating the League of Legends Platform into AWS Cloud.pdf (20)

China Gaming Industry Experience and Architecture Sharing
China Gaming Industry Experience and Architecture SharingChina Gaming Industry Experience and Architecture Sharing
China Gaming Industry Experience and Architecture Sharing
 
中國AWS遊戲業經驗和架構分享
中國AWS遊戲業經驗和架構分享中國AWS遊戲業經驗和架構分享
中國AWS遊戲業經驗和架構分享
 
Migrate & Optimize Microsoft Applications on AWS
Migrate & Optimize Microsoft Applications on AWSMigrate & Optimize Microsoft Applications on AWS
Migrate & Optimize Microsoft Applications on AWS
 
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
GAM303_Migrating Battleborn and the Spark Platform to Amazon GameLift for Mul...
 
ENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS Services
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...
 
Case Study: The internals of Amazon.com's architecture that allows it to secu...
Case Study: The internals of Amazon.com's architecture that allows it to secu...Case Study: The internals of Amazon.com's architecture that allows it to secu...
Case Study: The internals of Amazon.com's architecture that allows it to secu...
 
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECSGAM307_Ubisoft How For Honor Runs Using Amazon ECS
GAM307_Ubisoft How For Honor Runs Using Amazon ECS
 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
 
Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)Amazon Amazon Elastic Container Service (Amazon ECS)
Amazon Amazon Elastic Container Service (Amazon ECS)
 
ARC205_Born in the Cloud
ARC205_Born in the CloudARC205_Born in the Cloud
ARC205_Born in the Cloud
 
Leveraging serverless in fullstack development
Leveraging serverless in fullstack developmentLeveraging serverless in fullstack development
Leveraging serverless in fullstack development
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
 
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)
運用 AWS Edge Services 作為遊戲行業的關鍵基礎設施元件 (Level 200)
 
Simplifying Microsoft Architectures with AWS Services
Simplifying Microsoft Architectures with AWS Services Simplifying Microsoft Architectures with AWS Services
Simplifying Microsoft Architectures with AWS Services
 
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...
A Practitioner’s Guide on Migrating to, and Running on Amazon Aurora - DAT315...
 
Modernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSModernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWS
 
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùng
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùngXây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùng
Xây dựng website và ứng dụng mobile đáp ứng 10 triệu người dùng
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the Edge
 
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...
PrivateLink for Partners: Connectivity, Scale, Security (GPSTEC306) - AWS re:...
 

Mehr von Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mehr von Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

GAM301-Migrating the League of Legends Platform into AWS Cloud.pdf

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:INVENT Migrating the League of Legends Platform into the AWS Cloud R o b C a m e r o n N o v e m b e r 2 7 , 2 0 1 7 G A M 3 0 1
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Rob Cameron Senior Infrastructure Engineer • 15+ year veteran in network, security, and systems • Six time author around network security • Loves programming, coffee, and helping people • Hates repetitive tasks • Rioter for two years • MrCrapper—(NA)/EUNE/TR/RU/LAN Introductions
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What are we trying to solve?
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Platform • Chat • Store • Matchmaking • Player statistics rCluster • Riot container engine • Microservices • All new services Game servers • Highly latency sensitive • Target goal of ~60 ms or lower • Hundreds of games per server What is a League of Legends shard?
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Challenges for shard launches
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Initial concepts for AWS deployment VPCApp Subnet DB Subnet Direct Connect
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Initial concepts for AWS deployment VPC FE App Subnet DB Subnet Direct Connect BE App Subnet
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How are we going to manage this?
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS API driven architecture
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Bare metal support All major cloud vendors Ability to ship quickly Configuration as code Allows others to contribute Long-term support Managing infrastructure
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Packer Builds • AWS AMIs • VMware OVF • Vagrant Virtualbox • MAAS images Successes • Strong adoption within Riot • Solved our imaging needs Challenges • Build pipeline • Windows images
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Terraform Infrastructure as code • Simple to edit and version control • Allows for collaboration • One repository, many deployments Successes • Strong adoption within Riot • Used between AWS and MAAS Challenges • State management • Difficult to modify long term
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Workflow for infrastructure Code Review Validate Apply
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Terraform state system Code Known state True state
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Terraform state inheritance VPC DB Servers Web Servers ELB
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. resource "aws_vpc" "shard" { cidr_block = "${var.aws_vpc_cidr}" tags { Name = "${var.vpc_name}" Accounting = "${var.aws_accounting_id}" ShardName = "${var.env_name}" BuiltBy = "terraform" } } output "vpc_id" { value = "${aws_vpc.shard.id}" } output "vpc_cidr" { value = "${var.aws_vpc_cidr}" } output "vpc_route_table_id" { value = "${aws_vpc.shard.main_route_table_id}" } Code snippet
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. resource "aws_instance" "beapp" { count = "${lookup(var.instance_count, "beapp")}" ami = "${lookup(var.platform_ami, var.aws_region)}" instance_type = "${lookup(var.instance_type, "beapp")}" subnet_id = "${aws_subnet.platform.id}" key_name = "${aws_key_pair.shard_key.key_name}" user_data = "${format(file("${path.module}/user_data/basic_user_data.txt"), format("beapp%03d", count.index+1))}" ebs_optimized = "${var.ebs_optimized}" disable_api_termination = "${var.global_termination_protection}" lifecycle { ignore_changes = ["user_data"] } vpc_security_group_ids = ["${aws_security_group.beapp.id}", "${aws_security_group.common.id}"] tags { Name = "${format("beapp%03d", count.index + 1)}" FQDN = "${format("beapp%03d.%s", count.index + 1, var.domain_name)}" AppName = "beapp" Owner = "${var.owner_email}" Accounting = "${var.aws_accounting_id}" ShardName = "${var.env_name}" BuiltBy = "terraform" } } Making instances
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Power DNS • Create DNS entries • Custom JWT auth • Similar to Route 53 F5 configuration • Create VIPs • Auto populate servers • Similar to an ELB/ALB MAAS provider • Deploy bare metal • Custom user data • Define deployed OS • Similar to AWS instances Extending Terraform
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. When do you build a tool? • Niche problem • Existing tools don’t match workflow • Full control over the situation • Fun? What do you build it in? • A language in your ecosystem • Supportability in your organization • Something you can learn in? Building your own tools
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Golang at Riot Games We love the gopher! • Tools • Microservices • Sidecars Ekko • Manages Chef data bags EkkoEdge • Manages edge load balancing DNS Manager • Manages AWS instances to DNS
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Architecture
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Architecture Shared Tools Mock Game servers Test Clients Internet Riot Direct AWS Region Production game servers rCluster Riot WAN Platforms
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Shared services Proxy Auto Scaling group region VPC subnet virtual private cloud VPC subnet VPC subnet DNS NTP DNS NTPDNSChef/Merlin
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Platform region virtual private cloud Store Matchmaking Chat DatabasesBackend AppsFrontend Apps Tools VPC FE Apps BE Apps Store Services Matchmaking Chat Services Persistence Data Stores
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Platform VPC2 region virtual private cloud Store DB Matchmaking DB Chat DBPlatform DB Tools VPC Platform DB Store DB Matchmaking DB Chat DB Platform VPC
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Load testing harness region virtual private cloud Tools VPC LT A LT Harness LT Harness LT B LT Harness LT Harness LT C LT Harness LT Harness LT E LT Harness LT Harness LT D LT Harness LT Harness LT F LT Harness LT Harness LT G LT Harness LT Harness LT H LT Harness LT Harness LT … LT Harness LT Harness
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Load testing game servers region virtual private cloud Tools VPC GS A Game server Game server GS B Game server Game server GS C Game server Game server Platform VPC
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Direct connect to Riot DCs region
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Load testing flow LT Harness AWS Internet Gateway Internet Riot Direct Riot LB Direct Connect Platform VPC
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Long Term Operational Challenges ELB ScalingStuck Instances Lost VPN Gateways +/- instances Lost volumes Flapping direct connects
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Results
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Project successes 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Infrastructure Code Commits Pull Requests Contributors
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Project successes 0 50 100 150 200 250 300 Servers Instances Small Large
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Project successes 0 1 2 3 4 5 6 7 8 9 10 Time in Months Before After
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you! R i o t G a m e s a n d R o b C a m e r o n