DEV Community

Muhammad Awais Zahid
Muhammad Awais Zahid

Posted on • Updated on

AWS Multitier Architecture

FINAL PRODUCT

Summary of the tasks:

  • Step 0: Inspect the architecture 00:02:23
  • Step 1: Create a Cloud9 IDE 00:05:49
  • Step 2: Get the Project Assets 00:07:51
  • Step 3: Install a LAMP web server on CLoud9 IDE 00:08:49
  • Step 4: Create a MySQL RDS database instance 00:13:15
  • Step 5: Create an Application Load Balancer 00:20:53
  • Step 6: Importing the data into the RDS database 00:25:18
  • Step 7: Configure the system parameters in Parameter Store Systems Manager 00:38:20

Step 0: Inspect the architecture

  • Inspect the example VPC.
  • Inspect the subnets.
  • Inspect the Security Groups.
  • Inspect the AMI.

Step 1: Create a Cloud9 IDE

Step 2: Get the Project Assets

  1. Clone the repository:
   git clone https://github.com/baselm/capstoneproject.git
   or 
   wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/capstone-project/Example.zip
Enter fullscreen mode Exit fullscreen mode
  1. Extract the files to the Apache www folder:
   chown ec2-user Example.zip
   unzip Example.zip -d /var/www/html/
Enter fullscreen mode Exit fullscreen mode

Step 3: Install a LAMP web server on Amazon Linux 2

LAMP (Linux, Apache HTTP server, MySQL database, and PHP) stack
Original tutorial for LAMP Stack Tutorial: Install a LAMP web server on Amazon Linux 2

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
Enter fullscreen mode Exit fullscreen mode
  • Open port 80 from the security group of the Cloud9 EC2 instance
  • Get the cloud9 EC2 public instance IP address and test that you can access the website

Step 4: Create a MySQL RDS database instance

with the following specifications.

  • Create a db subnet group
  • 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
  • Enhanced monitoring: Disabled

Step 5: Create an Application Load Balancer

  • Create target group
  • Create an auto scaling group
  • Lunch Web Instances in the private subnet

Step 6: Importing the data into the RDS database

_Importing the data into the RDS database instance from CLoud9 or by accessing the web instance via bastion host

  1. get the SQLDump file:

  2. connect to the RDS database, run this command:

mysql -u admin -p --host <rds-endpoint>
Enter fullscreen mode Exit fullscreen mode
  1. Test that you can access the RDS DB
 use exampledb; 
show tables; 

Enter fullscreen mode Exit fullscreen mode
  1. Import the data into the RDS database.
mysql -u admin -p exampledb --host <rds-endpoint>  < Countrydatadump.sql       
Enter fullscreen mode Exit fullscreen mode

Test the ALB

  • Test data was imported
 use exampledb; 
show tables; 
select * from countrydata_final; 
Enter fullscreen mode Exit fullscreen mode

Step 7: Configure the system parameters in Parameter Store Systems Manager

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

  1. /example/endpoint

  2. /example/username

  3. /example/password

  4. /example/database exampledb

Top comments (0)