FROM ON-PREMISE to CLOUD Migrating Web Applications Into AWS
Total Page:16
File Type:pdf, Size:1020Kb
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.