DEV Community

DEV Community

Efat

Posted on Apr 4, 2023

The AWS Academy Cloud Architecting - Capstone Project

The AWS Academy Cloud Architecting Capstone Project was all about designing and implementing a cloud-based solution using Amazon Web Services to solve a particular business problem. This included developing an architectural plan, deploying and configuring the required AWS services, and implementing the solution using industry best practices.

Additionally, I made sure that this project related to cost optimisation, by selecting and making use of the most efficient computing resources when initialising processes, (as a budgeting precaution, of course), which could always be scaled up in case of business growth.

I followed a simple procedure in order to discover the issues and carry out the required tasks.

Inspecting the architecture

In this initial phase, I just wanted to have a look at the environment - what AWS had already provided us, as well as any guesses on what was missing from the scenario. These are some of the things I decided to do before starting:

  • Inspect the VPC.
  • Inspect the Subnets.
  • Inspect the Security Groups.
  • Inspect the Instances.

The Cloud 9 IDE

Shortly after creating an AWS Cloud9 environment, I used the following command to get the ".zip" file which contains the PHP and image files for the website of the organisation which was then extracted.

wget <link of the zip file>

wget

The LAMP web server stack on Linux

The following commands were used to install the LAMP stack:

sudo yum -y update sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

sudo yum install -y httpd mariadb-server sudo systemctl start httpd

sudo systemctl enable httpd sudo systemctl is-enabled httpd

This stack is essential for us to successfully deliver the website in a simple yet, stable way!

LAMP stands for Linux, Apache, MySQL, and PHP. Together, they provide a proven set of software for delivering high-performance web applications. Each component contributes essential capabilities to the stack.

After installing the stack, I simply:

  • Opened port 80 from the security group of the Cloud9 EC2 instance
  • Got the cloud9 EC2 public instance IP address and tested that I could access the website

Port80enable

Creating a MySQL RDS database instance

First of all, I crated an AWS RDS subnet group in the private subnets in zones us-east-1a and us-east-1b.

Subnet Group

Then I proceeded to create an AWS RDS database with the following specifications:

-Databasetype: MySQL -Template: Dev/Test -DBinstanceidentifier: Example -DB instance size: db.t3.micro -Storage type: General Purpose (SSD) -Allocatedstorage: 20GiB -Storageautoscaling: Enabled -Standbyinstance: Enabled -Virtualprivatecloud: ExampleVPC -Databaseauthenticationmethod: Passwordauthentication -Initialdatabasename: exampledb -Enhancedmonitoring: Disabled

Creating an Application Load Balancer

An Application Load Balancer is a requirement, so I created one using the following criteria:

-Create target group -Launch Web Instances in the private subnet

Importing the data into the RDS database

Used the wget <SQL dump file link> command on Cloud9 to get the file with the sample data, connected and imported the data into the RDS database using: mysql -u admin -p --host <rds-endpoint> mysql -u admin -p exampledb --host <rds-endpoint> < Countrydatadump.sql

Parameters Store Configuration

Added the following parameters to the Parameter Store and set the correct values:

/example/endpoint

/example/username

/example/password

/example/database exampledb

Creating a Launch Template and an Autoscaling Group

The final steps of this project consisted of:

  • Modifying the IAM role of the instance created by Cloud9 to enable query on the website
  • Created an Image of the instance (AMI)
  • Modified Launch Template to use the recently created AMI
  • Using the Launch Template with the correct AMI ID for the Autoscaling Group creation

This allowed me to connect to the website by entering the Load Balancer's endpoint, it queried the data from the RDS database successfully too (Check out my design for this scenario which sums up the architecture).

AWS Architecture

In conclusion, the AWS Academy Cloud Architecting 2.x - Capstone Project allowed me to develop the understanding of some concepts about creating a solution in a potentially real-life scenario. This project improved my overall confidence and knowledge about cloud environments, since in order to create a fully-functioning architecture there must be crucial factors to consider.

