By Preeti Singh
The first question that you should ask concerns the value of moving a classic web application hosting solution into the AWS Cloud. If you decide that the cloud is right for you, you’ll need a suitable architecture. This section helps you evaluate an AWS Cloud solution. It compares deploying your web application in the cloud to an on-premises deployment, presents an AWS Cloud architecture for hosting your application, and discusses the key components of this solution.
How AWS Can Solve Common Web Application Hosting Issues
If you’re responsible for running a web application, you face a variety of infrastructure and architectural issues for which AWS can provide seamless and cost-effective solutions. The following are just some of the benefits of using AWS over a traditional hosting model.
A Cost-Effective Alternative to Oversized Fleets Needed to Handle Peaks
In the traditional hosting model, you have to provision servers to handle peak capacity. Unused cycles are wasted outside of peak periods. Web applications hosted by AWS can leverage on-demand provisioning of additional servers, so you can constantly adjust capacity and costs to actual traffic patterns.
A Scalable Solution to Handling Unexpected Traffic Peaks
An even more dire consequence of the slow provisioning associated with a traditional hosting model is the inability to respond in time to unexpected traffic spikes. There are many stories about web applications going down because of an unexpected spike in traffic after the site is mentioned in the popular media. The same on-demand capability that helps web applications scale to match regular traffic spikes can also handle an unexpected load. New hosts can be launched and ready in a matter of minutes, and they can be taken offline just as quickly when traffic returns to normal.
An On-Demand Solution for Test, Load, Beta, and Preproduction Environments
The hardware costs of building out a traditional hosting environment for a production web application don’t stop with the production fleet. Quite often, you need to create preproduction, beta, and testing fleets to ensure the quality of the web application at each stage of the development lifecycle. While you can make various optimizations to ensure the highest possible use of this testing hardware, these parallel fleets are not always used optimally: a lot of expensive hardware sits unused for long periods of time.
An AWS Cloud Architecture for Web Hosting
- Load Balancing with Elastic Load Balancing (ELB)/Application Load Balancer (ALB) – Allows you to spread load across multiple Availability Zones and Amazon EC2 Auto Scaling groups for redundancy and decoupling of services.
- Firewalls with Security Groups –Moves security to the instance to provide a stateful, host-level firewall for both web and application servers.
- Caching with Amazon Elastic Cache – Provides caching services with Redis or Memcached to remove load from the app and database, and lower latency for frequent requests.
- Managed Database with Amazon RDS – Creates a highly available, Multi-AZ database architecture with six possible DB engines.
- DNS Services with Amazon Route 53 – Provides DNS services to simplify domain management.
- Edge Caching with Amazon CloudFront – Edge caches high-volume content to decrease the latency to customers.
- Edge Security for Amazon CloudFront with AWS WAF – Filters malicious traffic, including XSS and SQL injection via customer-defined rules.
- DDoS Protection with AWS Shield – Safeguards your infrastructure against the most common network and transport layer DDoS attacks automatically.
- Static Storage and Backups with Amazon S3 – Enables simple HTTP-based object storage for backups and static assets like images and video.