The multi-tier architecture below uses the Amazon Web Services (AWS) cloud platform to provide a durable design for a web application that can scale with demand.
Being based around the Elastic Beanstalk service, this architecture supports most mainstream web application languages, including: Java/J2EE, C#/.Net, Ruby/Rails, Node.js, PHP, Python and Go.
With the addition of CloudFront and S3, static web resources can be deployed to S3 and served via the CloudFront Content Delivery Network (CDN). This improves application responsiveness and reduces server load.
The web and application tiers are deployed via Elastic Beanstalk, which orchestrates the required services and scaling groups.
Global content delivery network (CDN). Optimises website content delivery based on the user's geographic location.
Simple Storage Service (S3)
Massively scalable and durable object store. Used as a distributed filesystem, to store and retrieve web resources.
Cloud-based Domain Name System (DNS) service. Used to match a website domain name to the application and available content.
Code Build (optional)
Continuous integration service that compiles source code, runs tests and packages deployable resources.
Code Deploy (optional)
Coordinates and controls the deployment of application resources, such as packages and configurations.
Orchestrates AWS application services to manage provisioning, scaling, monitoring and balancing of application resources
Distributed in-memory object cache that provides scalability and acceleration to an application's data access layer.
Relational database service, supporting clusters configured with multiple read-replicas. AWS Aurora is worth consideration if supported in the chosen region.
Provisions and manages processing jobs that can be scheduled. Data Pipeline may provide an alternative option if Batch is unavailable in the chosen AWS region.
By deploying web, application and database resources across AWS availability zones, this architecture enhances durability and takes advantage of AWS' Disaster Recovery (DR) features.
As the application components are deployed to services that are within elastic scaling groups, the separate application tiers can automatically scale as required to meet growing demand. The scaling groups will also slowly reduce in size if that demand resides, saving on costs.
If you're building a new web application or have an existing system that requires scalability enhancements, we may be able to provide guidance and/or assist with implementation.
Please Get in Touch to discuss.