Sse Detailed Version Cloud
Sse Detailed Version Cloud
Sse Detailed Version Cloud
Throughout various AWS Academy courses, you have completed hands-on labs.
You have used different AWS services and features to create compute instances,
install operating systems (OSs) and software, deploy code, and secure resources.
You practiced how to enable load balancing and automatic scaling, and how to
architect for high availability to build simple, lab-specific applications.
In this project, you’re challenged to use familiar AWS services to build a solution
without step-by-step guidance. Specific sections of the assignment are meant to
challenge you on skills that you have acquired throughout the learning process.
Example University is preparing for the new school year. The admissions
department has received complaints that their web application for student
records is slow or not available during the peak admissions period because of
the high number of inquiries.
You are a cloud engineer. Your manager has asked you to create a proof of
concept (POC) to host the web application in the AWS Cloud. Your manager
would like you to design and implement a new hosting architecture that will
improve the experience for users of the web application. You’re responsible for
building the infrastructure to host the student records web application in the
cloud.
Your challenge is to plan, design, build, and deploy the web application to the
AWS Cloud in a way that is consistent with best practices of the AWS Well-
Architected Framework. During the peak admissions period, the application
must support thousands of users, and be highly available, scalable, load
balanced, secure, and high performing.
The following image shows an example of the student records web application.
The site lists records of students who have applied for admission to the
university. Users can view, add, delete, and modify student records.
Solution requirements
Approach
Recommendation: Develop your project solution in phases. This will help you
ensure that basic functionality is working before the architecture becomes more
complex. After the application is working, you are encouraged to enhance the
solution with additional requirements.
In this phase, you will plan the design of your architecture. First, you will create
an architecture diagram.
Next, you will estimate the cost of the proposed solution, and present the
estimate to your educator. An important first step for any solution is to plan the
design and estimate the cost. As necessary, review the various components in
the architecture to adjust the estimated cost. Cost is an important factor when
building a solution because cost can help to determine the components and
architecture pattern to use.
Task 1: Creating an architectural diagram
References
• AWS Architecture Icons: This site provides tools to draw AWS architecture
diagrams.
• AWS Reference Architecture Diagrams: This site provides reference
architecture diagrams for a variety of use cases.
Develop a cost estimate that shows the cost to run the solution in the us-east-1
Region for 12 months. Use the AWS Pricing Calculator for this estimate.
References
In this phase, you will start to build the solution. The objective of this phase is to
have a functional web application that works on a single virtual machine in a
virtual network that you create. By the end of this phase, you will have a POC to
demonstrate hosting the application on the AWS Cloud. You can then build upon
your work in later phases.
Tip: Create networking resources such as a virtual private cloud (VPC) and
subnets.
Reference
To install the required web application and database on the virtual machine, use
the JavaScript code from the following link: SolutionCodePOC
Tips:
Test the deployment of the web application to ensure it is accessible from the
internet and functional. Perform a few tasks, such as viewing, adding, deleting,
or modifying records.
Tip: To access the web application, use the IPv4 address of the virtual machine.
In this phase, you will continue building. The objective is to separate the
database and the web server infrastructure so that they run independently. The
web application should run on a separate virtual machine, and the database
should run on the managed service infrastructure.
Reference
Create an Amazon Relational Database Service (Amazon RDS) database that runs
a MySQL engine. You can choose to create a provisioned instance or run it
serverlessly.
Notes:
Reference
• AWS Academy Cloud Foundations – Lab: Build Your DB Server and Interact
With Your DB Using an App
Notes:
Reference
Use AWS Secrets Manager to create a secret to store the database credentials,
and configure the web application to use Secrets Manager.
Use Script-1 from the following link to create a secret in Secrets Manager by
using the AWS CLI: AWS Cloud9 Scripts
Note: This .yml file also contains scripts that you will use in later tasks.
Reference
To install the required web application on the virtual machine, use the JavaScript
code from the following link: Solution Code for the App Server
For the AWS Identity and Access Management (IAM) profile on the EC2 instance,
attach the existing LabInstanceProfile profile. This profile attaches an IAM role
called LabRole to the instance so that it can fetch the secret securely.
Note: Optionally, you can continue to use the existing virtual machine for the
web application. However, you will need to reconfigure the application to
connect to Amazon RDS.
Reference
• AWS Academy Cloud Foundations – Lab: Build Your DB Server and Interact
With Your DB Using an App
Migrate the data from the original database, which is on an EC2 instance, to the
new Amazon RDS database.
Use Script-3 from the AWS Cloud9 Scripts file (cloud9-scripts.yml) to migrate the
original data into the Amazon RDS database. Recall that you used a script from
this file earlier to create the secret in Secrets Manager.
Reference
Access the application and perform a few tasks to test it. For example, view, add,
delete, and modify student records.
Phase 4: Implementing high availability and scalability
In this phase, you will complete the design and fulfill the remaining solution
requirements. The objective is to use the key components that you created in
earlier phases to build a scalable and highly available architecture.
Launch a load balancer. The endpoint will be used to access your web
application.
Reference
Create a new launch template, and use an Auto Scaling group to launch the EC2
instances that host the web application.
To accomplish this, you can create an AMI from the running instance, or create a
new AMI and install the necessary packages and application code. Then,
configure an Auto Scaling group to use the load balancer.
Tips:
Reference
Access the application and perform a few tasks to test it. For example, view, add,
delete, and modify student records.
Task 4: Load testing the application
Use Script-2 from the AWS Cloud9 Scripts file (cloud9-scripts.yml) to perform the
load test. Recall that you used scripts from this file in previous tasks.
Notes:
• Access the web application from the browser by using the load balancer
URL.
• Use AWS Cloud9 to run the load testing scripts against the load balancer.
Reference