In this project, you are asked to apply the architectural design principles that you learned in this unit to design and create a secure, scalable and highly available AWS architecture for a system with three main components:
• Web application: The web application is implemented using PHP. It has the same functionality as the Cafe application you have worked on in assignment 1. It listens
on port 80. It handles user interactions and displays information through a web interface.
• API endpoints: The API endpoints are implemented in Python. These endpoints provide programmatic access to product and order information for third-party appli cations (both internal and external). It listens on port 5000.
• Database: The web application and the API endpoints access the same database. The database can be hosted on MySQL or MariaDB engine.
Below are the requirements for the solution architure:
• Web application: The web application should be hosted securely on t2.micro or t3.micro EC2 instances. Administrative users should be able to SSH to the instance(s) through an bastion host. You must provide high availability to ensure users can con sistently access the Cafe application with minimal latency. As the usage pattern is unpredictable, the target tracking scaling method should be used. The suggested tar get is 50% CPU utilisation. At any time, there should be at least two web application instances in two different AZs.
• API endpoints: The API endpoints should be hosted securly on t2.micro or t3.micro EC2 instances. They should also allow SSH connection from the bastion host for con figuration purpose. You need to ensure high availability and maintain the cost of such 1services by maintaining a fixed number of healthy instances as API endpoints. You should select and configure an appropriate scaling method to maintain two healthy instances in two different AZs.
• Database: The database should be hosted securely on RDS instance. The API end points need read-only access to the database. The web application needs both read and write access to the database. It is essential to provide high availability and read scalability at the database level.
2 Resources and Requirements
Several pre-built components are provided. You’ll receive the code for the PHP web appli cation and the Python API endpoints, along with SQL code to populate your database. The database connection details are currently hardcoded in db_config.php and config.ini, respectively. You can modify certain parts of the code to fit your overall architectural design.
You have the flexibility of provisioning your architecture using:
• AWS CloudFormation (infrastructure as code)
• The AWS Management Console (manual configuration)
• A combination of both methods
The solution architecture can be hosted in your AWS account or the AWS learner lab environment. AWS academy sandbox is not a long-running environment. It is best to
be used as the testing environment for solution parts. You can also use the Sandbox environment to test the basic functionality of the web application and the API endpoints.
Code Help, Add WeChat: cstutorcs
3 Deliverable
3.1 Video Demonstration and Q&A session
Create a demonstration video to show the solution architecture built in AWS. The video should not be longer than 10 minutes. You can prepare a few slides to show the overall architecture, but the video should focus on showing the various resources as part of the solution architecture created in AWS. The camera should always be on, and your face should be visible throughout the video.
The demonstration should include the following aspects of your solution:
• A brief overview of the solution architecture.
2• An inspection of the key resources of your solution architecture. For each resource, you should show or demonstrate the most important configuration or features of that resource.
• Show that the web application and the API endpoints functions as expected. In particular, you should demonstrate that changes made in the web application, such
as new orders created, can be retrieved through the API endpoints.
A Q&A session will be organized in week 13 and/or week 14 with the marker. The
Q&A is up to 10 minutes long. You may be asked to do a live demo of your solution. Your solution architecture must be ready before the Q&A session.
3.2 Project Report
Your project report needs to contain the following sections:
• Solution Architecture. In this section, you are expected to provide an overview of
the solution architecture as well as the rationale behind your design choices. The description must include key resources and their interactions. You should also ex
plain why you selected these specific services and configurations, particulary how
they address the security, scalability and high availability requirements of the sys
tem. It must also contain an architecture diagram consistent with your solution. We recommend using draw.io for producing this diagram. You can use subsections to organize the content.
• Resource Provision. In this section, you must describe how different resources are provisioned to implement the solution architecture. The description should contain enough details to allow the markers to reproduce of your solution. If CloudFormation templates are used, the template should be included as an appendix. You also need
to describe briefly how stacks should be created.
• Demonstration Plan. You are asked to provide a concise demonstration outline in this section to facilitate a more effective review of your video. This outline should feature the various sections of your demo and the anticipated duration of each section.
Code Help