AWS Classroom Series – 13/May/2021

Scaling in AWS

  • Vertical Scaling:
    • Increasing resources to the EC2 instance i.e. changing the instance type
    • To achieve this we need to stop the ec2 instance and then resize Preview Preview Preview
  • Horizontal Scaling:
    • Increasing the EC2 instance which run the same application so that the load can be distributed.

Lab Setup

  • To understand Horizontal Scaling and Elasticity lets create two AMIs
    • LAMP Stack on ubuntu:
      • Create a t2 micro ubuntu 18.04 ec2 instance
      sudo apt update
      sudo apt install apache2 -y 
      sudo apt install php libapache2-mod-php php-mysql php-cli -y
      # Create a file at /var/www/html/info.php with below content
      <?php
      phpinfo();
      ?>
      sudo apt install stress -y
      
      • Create AMI for this instance
    • Spring pet clinic on ubuntu
      • Steps for manual installation
      1  sudo apt update
      2  sudo apt install openjdk-11-jdk -y
      3  sudo mkdir /usr/share/springpetclinic
      4  wget https://referenceapplicationskhaja.s3-us-west-2.amazonaws.com/spring-petclinic-2.4.2.jar
      5  sudo cp spring-petclinic-2.4.2.jar /usr/share/springpetclinic/
      6  sudo adduser springbootuser
      7  sudo chown springbootuser:springbootuser /usr/share/springpetclinic/spring-petclinic-2.4.2.jar
      8  sudo chmod 500 /usr/share/springpetclinic/spring-petclinic-2.4.2.jar
      9  sudo vi /etc/systemd/system/springpetclinic.service
      10  sudo systemctl enable springpetclinic.service
      11  sudo systemctl start springpetclinic.service
      12  sudo systemctl status springpetclinic.service
      13 sudo apt install stress -y
      
      • Create an AMI from this ec2 instance
  • When we run the AMI in an ec2 instance, users will access the application by giving public IP address Preview
  • In Reality we might be using domain names. (skip domain names)
  • The application is run on webserver
  • In AWS we have elastic load balancer which can distribute load across multiple ec2 instances and we have auto scaling group which can create multiple ec2 instances
    • depending on the static count
    • Scale out and scale in (increase or decrease the number of ec2 instances) based on ec2 metrics like CPU, network I/O
  • To Create an autoscaling group, we need to have an AMI with application preinstalled or we can install after launch
  • Lets explore autoscaling groups Preview
  • Auto Scaling groups requires one of the below
    • Launch Template
    • Launch Configuration
  • In Launch Template/Launch Configuration we specify the details about
    • AMI to be used
    • Network in which ec2 instance has to be created
    • key pairs
    • security groups
    • instance types
  • Then in Auto scaling group we specify
    • Conditions when the number of ec2 instances should increase or decrease
  • To Effectively work with autoscaling groups we will associate
    • Elastic Load balancer
    • Application Load Balancer
    • Network Load Balancer
  • For our lab purposes, to generate artificial load on the ec2 instances we will be stress tool.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Social Network Widget by Acurax Small Business Website Designers

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube