AWS Website Architecture

Click on the elements below to interact with them
 Compute AWS Elastic Beanstalkwww.example.comRoute 53 DNS ServiceRemove link.Link options.NetworkingContentDelivery       Compute Compute Compute Compute Compute Compute Compute Compute Storage NetworkingContentDelivery Database Web Load BalancerApp Load BalancerEC2 Web TierEC2 Web TierEC2 App TierEC2 App TierRDS AuroraDatabase Remove link.Link options.Remove vertex.Remove link.Link options.Remove vertex.Remove link.Link options.Remove vertex.Remove link.Link options.Remove vertex.Remove link.Link options.Remove vertex.Remove link.Link options.Remove vertex.Remove link.Link options.Remove link.Link options.NetworkingContentDelivery media.example.comRemove link.Link options.Remove link.Link options.S3 StaticFile StorageCloudFrontCDNAWS RegionZone AZone BRemove vertex.Remove link.Link options.

Diagram Overview

This diagram shows a reference AWS Website Architecture. You can click on each of the components in the diagram to learn more about it's role in the architecture.

Route 53

Route 53 is a highly available and scalable hosted DNS web service. It is a cost-effective way to route end users to your applications by translating URLs to IPs. It is tightly integrated into other AWS products, giving developers an easy way to configure advanced DNS architectures. Here are some of its powerful features:

  • Traffic flow based on geoproximitry, latency, health, GEO DNS and Weighted Round Robin
  • Create Private DNS in your private network
  • DNS Failover by routing to alternate location to avoid outages
  • Domain Registration
  • Health Check monitoring to check the availability of your website
  • Cloudfront, S3 and ELB integration zone apex integration to point your root domain to an alias record of the mentioned services.

Role of Service in Architecture
In this design Route 53 connects user requests (from web browser or mobile app), to infrastructure running in AWS. In this case the first point of connection is the AWS Elastic Load Balancer (ELB) that distributes traffic to the web servers. Configuring Route 53 is as easy as creating an alias record that that translates www.example.com to the DNS CNAME name of the ELB.

Resources

  • Service Product link: https://aws.amazon.com/route53/
  • Documentation Link:https://aws.amazon.com/documentation/route53/
  • Pricing Link: https://aws.amazon.com/route53/pricing/

Web Tier Load Balancer

The Application Load Balancer is one of three types of load balancers provided by AWS. The load balancer provides traffic distribution to groups of EC2 instances. The application load balancer is unique in that it is the only load balancer from AWS that provides features at the seventh OSI layer, the application layer.

In addition to distributing requests evenly, the load balancer works closely with the Autoscaling service to add and remove EC2 instances based on load. When load increases, and a new EC2 instance is started, the load balancer can start distributing traffic to it. When load decreases, it knows how to intelligently remove an EC2 instance so that no requests are dropped.

Role of Service in Architecture
The web application load balancer in this design is an external load balancer which has public access to the internet. It receives user requests from the Route 53 service and distributes those requests to the EC2 instances in the web application tier.

Resources

  • Service Product: https://aws.amazon.com/elasticloadbalancing/details/
  • FAQs link: https://aws.amazon.com/elasticloadbalancing/faqs/
  • Pricing link: https://aws.amazon.com/elasticloadbalancing/pricing/

EC2 Web Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 web servers in this design are working as frontend web servers. They run the web server software, which could be something like nginx or Microsoft IIS. If needed, these servers will forward requests to the application servers for additional processing.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 Web Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 web servers in this design are working as frontend web servers. They run the web server software, which could be something like nginx or Microsoft IIS. If needed, these servers will forward requests to the application servers for additional processing.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 App Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 app servers in this design host the application software, such as Ruby on Rails, Django, or any web application you can think of. They receive requests from the web servers, and perform additional processing, such as querying the database server.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 App Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 app servers in this design host the application software, such as Ruby on Rails, Django, or any web application you can think of. They receive requests from the web servers, and perform additional processing, such as querying the database server.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 Web Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 web servers in this design are working as frontend web servers. They run the web server software, which could be something like nginx or Microsoft IIS. If needed, these servers will forward requests to the application servers for additional processing.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 Web Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 web servers in this design are working as frontend web servers. They run the web server software, which could be something like nginx or Microsoft IIS. If needed, these servers will forward requests to the application servers for additional processing.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 App Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 app servers in this design host the application software, such as Ruby on Rails, Django, or any web application you can think of. They receive requests from the web servers, and perform additional processing, such as querying the database server.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

EC2 App Servers