Lastly, I would recommend this project to everyone that is trying to commence their journey on the Cloud, because not only does this project challenge you to come up with solutions whenever there is an issue or whenever you are stuck, but it gives you some substantial hands-on experience and a taste of architecting a realistic case.

Top comments (0)

pic

Templates let you quickly answer FAQs or store snippets for re-use.

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink .

Hide child comments as well

For further actions, you may consider blocking this person and/or reporting abuse

diginatives profile image

The Significance of Native Cloud App Development in 2024

Diginatives - Sep 3

vdelitz profile image

Google Solves Passkeys' Cross-Platform Issue: Syncing Across Windows, macOS & Android

vdelitz - Sep 2

vidanov profile image

OpenSearch vs. Elasticsearch: Why OpenSearch is the Better Choice for AWS Users

Alexey Vidanov - Sep 25

chinmay13 profile image

Placing EC2 Webserver Instances in a Private Subnet with Internet Access via NAT Gateway using Terraform

Chinmay Tonape - Sep 2

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

CPSC 4440 Final Project

This project was assigned to me as a final project for the cloud architecture course I took at Clemson University. This project was split into five parts using different AWS services: IAM, EC2 with Load Balancing, VPC, RDS, and EC2 Auto-Scaling. Click here to see the project instructions. A diagram of the final product is shown below:

Diagram of final architecture for CPSC 4440's final project

For the IAM part of the project, I had to create some IAM users and groups. I assigned the groups policies and then put each user into the group they belonged in following the principle of least privilege.

For the VPC part of the project, I had to allocate an elastic IP address, create a VPC that looked identical to the diagram, create an internet gateway, create 4 subnets, create a public route table, and to create a private route table associated with the private subnets.

For the database part of the project, I was instructed to make a new RDS instance running on MYSQL. The first step was to create a DB subnet group called CU-Subnets that included the two private subnets. Then, I created the RDS database. It had a burstable db.t2.micro instance and a general purpose storage type. The database had a Multi-AZ deployment using the VPC already set up and the CU-Subnets subnet group.

EC2 Auto-Scaling

For 10 points extra credit on the project, we had the option to configure EC2 Auto Scaling behind our load balancer. I decided to do this option. Auto Scaling enables your architecture to scale up by add more instances as load increases, and then scale down by removing instances as load decreases. The launch configuration used the AMI I had created earlier. It used a target tracking policy that scaled up when CPU utilization was greater than 60% for 3 minutes.

AWS Academy: Cloud Architecting Capstone Project

The capstone project for the AWS Academy Cloud Architecting course was the last assignment you had to complete in order to obtain the badge for completing the course. It took a combination of the skills learned throughout the previous challenge labs in order to obtain a perfect score. Unfortunately, I do not have a diagram of what the final architecture looked like, but I will go into detail about what the project instructions were. For starters, here six main steps that needed to be completed: 1. Create an EC2 auto-scaling group from an existing launch configuration in the environment 2. Attach an application load balancer to the EC2 auto-scaling group 3. Create an RDS instance that the PHP application can query 4. Create a MYSQL database from a SQL dump file 5. Update application parameters in the AWS Systems Manager Parameter Store 6. Secure the application to prevent public access to backend systems

Setting up auto scaling

Setting up the auto-scaling group was fairly straight forward since the launch configuration was already defined in the environment. It was just a matter of picking the right AWS region and VPC and subnets to deploy the auto-scaling group in. The instances would be placed in 2 private subnets, each in a different availability zone. I set the minimum number of instances to 2, the desired amount to 2, and max amount to 4. It would scale up to when the CPU utilization was above 60% for 3 minutes.

Attaching an Application Load Balancer

An application load balancer spreads HTTP and HTTPS traffic across registered instances equally. After the EC2 auto-scaling group instances had passed their health checks, I created an application load balancer and then selected my auto-scaling group. Under the details tab, I selected load balancing->edit. I then clicked the check mark for application load balancer and selected the right target group. There was 1 already made in the lab environment. The application load balancer will take traffic from the public internet and then distribute the load across the EC2 instances in the private subnets. This ensures greater security.

