Partner name: Rikkeisoft Co., Limited
Case study: Using AWS as infrastructure for high traffic “9999 Tet” application
Scope of work: Development, deployment and maintenance
OS: Amazon Linux
AWS services: Amazon Elastic Beanstalk, Amazon EC2, Amazon RDS for MySQL, Amazon S3, Amazon Elastic Load Balancing, Amazon ElastiCache for Redis, Amazon CloudFormation, Amazon CloudWatch, Amazon Route 53
Customer name: AIC Joint Stock Company
Industry: Non disclosure
Number of employees: more than 1200
Founded year: 2005
System URL: https://api.tetvietaic.com/api/appstatus
Our customer, AIC Group had a plan to make an application for Vietnamese users in the event of Chinese new year in Vietnam, also known as Tet. Rikkeisoft was contracted for the whole design - development - deployment and maintenance services. “9999 Tet” was designed to be an all-in-one application, providing information on Tet in various categories such as culture, entertainment, spirituality, traffic, medical and shopping etc.
Due to the nature of the application, it was expected to have surge traffic during the period around the New year Eve. For example, this application especially had a feature called “Lucky Money Shake” where users can shake their mobile devices to receive lucky money in the form of gift cards during New year Eve. After Tet, traffic was expected to drop significantly.
AIC wanted a flexible solution for infrastructure that can automatically scale up during peak times, and scale back to normal load afterward. Security wise, desired solution must be robust against malicious attacks. On the other hand, solution must not require too much human effort to monitor and maintain.
Our proposed solution
Due to the nature of our customer’s business, AIC has been relying on physical infrastructure; however, we realized that in this scenario a cloud based approach would be more time and cost-effective as there would be only 1.5 month for the whole development and release process. Hence, we proposed AWS as the provider for infrastructure thanks to its scalability and flexibility.
The backend was developed in Python Django as a standard web application, thus AWS Elastic Beanstalk was used to streamline the deployment process. For auto-scalability, we proposed using AWS CloudWatch to monitor load and AWS Autoscaling to manage clusters of AWS EC2. AWS LoadBalancer was proposed to connect to those clusters.
For data storage, we proposed combinations of three services:
AWS ElasticCache for application caching.
AWS RDS for database. In our case, RDS MySQL cluster was proposed with active replica configuration.
AWS S3 for storage and distribution for media including published content and user generated content and assets such as plugins or static contents.
For security, we proposed VPC to isolate private (dev environment and nodes running CMS) and public networks (nodes for application API).
AWS Route 53 was also proposed for domain name management.
During peak hour, we increased ElasticCache to boost performance as most users were requesting the same content. After the event, ElasticCache was scaled down to a smaller instance to save cost.
There was no reported incident of server overloading during the period around Chinese New Year.
The application served more than 1 millions users and performed well during Tet.
More than 1 millions app installations on Google Play Store and Apple Store
More than 8000 users online during peak time
More than 1.2 millions of transactions of Lucky Money Shake
Our customer was happy with our solution based on AWS infrastructure, in terms of both quality of service and cost effectiveness.
This project was the first experience of AIC with AWS and considered as a success, which would lead to more use cases in the future.
Duration of project: 1.5 month