The Elastic Compute Cloud (EC2) service provides virtual servers on-demand. EC2 is a powerful service, giving users a range of operating systems to choose from, and giving users full private access to it. It also provides dozens of different hardware configurations, allowing you to select the best match for your application.

Role of Service in Architecture
The EC2 app servers in this design host the application software, such as Ruby on Rails, Django, or any web application you can think of. They receive requests from the web servers, and perform additional processing, such as querying the database server.

Resources

  • Service Product link: https://aws.amazon.com/ec2/details/
  • EC2 instance Types link: https://aws.amazon.com/ec2/instance-types/
  • Pricing link: https://aws.amazon.com/ec2/pricing/

S3 Media Storage

The Simple Storage Service (S3) is a cost-effective object (i.e. file) storage service. You can upload any type of file to this service, and access that file via a URL. This makes it a great place to store static files for websites and applications.

S3 is a highly reliable and available service. It can save a copy of your data in multiple datacenters within an AWS Region (depending on what storage class you opt for). If one copy of your data is lost or becomes corrupt, S3 will automatically make additional copies from the known good copies. S3 is feature rich, having support for encryption, versioning, and a variety of storage classes that determine how many copies of your data are made.

Role of Service in Architecture
In this design S3 is used to store all static content like images, JavaScript, and CSS files. It is connected to the CloudFront service so that these static files are distributed worldwide, giving users of www.example.com a faster browsing experience.

Resources

  • Service Product Link: https://aws.amazon.com/s3/details/
  • FAQs Link: https://aws.amazon.com/s3/faqs/
  • Pricing Link: https://aws.amazon.com/s3/pricing/

App Tier Load Balancer

The Application Load Balancer is one of three types of load balancers provided by AWS. The load balancer provides traffic distribution to groups of EC2 instances. The application load balancer is unique in that it is the only load balancer from AWS that provides features at the seventh OSI layer, the application layer.

In addition to distributing requests evenly, the load balancer works closely with the Autoscaling service to add and remove EC2 instances based on load. When load increases, and a new EC2 instance is started, the load balancer can start distributing traffic to it. When load decreases, it knows how to intelligently remove an EC2 instance so that no requests are dropped.

Role of Service in Architecture
This load balancer is responsible for distributing requests from the web servers to the application servers. It is a private load balancer, meaning that no external internet traffic can reach it. This is an excellent security feature to ensure that no external traffic can reach the app servers; only traffic that comes through the web servers is allowed.

Resources

  • Service Product: https://aws.amazon.com/elasticloadbalancing/details/
  • FAQs link: https://aws.amazon.com/elasticloadbalancing/faqs/
  • Pricing link: https://aws.amazon.com/elasticloadbalancing/pricing/

RDS Aurora Database

The Relational Database Service (RDS) is a managed database service. It provides features such as automatically provisioning, scaling, and patching. Like EC2, there are many different hardware configurations that specify varying amounts of vCPU and RAM. RDS supports six different types of database software, including AWS Aurora, MySQL, PostgreSQL, SQL Server, Oracle, & MariaDB.

AWS Aurora is a special kind of database designed by AWS. It is designed to expose MySQL and PostgreSQL compliant APIs to applications. This is great because it offers compatibility with many applications. However, AWS has customized how Aurora works underneath, so that it is more performant and reliable than just running the MySQL or PostgreSQL.

Role of Service in Architecture In this design, AWS Aurora is the database server. It provides all expected database server features, such as inserts, queries, etc.

Resources

  • Service Product link: https://aws.amazon.com/rds/aurora/details/
  • Aurora FAQs link: https://aws.amazon.com/rds/aurora/faqs/
  • Pricing link: https://aws.amazon.com/rds/aurora/pricing/

CloudFront CDN

CloudFront is a content delivery network (CDN). It is a web service that speeds up the distribution of your static and dynamic content, like images and JavaScript files. It does this by storing a copy of your files closer to the users of your application on “edge locations”. Edge locations are a collection of worldwide data centers managed by AWS that cache your content. User requests are automatically routed to edge location closest to them.

Role of Service in Architecture In this design, CloudFront is used to serve static web content to users faster. The static files themselves are hosted on AWS S3, which is the “origin store” for CloudFront. Configuring CloudFront to use S3 as its origin store is easy, as AWS has integrated the two services. You simply create an alias using Route 53 to point static.example.com to the DNS name of the CloudFront distribution, which is configured to have the S3 bucket as its origin.

Resources

  • Service product link: https://aws.amazon.com/cloudfront/
  • FAQs link: https://aws.amazon.com/cloudfront/details/
  • Pricing link: https://aws.amazon.com/cloudfront/pricing/
Open