Creating an RDS instance

Creating an RDS instance is pretty straight forward. First, I created 2 database subnet groups (the private subnet for each availability zone). Then, using the RDS wizard I made a RDS instance running MYSQL. I used a multi availability zone deployment and made sure that only the web application servers could communicate with the database instance.

Creating a MySQL database from a MYSQL dump file and Updating the Parameter Store

The pre-configured environment for the capstone project had a bastion host setup to access the EC2 instances in the private subnets. I gained access to one of the EC2 instances through the bastion host and then used it to run a mysql dump. The EC2 instance already had the mysql dump file in its home directory. The command was similar to this: mysql -h RDS_Endpoint -u username -p databasename < databasename.sql. This command setup the RDS instance with all the data the previous database contained. All that I had to to do now was make the EC2 instances read and write to the RDS instance instead of the old database. This was solved by changing the endpoint and password values in the parameter store. I then deleted the old database since it was no longer needed.

Securing the application

The last step was ensuring that the VPCs, security groups, and route tables were setup correctly. All internet traffic was to be go through the elastic load balancer, which would then distribute the traffic evenly between the EC2 instances. HTTP and HTTPS traffic from any source would be allowed. The bastion host would only accept SSH traffic from my IP address and have outbound rules to the EC2 instances. The EC2 instances would accept inbound traffic from the elastic load balancer and from the RDS instance. The RDS instance would only accept traffic from the EC2 instances and would only send information to the EC2 instances. The architecture was secure.

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications You must be signed in to change notification settings

AWS Academy Cloud Architecting 2 - Capstone Project

colla00/AWS-Capstone

Folders and files.

NameName
7 Commits

Repository files navigation

Aws-capstone-project.

This project provided the opportunity to demonstrate the solution design skills developed throughout this course.

By the end of this project, the following architectural design principles were applied:

  • Deploy a PHP application that runs on an Amazon Elastic Compute Cloud (Amazon EC2) instance
  • Create a database instance that the PHP application can query
  • Create a MySQL database from a structured query language (SQL) dump file
  • Update application parameters in an AWS Systems Manager Parameter Store
  • Secure the application to prevent public access to backend systems

Today's Weather - Chelyabinsk, RUS

  • Weather Details
  • Featured Videos
  • Air Quality
  • Top Stories More News
  • Today's National Outlook
  • Hurricane Tracker
  • Allergy Forecast
  • Cold & Flu
  • Snow & Ski Forecast
  • Fire Updates
  • Traffic Cameras
  • Weather Cameras
  • Outdoor Sports Guide

IMAGES

  1. Capstone Project

    aws academy capstone project solutions

  2. Capstone Project Academy Cloud Architecting [step--by-step] in (AWS)

    aws academy capstone project solutions

  3. AWS- Capstone Project

    aws academy capstone project solutions

  4. AWS Academy Cloud Architecting Module 15 Capstone Project 2. X

    aws academy capstone project solutions

  5. Aws capstone project Module 15 Cloud architect

    aws academy capstone project solutions

  6. GitHub

    aws academy capstone project solutions

VIDEO

  1. AWS Academy Cloud Architecting(Module 2 Knowledge Check)

  2. AWS Academy Cloud Foundations Module

  3. AWS Academy Cloud Architecting Module

  4. AWS Academy Cloud Foundations Module

  5. AWS Academy Cloud Architecting Module

  6. AWS Academy Cloud Architecting Module

