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.
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。