International Game Publisher
The Challenge: To develop, host and manage a secure file storage and distribution solution for a mobile games company. Facilitate the storage of all the digital assets including game file executables, graphics, text and video in a secure central location. Enable distribution of these digital assets to authorised users globally.
AWS services used - S3, Glacier, Cloudfront, ELB, EC2, AutoScaling, Security Groups
Why use Amazon Web Services (AWS) ?
Trust5 decided to use Amazon Web Services (AWS) to host the application since AWS have a number of identical hosting centres in different geographical regions around the globe. Additionally, Trust5 had experience in using AWS services such as S3, Cloudfront, EC2 and RDS to host and manage global mobile websites.
SKU Repository Application
As the Mobile Games Company is located in the US it made sense to host the SKU Repository in the US East Region to minimise upload latency.
An AMI of the receiver application was created and an instance was launched in each Availability Zone of the region. Access to the instances was locked down by IP and Port to authorized IPs of the Mobile Games Company.
When a new asset file and meta data is received, the package is stored to S3 and later archived to Glacier to minimize storage costs. The application logs each digital asset into the SKU Database and stores the assets into a Cloudfront Origin S3 bucket for global distribution.
The SKU Database is replicated to a server in the EU region for Disaster Recovery.
Trust5 developed secure web services to allow authorised customers query the SKU Database and download assets from Cloudfront. The web services were hosted in multiple zones across multiple AWS regions. SSL-enabled Elastic Load Balancers were used to distribute traffic within regions and security groups were used to lock down access to specific IPs. Customers downloaded assets from the nearest Cloudfront Edge location.
Distribution Speed: Customers can now download assets as soon as they are uploaded into the SKU database from the nearest AWS Edge location.
Cost and Scalability: The Mobile Games Company can increase / decrease the number of EC2 instances to match the workload of the service.
Mobile Billing Application
Objective: Create a smart mobile billing application to leverage Trust5’s existing world wide mobile billing connections. Maximise transaction conversion and associated revenue by organising and ranking available billing options based on conversion rate, bearer network, revenue payout and available price tariff.
Develop a Smart Billing server application and integrate with existing Trust5 Billing Engine.
Develop an Android SDK to enable in-game/in-application micro transactions.
Scalable World Wide solution: Trust5 deployed AWS Elastic Beanstalk to create a set of scalable API’s to support billing via the SDK and web services. The solution automatically scales based on traffic load.
Secure SDK Server communication: The client application (game SDK) encrypts all communication and traffic using industry standard Public Key Infrastructure (PKI). This ensures that all billing requests are received from authenticated sources.
Durable Data: There was a requirement to maintain a user purchase history in the event that an individual transaction needed to be restored. While AWS RDS MySQL was deployed as the main transactional database there was a requirement to maintain a reliable, scalable data store. To achieve this, Trust5 deployed a NoSQL DynamoDB database to maintain a durable store of transaction histories.
Live Interactive Application
Objective: Develop a real time interactive second screen game to be played by fans during a live televised soccer game for a leading European soccer club. Optimised for mobile and tablets.
User could interact with the application in real time, make predictions, view scores and compete against friends while watching a live game on TV.
Integrated with Facebook (working as a Facebook canvas app) and also integrated with Facebook connect to allow users to play the app externally from Facebook.
Allow players to connect with/invite and play against Facebook friends.
Users can buy in-game content using Facebook billing or the Trust5 mobile billing service.
Database: Process potentially hundreds of thousands of in-game predictions in less than a second as the game experience must be in real time. Scores need to be updated in the application database as soon as a real life event happens. Trust5 solved this challenge by optimizing the MySQL RDS database to use its in memory capabilities.
Send data in real time: Events that are happening in the live televised match (e.g. goal, free kick) need to be pushed to the client application of every player in real time.
With potentially thousands of connections in less than a second, polling would be too resource intensive. The solution was to use HTML5 web socket technology. We were able to push data to over 50,000 connected clients from the one Amazon EC2 box in less than a second.
Load balancing our EC2 Web Application: Amazon Elastic Load Balancer (ELB) was deployed to load balance the web application. However, this was more complex than a normal load balancing scenario due to our real time use case requirements.
If multiple servers in the ELB had been deployed they would not share all the real time data. To share this data across each node in the ELB we needed to use a messaging backplane - We deployed Redis.
Redis was hosted on a Ubuntu EC2 instance - this meant that if a message was sent to one node in the ELB - it would also be shared across all the nodes as they were all sharing data via the Redis DB running on Ubuntu. This enabled Trust5 to guarantee that we could send real time updates to all connections across each instance in the ELB cluster.
Scalability: As there are only one or two televised games per week there was a requirement to minimise infrastructure requirements outside of match times (typical 3-4 hour windows). Sudden high loads caused difficulties for the deployed ELB. Therefore there was a need to manually “warm up” the Amazon ELB to handle traffic surges.
Health Insurance Application
Trust5 developed a health tracking application for a large UK Health Insurer.
The application has a server side multi-zone component hosted in AWS which pulls in data from a number of third party APIs for each user on the system and a gamification engine which analyses the fitness data and produces a health score. The data stored in the backend is exposed through a number of secure web services.
The application in AWS uses EC2, RDS, S3, ELB, SQS, SNS.
After initial development of a universal iOS application and Android application, Trust5 ideveloped a Windows Mobile version of the application.