COMMENTS

  1. AWS-INFO/AWS-Capstone-Project

    In this repo I am sharing the completion steps for the project given in Cloud Architecting course on AWS Academy. - AWS-INFO/AWS-Capstone-Project. In this repo I am sharing the completion steps for the project given in Cloud Architecting course on AWS Academy. ... Solutions By size. Enterprise Teams Startups By industry. Healthcare Financial ...

  2. AWS Solutions Architect Associate-Module 15

    Mod15 - AWS Solutions Architect - Capstone project - Simplified - Anand KProject overviewThis project provides you with an opportunity to demonstrate the sol...

  3. AWS_Capstone_Project

    After completing the Cloud Architecting course on the AWS Academy, the final module was to provide a solution for a capstone project which is a way to display the knowledge that I have learned during the course. This post will allow you to see how far I have come in my cloud journey. Resources

  4. The AWS Academy Cloud Architecting

    Figure 4. In conclusion, the AWS Academy Cloud Architecting 2.x - Capstone Project allowed me to develop the understanding of some concepts about creating a solution in a potentially real-life scenario. This project improved my overall confidence and knowledge about cloud environments, since in order to create a fully-functioning architecture ...

  5. Capstone Project Academy Cloud Architecting [step--by-step] in (AWS

    🎞 [New] AWS Solution Architect (SAA-C02) 2022https://www.udemy.com/course/new-aws-solution-architect-exam-saa-c02-2022/?referralCode=E25AEE5B8E3EDBD04282htt...

  6. AWS Academy Cloud Architecting Solutions Architect Associate Capstone

    This video walks you through solving the capstone project for AWS Solutions Architect Associate in the AWS Academy Cloud Architecting Course. I hope you enjo...

  7. PDF Architecting Solutions on AWS

    Architecting Solutions on AWS - Capstone Project I will provide you with a high-level architecture diagram and a written explanation for migrating both the three-tier application and the data analytics workload to AWS. Architecture Diagram: Written Explanation: 1. Frontend, Backend, and Database Migration:

  8. Projects

    AWS Academy: Cloud Architecting Capstone Project. The capstone project for the AWS Academy Cloud Architecting course was the last assignment you had to complete in order to obtain the badge for completing the course. It took a combination of the skills learned throughout the previous challenge labs in order to obtain a perfect score.

  9. AWS Solutions Architect Associate

    AWS Solutions Architect Associate - Module 15 - Capstone project - Simplified - Pratap SharmaThis project provides an opportunity to showcase the solution de...

  10. Chelyabinsk, Chelyabinskaya oblast', RU

    Plan you week with the help of our 10-day weather forecasts and weekend weather predictions for Chelyabinsk, Chelyabinskaya oblast', RU

  11. AWS Academy Cloud Architecting 2.x

    Link to material: https://teknixx.com/aws-academy-cloud-architecting-2-x-capstone-project/#AWS #awstraining #awstrainingvideos Steps to solve :1. Create data...

  12. Map of Chelyabinsk, Chelyabinsk Oblast

    Chelyabinsk is situated at 55.15° North latitude, 61.43° East longitude and 237 meters elevation above the sea level. Chelyabinsk is a very large town in Russia, having about 1,062,919 inhabitants. Chelyabinsk road map. Chelyabinsk interactive road map and Chelyabinsk street view. Chelyabinsk satellite view.

  13. AWS Academy Cloud Architecting 2

    AWS-Capstone-Project. This project provided the opportunity to demonstrate the solution design skills developed throughout this course. By the end of this project, the following architectural design principles were applied: Deploy a PHP application that runs on an Amazon Elastic Compute Cloud (Amazon EC2) instance.

  14. Ozyorsk, Chelyabinsk Oblast

    The town was founded on the shores of Lake Irtyash in 1947. [5] Until 1994, it was known as Chelyabinsk-65, and even earlier, as Chelyabinsk-40 (the digits are the last digits of the postal code, and the name is that of the nearest big city, which was a common practice of giving names to closed towns).. Codenamed City 40, Ozersk was the birthplace of the Soviet nuclear weapons program after ...

  15. Chelyabinsk, Chelyabinskaya oblast', RU

    Want to know what the weather is now? Check out our current live radar and weather forecasts for Chelyabinsk, Chelyabinskaya oblast', RU to help plan your day