For many companies whose operations involve multiple websites and/or applications, AWS cloud services have proven invaluable. They’re cost effective, highly scalable, and reliable. Amazon Elastic Compute Cloud (Amazon EC2), in particular, provides exceptional value by making web-scale cloud computing easier for developers.
One of the typical mistakes, however, is low reliability and lack of redundancy when running multiple apps on a single EC2 instance. Competing for resources on a solitary EC2 instance, as well as traffic bursts, can negatively affect other apps. That can make website and app development and deployment processes unpredictable and at risk for downtime. This was the case for one of ClearScale’s clients.
Real-world Customer Challenges
The company was using a single Amazon EC2 instance to support several web apps, as well as the information exchange between hundreds of devices and its website. Its success relied on the reliability of those apps and the availability of its website, as well as on its ability to deliver new apps.
Complicating things on the app development front was the fact that the company didn’t have a dedicated testing environment. Apps were tested on developers’ desktop computers, so there was no guarantee they would perform as expected once in the company’s AWS environment.
It didn’t help that its app building and deployment processes weren’t automated. Because so many time-consuming manual steps were involved, it was easy for something to go wrong.
The company requested ClearScale’s assistance in automating its app building and deployment processes, as well as in migrating live traffic to a new production environment, built in accordance with AWS and DevOps best practices. Because the company was serving multiple domains, it also tasked ClearScale with making sure its domains and those of its customers would be pointed to different IP addresses.
The ClearScale Solution
In developing the overall solution, ClearScale first created a highly available infrastructure using AWS best practices and high availability AWS services. This included the use of availability zones.
AWS’s global infrastructure consists of multiple geographically separated locations called regions, which are comprised of isolated data centers referred to as availability zones (AZs). ClearScale configured the customer’s application (EC2) and database (RDS) tiers in multiple availability zones (multi AZ setup) to ensure that apps hosted in EC2 would be tolerant to a fault of any availability zones.
The solution used Amazon Relational Database Service (Amazon RDS) to make it easy to set up, operate, and scale a relational database in the cloud. A failover feature in Amazon RDS automatically provisions a primary database in one AWS availability zone and maintains a synchronous standby replica in a different one. The failed instance becomes standby after recovery.
Amazon RDS also backs up DB instances — isolated database environments — daily and transaction logs at five-minute intervals. Both are stored for a specified retention period. This allows for restoring a DB instance to any second during the retention period, up to the last five minutes.
The company’s apps were sorted by their logical purposes and split onto multiple load-balanced, auto-scaled groups of EC2 instances. All groups of instances simultaneously serve the company’s domains and those of its customers.
A set of application load balancers work in parallel and route traffic based on rules that define how requests are sent to several target groups. Route 53, a highly available and scalable cloud Domain Name System (DNS) web service, translates names into the numeric IP addresses that computers use to connect to each other. External hosts use a public-hosted zone to reach web tier servers. The private-hosted zone is used by infrastructure components for internal communication.
For infrastructure deployment, the solution uses AWS CloudFormation, which provides a common language for modeling and provisioning AWS resources in a cloud environment.
ClearScale also worked with the company’s engineers to update source code so that the app-building process could be fully automated. Continuous integration/ continuous delivery (CI/CD) processes were organized using Jenkins.
The End Results
The client now has segregated AWS environments for application development, staging and production. These environments are deployed and managed using an infrastructure as code (IaC) approach. The apps now work independently, further enhancing the reliability and availability of our client’s services. The processes for building, testing and deploying apps are faster and more reliable. App release cycles are fully automated, speeding up time to market and service to end users.
Threats of downtime are significantly reduced. The domain situation has also been solved. The environments are consistent and ensure high availability and security in line with AWS best practices.
What Can ClearScale Do for You?
This is just one example of how ClearScale works with clients to solve complex problems and implement cost-effective, efficient solutions that generate positive results. It helps that ClearScale is an AWS Premier Consulting Partner, with competencies in areas such as migration, DevOps and more. We’ve worked with more than 850 companies to help them use AWS and other services to overcome business challenges and meet their IT needs.
To learn what we can do for your organization, contact us.
Get in touch today to speak with a cloud expert and discuss how we can help: