Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP5349: Cloud Computing

Sem.  1/2024

AWS Project: Creating secure, scalable and highly available Architecture

Individual Work:  20%

24.04.2024

1 Tasks

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 services 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.

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.

. 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.

The report does not have a page limit.

4 Generative AI Usage Guidelines

. You are permitted to use AI tools to help you understand the usage of various AWS resources or to suggest draft CloudFormation templates.

. You are permitted to use AI tools to directly suggest readability improvements to your text in terms of grammar and written expression of the report.

The use of any AI tools must be appropriately acknowledged. You can do this by including an acknowledgment section at the end of your report where you need to describe the AI tool(s) that you used, what you used it to do, what prompt(s) you provided, and how AI output was used or adapted by you.