FROM ON-PREMISE TO CLOUD Migrating Web Applications into AWS
Kington Chan Institute for Genomic Medicine Business Case • On-premise Web Servers hosting about 10 Research Data Query Application • www.epi4kdb.org, www.egidb.org, etc. • Build on Tomcat 8 • With very large DB (over 500GB, keep growing) • Traffic volume varies & not unexpectable • Problems to be solved • Considerable administrative effort Ø Infrastructure maintenance Ø Servers patching Ø Service monitoring Ø System Backup • Poor resource usage • Not up to users’ satisfaction • Resilience & scalability Solution of Hosting Applications at AWS
3 Computing Options
Service name Description
AWS EC2 A managed environment for deploying virtual machines
A managed environment for deploying containerized AWS ECS / EKS applications
AWS Elastic Beanstalk A managed serverless platform for deploying applications
A managed serverless platform for deploying event-driven AWS Lambda functions
4 Deploy AWS Elastic Beanstalk
• PaaS for building scalable applications • Support most of the popular platforms. • Web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS • Makes deployment, maintenance, and scalability easy so you can focus on innovation
5 Autoscaling to Meet Demand
6 Deployment – Application Source Bundle
Create and upload a source bundle. • Logical collection of Elastic Beanstalk components, including environments and applications • Source bundle must meet the following requirements: Ø Consist of a single ZIP file or WAR file (you can include multiple WAR files inside one ZIP file) Ø Not exceed 512 MB Ø Not include a parent folder or top-level directory (subdirectories are fine)
7 Environment
nginx-proxy.config
tomcat.conf
8 Create Application Source Bundle
Dockerfile
generate_wars.sh
9 Rational Database Options
Amazon Aurora • Custom engine for Amazon RDS • Optimized for performance in the cloud. • Compatible with both MySQL and PostgreSQL • High throughput, storage auto-scaling, and a self-healing, fault-tolerant storage system. It also provides point-in-time recovery and continuous backup, with replication across three availability zones keeping the data secure • Five times faster than standard MySQL databases and three times faster than PostgreSQL databases when used in the cloud
10 Monitoring
• Fine-tune capacity • Applications debug • Issues trouble- shooting • Provide alters/warnings and trigger events for auto operations
11 Auto-Healing (Use Lambda Function)
Downgraded services trigger restarting the application servers.
12 Future Work
• Build CI/CD Pipeline • Other
13 Q &A
14