Tag Archives: solutions architect

An AWS Multi-Tier Application Example

One of the joys of AWS is the ease with which we can design and implement scalable, decoupled, multi-tier applications. In this post, I want to provide an example of the services you might use (and their purpose) in the hosting of a Web Application.

Users can find your Web Application thanks to Route 53 of AWS. This is the highly available Domain Name System (DNS) network service. This service handles the forwarding of client requests to the correct components in your AWS application infrastructure.

To optimize client access and reduce latency, you can use the CloudFront service which provides a global network of edge locations that can offer caching and improved performance of content delivery.

S3 can store the Web resources (such as static web pages and graphics) required by the Web Servers that make your application accessible from the Internet.

Elastic Load Balancing can distribute HTTP requests from clients to the various Web Servers that make up the Internet facing presence. Elastic Load Balancers can also distribute traffic to the various Application Servers you are using as well.

EC2 instance are perfect for your Web Servers and Application Servers. You can choose the ideal software platforms and hardware instances to meet your needs. For example, your Web Servers can be simple Amazon Linux instances running Apache, while your Application Servers can be more complex Windows Server systems (if required).

Auto Scaling can be used with the Web and Application Servers to dynamically scale the Web Application presence as needed. EC2 instances can be created and destroyed dynamically as traffic increases and decreases beyond set thresholds.

For data storage required by the Web Application, you can rely on the Amazon Relational Database Service. RDS permits the selection of a relational database technology from a large number of popular options including Oracle and SQL Server. Amazon even has their own option of Aurora.

AWS Service Catalog

service catalog

A service of AWS that fails to get a ton of attention is Service Catalog. This service seeks to enable organizations to create and manage catalogs of IT services that are approved for use on AWS. It permits organizations to centrally manage their commonly deployed IT services and can help maintain appropriate governance and compliance.

The idea is your end users (IT staff) can quickly deploy the IT services they need that you have approved and that they will do so following the constraints that you have set.

Benefits include:

  • Standardization – you can place restrictions on the types and configurations of AWS resources launched
  • Self-service discovery and launch – permit users to browse listings of services and applications available to them, and to launch them as provisioned products
  • Fine-grained access control – IAM users and groups form the basis of permissions for the resources listed in the catalogs
  • Extensibility and version control – products can be added to various portfolios from a single copy, and versioning updates all copies

AWS Service Catalog terminology:

  • Products – an IT service that you want to make available for deployment on AWS. It can consist of AWS resources such as EC2 instances, storage volumes, databases, monitoring configurations, and networking components. You create products through the import of CloudFormation templates.
  • Portfolios – a collection of products along with configuration information.
  • Versioning – Service Catalog allows you to manage multiple versions of products in your catalog.
  • Constraints – Template and Launch constraints allow you to carefully control deployments.
  • Stack – as mentioned above, the building block for the Products are CloudFormation stacks.