Advt-course3rd page


Folks! Greetings!

Are you interested to transform into new technology ?

An IT employee need to learn DevOps and also one cloud technology practice which is mandatory to understand the current DevOps work culture to get accommodated into a project.
Visit for my course exercises/sample videos/blogs on youtube channel and the blog site mentioned in VCard.
I get many new users regularly  to use these content from different countries.
That itself denotes they are highly competitive techie stuff.
During the course you will be given cloud infra machine(s) [they will be your property] into your laptop for future self practice for interviews, R&D, etc.
The critical  topics will have supporting blogs/videos!! along with the pdf material.
In a corporate style training cos you will be given access [upto certain period] only to their cloud setup.
These are the USPs can be compared with other courses!
Please come with joining confirmation/determination.
For classroom sessions it will be in Vijayanagar, Bangalore, India.
Both online and classroom are available for weekend [global flexible timings] and weekdays to facilitate employees.
Corporate companies are welcome to avail it to save cost of your suppliers!!
You can join from any country for online course.
For contacts please go through vCard.
Looking forward for your learning call!
Vcard-Shanthi Kumar V-v3

How to change your linux virtual  machines hostname and connect with ssh?

How to change your linux virtual  machines hostname and connect with ssh?

In this blog/video, I would like to demonstrate
the following by connecting hostnames with ssh:

Sometimes, we need to have hostnames differently.
When you use deployments using Ansible, etc. SCM tools
we can connect to the hostnames directly.
Now let us analyze and use the exercise as below:

By default we can find the hostname with;
$ ls -l /proc/sys/kernel/hostname
$ cat /proc/sys/kernel/hostname

We can also look into the details by using;

To change the new name use;
$hostnamectl set-hostname ‘ans-dbserver’
Step1: Checking the current  hostname.

Step2: Checking the host details in hostnamectl.

Step3: Changing the hostname.

Step4: Looking for new host details.

Step5: Reboot the machine and check its
connection with new hostname.

Step6: Now, let us try to connect to other machines
with ssh connectivity.

Step7: Making sure the renamed machine host is
being accessed by other machines also through ping.

Step8: Install openssh-server to connect through ssh in the newly named machine.

Step9: Connect through ssh from master machine to current hosts.

The attached video has the demonstration for all the above steps on Linux Virtual machines. Proved with a connectivity through ssh.

For SSH configuration please visit my blog, it has the demonstrated video also:





1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:

Vagrant-Logo                                                                                                          Oracle-VB-VM

How to create Virtual Machine[VM] on Windows 10 using Vagrant/Virtual Box.

In this exercise, we will see the following sections/topics/activities:

Let us consider the below two activities.

I. How to Install Vagrant and VirtualBox ?
II. How to Initialize our first virtual environment with Vagrant setup ?

I. How to Install Vagrant and VirtualBox ?:

Step1: Selecting the Virtual Box
Initially, we need to install the software required to manage a virtual machine
environment, which is a hypervisor as well as the Vagrant software itself.
In this activity, we will install VirtualBox to use it with Vagrant.

VirtualBox is an open source hypervisor that was initially made as the only
hypervisor and supported by Vagrant.
The VirtualBox is broadly supported by the Vagrant community.

Before we install the VirtualBox and Vagrant software, we need to obtain its latest versions.
VirtualBox can be downloaded from its project website at

Please note, in this exercise we are going to use for Linux installations [VMs] only. Also note, in this exercise I am using Windows10 as OS. Hence I need to select for my use the windows version under Windows hosts.

When we click on it, it downloads the file named as “VirtualBox-5.2.16-123759-Win”, as on date this is the file exists. [it might vary time to time]. You can install it on your desktop/Laptop now. 

A new installation of VirtualBox will display a welcome message in a window titled as
“Oracle VM VirtualBox Manager”.
When you have created more than one virtual machines, this dialog displays information about the machines created using VirtualBox.

Step2: Getting  Vagrant to operate the Virtual Box
Now, we need to get the Vagrant file to install.
Vagrant packages are operating system-specific and can be downloaded from the
Vagrant website at
Download the appropriate version  for your system [example: Windows10].
You can find, Windows 32-bit or 64-bit. In my current Laptop, I use 64 bit.
You can find the file as “vagrant_2.1.5_x86_64” to download the same.
Now install it after its download.
Vagrant setup wizard will drive you with it easy guidelines.
It installs by default into:C:\HashiCorp\Vagrant\
It takes few minutes to copy the files and install into your Desktop/Laptop.

Step3: Identify the Vagrant installation
Now, It will ask you to reboot your machine. Once you rebooted your system, please follow the below steps.

How Vagrant works?:
Let us understand; Vagrant followed the below procedure in the above Step2.
The Vagrant installer extracted and copied its files, and added the vagrant command to the executable path.
On Windows OS, this will install Vagrant to the default OS X Applications/ directory.
Also let us note; Vagrant is a command-line driven application, there are no programs
accessed from this OS.
Now, by opening a command prompt [CMD in windows] let us verify that Vagrant is working. We need to do it by executing: “vagrant version” command in CMD.

We can see the below screen output in CMD window:
=== CMD window output ====>
C:\Users\Windows>vagrant version
Installed Version: 2.1.5
Latest Version: 2.1.5

You’re running an up-to-date version of Vagrant!

From the above output;
It is confirmed, we are ready to start using Vagrant!

Note: Please visit , to know  further the Vagrant installation guidelines.

Let us recap, What we have done is; we installed a working Vagrant environment which consists of:
a) A hypervisor application that can contain virtual machines.
b) Also let us note; Vagrant is a tool that makes managing these machines simpler and available.
c) It is important here to note that Vagrant is simply a framework to manage virtual machines.
d) It is not an application to create and host virtual machines.

II. How to Initialize our first virtual environment with Vagrant setup ?:

As mentioned in the above sections, once we have a working Vagrant environment with a hypervisor, we can initialize our first environment.
There are two ways we can  work with Vagrant to achieve this task:
a) In a new environment with a newly initialized Vagrantfile.
b) In an environment which is maintained in source control system (such as Git, SVN, etc.), which has a Vagrantfile included in a project and keeping  Vagrantfiles for different purposes of the projects.

This is a powerful  technique to manage and track changes in Vagrant environments. This kind of method can be more useful to  build the Environments easily with the concept of Infrastructure As a Code [IAC] under DevOps culture. Which is also a script driven [automated IAC] process.

But in this example, we will initialize a new environment with the basic configuration of a Vagrantfile.

Step1: Let us create a vagrantfile with  vagrant init command as below to get an ubuntu 16.04 machine with 32 bit.

I have copied my screen display with used commands for this process.

I need to have a different folder and used the below command in that folder”.

vagrant init puppetlabs/ubuntu-16.04-32-nocm


=== Screen output ===>

C:\>md dir vagrant-files

C:\>cd vagrant-files


C:\vagrant-files>vagrant init puppetlabs/ubuntu-16.04-32-nocm
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`` for more information on using Vagrant.


==== We have created a vagrantfile now===>

Step2: Making Vagrant up

Before running this step please make sure you have installed the Oracle VirtualBox as mentioned in the previous section.

Now, In Command Window execute the below command.

“vagrant up”

This command might output several results; I am copying my screen output which was displayed. It takes few minutes to complete this activity.

=== Screen output for vagrant up=====>

C:\vagrant-files>vagrant up
Bringing machine ‘default’ up with ‘virtualbox’ provider…
==> default: Box ‘puppetlabs/ubuntu-16.04-32-nocm’ could not be found. Attempting to find and install…
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box ‘puppetlabs/ubuntu-16.04-32-nocm’
default: URL:
==> default: Adding box ‘puppetlabs/ubuntu-16.04-32-nocm’ (v1.0.0) for provider: virtualbox
default: Downloading:
default: Download redirected to host:
==> default: Successfully added box ‘puppetlabs/ubuntu-16.04-32-nocm’ (v1.0.0) for ‘virtualbox’!
==> default: Importing base box ‘puppetlabs/ubuntu-16.04-32-nocm’…
==> default: Matching MAC address for NAT networking…
==> default: Checking if box ‘puppetlabs/ubuntu-16.04-32-nocm’ is up to date…
==> default: Setting the name of the VM: vagrant-files_default_1536967979621_87087
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

This option can be disabled globally with an environment variable:


or on a per folder basis within the Vagrantfile:

config.vm.synced_folder ‘/host/path’, ‘/guest/path’, SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces…
==> default: Preparing network interfaces based on configuration…
default: Adapter 1: nat
==> default: Forwarding ports…
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM…
==> default: Waiting for machine to boot. This may take a few minutes…
default: SSH address:
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying…
default: Warning: Remote connection disconnect. Retrying…
default: Warning: Connection aborted. Retrying…
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default: Inserting generated public key within guest…
default: Removing insecure key from the guest if it’s present…
default: Key inserted! Disconnecting and reconnecting using new SSH key…
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM…
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default: Guest Additions Version: 5.0.20
default: VirtualBox Version: 5.2
==> default: Mounting shared folders…
default: /vagrant => C:/vagrant-files


=== End of Vagrant up process ====>

Please note with the above activity is completed, your VirtualBox window will show this VM as its status “running”. It means you are able to see this newly created VM in your “Oracle VM VirtualBox Manager”.

Step3: Checking the box

Now let us use check this VM in a Command line:

After Vagrant returns to the command line, executing the “vagrant ssh” command will open a command-line interface into the newly initialized Virtual Machine[VM].

You can see the screen output:

==== vagrant ssh ====>

C:\vagrant-files>vagrant ssh
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic i686)

* Documentation:
New release ‘18.04.1 LTS’ available.
Run ‘do-release-upgrade’ to upgrade to it.

vagrant@localhost:~$ ls


At the same time you can also go to your “Oracle VM VirtualBox Manager”, and double click on it. It will show a button “Show”, you can click on it. Opens a window with this VM.

Please note; In this exercise we have created the base box only. Hence we are not going to use this VM for our future operation.

You can see the local dir as:

== Current dir details ===>

Volume in drive C has no label.
Volume Serial Number is 5A33-A94E

Directory of C:\vagrant-files

09/14/2018 04:14 PM <DIR> .
09/14/2018 04:14 PM <DIR> ..
09/14/2018 04:25 PM <DIR> .vagrant
09/14/2018 04:12 PM 3,108 Vagrantfile
1 File(s) 3,108 bytes
3 Dir(s) 96,101,879,808 bytes free



Step4: Destroying the Virtual box

Now, we will see : a) How to exit, b)  How to Destroy this VM.

a) How to exit: We can exit it by using the command :

“control-d command, or by typing exit”

b) How to Destroy this VM: We can Destroy the virtual machine, by discarding the entire working environment. This can be done  with the “vagrant destroy” command.

When you use this command, Vagrant  will now  prompt you to make sure  that you  want to destroy the environment; type “y” to proceed with destroying the environment and deleting the VM.

=== Output for Destroy===>

C:\vagrant-files>vagrant ssh
VM must be running to open SSH connection. Run `vagrant up`
to start the virtual machine.

C:\vagrant-files>vagrant destroy
default: Are you sure you want to destroy the ‘default’ VM? [y/N]
==> default: Destroying VM and associated drives…



You can also check in the GUI of the  “Oracle VM VirtualBox Manager”. It will not have this VM.

In  this simple vagrant exercise in summary we have done the below steps;

  • We have downloaded and configured “Oracle VM VirtualBox Manager”.
  • We have installed Vagrant.
  • Created a Vagrant virtual box.
  • We could connect to it in a command line interface and checked the linux [ls] commands. We also cross verified it in “Oracle VM VirtualBox Manager” on its appearance as VM. 
  • Finally, we destroyed this VM.

That is all about this exercise. You can create any number of VMs like this.


You can keep checking this site or follow it to get the new/updated blogs.

If you are interested in learning AWS, go through my blogs:

2. AWS: WordPress[WP] infrastructure creation using a free tier account

1. AWS:How to create and activate a new account in AWS ?


Vcard-Shanthi Kumar V-v3







2. AWS: Wordpress[WP] infrastructure creation using a free tier account

With reference to my previous blog on:
1. AWS:How to create and activate a new account in AWS ?

I have made a scenario based “AWS services usage” blog in this content.

If you are new for cloud technology, I have made a video cum blog for you to understand its initiation/evaluation concepts. This video is more useful for PMs/Cloud Architects/DevOps role based people.

For video Visit:

For the above video’s blog:

Now, let us move forward with this blog content.

In this AWS exercise, I have described/demonstrated on WordPress[WP] infrastructure creation using a free tier account.

At the end of this blog a micro level lab practiced steps are copied and a recorded video is there on my channel.

I would like to explain from architecture/design perspective through this blog, before you go to Lab steps.
After doing this exercise, simply and finally we can come into the following conclusions:

a) Creating a blogging infrastructure can be fully automated through AWS services.
b) Infrastructure can be created at any time on-demand without any up-front
commitment for how long we will use it in AWS.
c) We can pay for our infrastructure depending on how many hours we use it.
d) Infrastructure consists of several parts,
such as; i) virtual servers, ii) load balancers, and iii) databases.
e) Infrastructure can be deleted with one click without costing to us.

This process is powered by AWS automation. So it will not be billed to our free tier account after deletion!!.

First let us analyze on WP and its components.

How a WordPress infrastructure can be planned?

Assume we have a startup company, which publishes more white papers and  blogs.

Assuming; our startup company currently uses WordPress[WP]  to host over 500 blogs on our own servers.  The blogging infrastructure must be highly available, because customers don’t tolerate outages of any servers.  To evaluate whether a migration is possible through AWS services, we need to do the following three Activities planning and try out with AWS free-tier account:

A) Set up a highly available blogging infrastructure in AWS.
B) Estimate monthly costs of the infrastructure.

C) Finally, Delete our blogging infrastructure to save cost from free-tier account.

For our understanding on WP;

  • WordPress[WP] is written in PHP and uses a  MySQL database to store data.
  • Apache is used as the web server to serve the blog pages.
  • With this information in our mind, we map our requirements to AWS services  to test the infrastructure creation.

Now, let us analyze on “what are the AWS services required for our WP test infrastructure?”.

We need  the below AWS services to do this activity:
I. Elastic Load Balancing (ELB),
II. Elastic Compute Cloud (EC2),
III. Relational Database Service (RDS) for MySQL and
IV. Security groups.

Let us analyze what are the functions/benefits of  these AWS services.

I. Elastic Load Balancing (ELB):

AWS offers a load balancer as a service.
The Elastic Load Balancer (ELB) distributes traffic to a bunch of servers behind it in a cloud environment. It’s highly available by default.

Let us assume our startup company’s blogs are published globally. From many countries these can be accessed by the users. Assume there are lot of users access this content globally. Then in traditional method your load is not balanced without  having physical servers connected through VPNs/networks, etc. in different locations. Think about the Hardware/Software/maintenance/FMG cost for this traditional infrastructure. We can not think it being a startup company to spend much. No way!! Hence we need to depend on cloud service provider.

With AWS ELB, this can be balanced by distributing the blog users traffic to different virtual servers under cloud environment. To denote this distributed load balancing  architecture, I have collected a diagram  on;

WordPress infrastructure and Load Balancing through ELB AWS service.
Which is pasted here for your clarity on the ELB function.

WP-Infra-ELB-load Distribution.png

II. Elastic Compute Cloud (EC2):

It is A virtual server which is provided by the Elastic Compute Cloud (EC2) service of AWS. We will use a Linux server with an optimized distribution called Amazon Linux to install Apache, PHP, and WordPress during our exercise. Please note; we are not limited to Amazon Linux only; we can also choose Ubuntu, Debian, Red Hat, or Windows. Virtual servers can fail at any time, so we need at least two of them for contingency planning. The load balancer will distribute the traffic between them. The beauty of AWS service in case of a server failure is; the load balancer will stop sending traffic to the failed server, and the remaining [contingency] server will need to handle all the requests until the failed server is replaced. Let us not worry on this communication! You will be intimated the status through alerts.

A sample architecture diagram is pasted here FYI with two EC2 instances.

EC2-two instance-ELB-Scenario.png

III. Relational Database Service (RDS) for MySQL:

WordPress relies on the popular MySQL database. AWS provides MySQL as a Relational Database Service (RDS). We can choose the database size (like; storage, CPU, RAM), and RDS takes care of the rest (backups, updates). RDS can also provide a highly available MySQL database by replication. In traditional [non-cloud] model we had the similar setup. It occurs huge costing. By using AWS cloud services this can be easily maintained with minor costing only.

On this context; from the below diagram we can see the MYSQL features from AWS services offering.


V. Security groups:

In every application architecture we need to have the security features in place. Either these can be embed in the applications or through security tools it can be applied. So the entire architecture is protected that way.

But in cloud services many providers provide these services differently with their services offering.

The Security groups are a fundamental service of AWS to control network traffic like a firewall in traditional systems. Security groups can be attached to a lot of services like ELB, EC2, and RDS. For example; with security groups, we can configure our load balancer as below:

It only accepts requests on port 80 from the internet. Web servers only accept connections on port 80 from the load balancer. And MySQL only accepts connections on port 3306 from the web servers. If we want to log in to our web servers via SSH, we must also open port 22. Similar ways the architecture setup can be configured.

FYI, I have considered a diagram from AWS docs; which denotes a typical AWS multi-tier approach security services with a Firewall:

AWS-Security mulit-tier aproach.png

As shown in the above diagram, A security group acts as a virtual firewall for our instance to control inbound and outbound traffic. When we launch an instance in a Virtual Private Cloud[VPC], we can assign the instance to up to five security groups. It means in any VPC  AWS provides five different security groups.

So, now what is our start company plan for security?:

Let us assume our startup company’s blogging infrastructure consists of two load-balanced web servers running a) WordPress and b) a MySQL database server.

The following tasks are performed automatically in the background through AWS:

  1. Creating an ELB.
  2. Creating a RDS MySQL database.
  3. Creating and attaching security groups.
  4. Creating two web servers.
  5. Creating two EC2 virtual servers.
  6. Installing Apache and PHP via yum.
  7. Install php, php-mysql, mysql, httpd.
  8. Downloading and extracting the latest version of WordPress from   
  9. Configuring WordPress to use the created RDS MySQL database 
  10. Starting Apache. 

Before going to the above steps, I would like to show the below diagram for your understanding on “The setup of WP hosting on AWS”. You can download it through the URL given and see it as an image file for your understanding.

AWS-WP-Hosting setup

Now, let us recap our beginning conclusions for this blog. We need to do the below activities till end of the exercise.

  1. Creating a blogging infrastructure.

  2. Analyzing costs of a blogging infrastructure.

  3. Exploring a blogging infrastructure.

  4. Shutting down a blogging infrastructure.

  5. Deleting infrastructure from AWS Account.

1. What actions we need to consider for Creating blogging infrastructure in AWS?: To create the blogging infrastructure we need the below steps to follow on AWS console.

Note: Please note time to time the screen flows [micro level steps] might change on AWS, but the process should be the same to understand on creation of this WP infra.

  1. Open the AWS Management Console at
  2. Click Services in the navigation bar, and click the Cloud-Formation service.
  3. Click on Create Stack to start the four-step wizard.

Now we will see what are these 4 steps wizard process it contains.

I. Creating a blogging infrastructure: Step 1 of 4

You need to name your infrastructure. Enter “wordpress” as the Name. For Source option, select and  Specify an Amazon S3 Template URL as shown in the screen [lab exercise screen]. Copy this URL and save somewhere in a text file for future reference/usage. About this process, during lab demo you will understand clearly.

II. Creating a blogging infrastructure: Step 2 of 4

Click Next to set the KeyName to “vskumarkey” [example only, you can give any name], for Step 2 of 4. Click Next to create a tag for our infrastructure into next screen. These steps can be seen clearly in lab practices steps.

III. Creating a blogging infrastructure: Step 3 of 4

A tag consists of a key-value pair and can be used to add information to all parts of our infrastructure. We can use tags to differentiate between testing and production resources, add the cost center to easily track costs in our organization [if any], or mark resources that belong to a certain application if we host multiple applications in the same AWS account.

In this example, we will use a tag to mark all of our resources that belong to the “wordpress system”. This will help us later to easily find our infrastructure. Use “system” as the key and “wordpress” as the value.  Click Next. Finally, we will see a confirmation page for Step 4 of 4. For clarity look into lab steps.

IV. Creating a blogging infrastructure: Step 4 of 4

In the Estimate Cost row, click Cost. This will open a new browser tab in the background. Keep this browser open only. We will come back to this screen later. Switch back to the original browser tab and click Create. We can see next Review screen in the next page.

Now, our infrastructure will be created. This Review screen shows that wordpress is in the state of CREATE_IN_PROGRESS. It takes 15-20 mts to complete this process.

Now, please take a look at the result by refreshing the page. Select the “WordPress” row, where Status should be CREATE_COMPLETE. If the status is still CREATE_IN_PROGRESS, be patient until the status becomes CREATE_COMPLETE.

Switch to the Outputs tab [below part of the screen], which is the Blogging infrastructure result. There we can find the URL to our “wordpress system”; click it to visit the system.

What is AWS Automation here?:

As we have discussed in the beginning of this blog, one of the key concepts of AWS is automation. We can automate everything. In the background, our blogging infrastructure was created based on a blueprint with its automation. So the above mentioned [10] tasks have been performed in the background by AWS cloud formation service. You can see the beauty of this automation during lab demonstration.

Blogging infrastructure result:

Now we’ve created our blogging infrastructure, let us take a  look at it. Our infrastructure consists of the following as we discussed in this blog:

  • Web servers
  • Load balancer
  • MySQL database

Now; we will  use the resource groups feature of the Management Console to get an overview.

Exploring the created WP Blogging  infrastructure

Now let us understand;

What is Resource Group in AWS?:

  1. A resource group is a collection of AWS resources.
  2. Resource is an abstract term for something in AWS like an EC2 server, a security group, or a RDS database.
  3. Resources can be tagged with key-value pairs. In such case; let us note we can have more than one key-value pairs.
  4. Resource groups specify what tags are needed for a resource to belong to the group.
  5. Furthermore, a resource group specifies the region(s) where the resource should reside in. It means globally these resource groups can be deployed for its functioning. 
  6. We can use resource groups to group resources if we run multiple systems in the same AWS account. This way we are sharing the resources among the projects or app architectures.
  7. Let us note that we have tagged the blogging infrastructure with the key “system” and the value “wordpress”.
  8. As an example; from now on, we will use this notation for key-value pairs: (system:wordpress). We’ll use that tag to create a resource group for our WordPress infrastructure.  For further clarity please look into the lab steps/video.

Now let us understand;

How to create  a resource group in AWS?:

    1. In the AWS part of the top navigation bar, click Create a Resource Group.
    2. Set Group Name to “wordpress” or whatever you like.
    3. Add the tag system with the value wordpress.
    4. Select the region N. Virginia [for example]. [I have used my existing account]
    5. Save the resource group.
    6. It will take you to next screen shown in next page. Follow the below steps.

How to see the Blogging infrastructure web servers via resource groups details?:

  1. Select Instances under EC2 on the left to see the web servers.
  2. By clicking the arrow icon in the Go column, you can easily jump to the details of a single web server. 
  3. Now, You are  looking at the details of your web server, which is also called an EC2 instance.

Details of web servers running the blogging infrastructure:

  1. On this screen the interesting/important details are as below:
  • Instance type: It tells us about how powerful your instance is.
  • Public IP address: The IP address that is  reachable over the internet. You can use that IP address to connect to the server via SSH.
  • Security groups: If you click on View Rules, you’ll see the active firewall rules like the one that enabled port 22 from all sources (
  • AMI ID: Let us recollect that we used the Amazon Linux operating system (OS). If you click the AMI ID, you will  see the version number of the OS, among others.  

We also need to know the utilization of webservers, like how we used to monitor in live [for production boxes].

Looking for webserver utilization and metrics in AWS:

2. In the screen; Select the Monitoring tab to see how your web server is utilized.

3. This will become part of our job: really knowing how the infrastructure is doing.

4. AWS collects some metrics and shows them in the Monitoring section. If the CPU is utilized more than 80%, you should add a third server to prevent page load times from increasing.

Now let us understand on;

How to check the Blogging infrastructure load balancer via resource groups?:

  1. We can find the load balancer by selecting Load Balancers under EC2 on the left to the page.
  2. By clicking the arrow icon in the Go column, you can easily jump to the details of the load balancer.
  3. Now, we are looking at the details of your load balancer.
  4. Here; the most interesting part is, “How the load balancer forwards traffic to the web servers?“.
  5. The blogging infrastructure runs on port 80, which is the default HTTP port.
  6. The load balancer accepts only HTTP connections to forward to one of the web servers that also listen on port 80.
  7. The load balancer performs a health check on the virtual servers attached.
  8. Both virtual servers are working as expected, so the load balancer routes traffic to them.    

How to check the MySQL server ?:

Details of the MySQL database which stores data for the blogging infrastructure

  1. Now; let’s look at the MySQL database. You can find the database in a resource group named wordpress.
  2. Select DB Instances under RDS at left.
  3. By clicking the arrow icon in the Go column, you can easily jump to the details of the database.
  4. Now the details of our MySQL database are shown in the screen.
  5. The benefit of using RDS is that we no longer need to worry about backups because AWS performs them automatically.
  6. Updates are performed by AWS in a custom maintenance window. Keep in mind that you can choose the right database size in terms of storage, CPU, and RAM, depending on your needs.
  7. AWS offers many different instance classes, from 1 core with 1 GB RAM up to 32 cores with 244 GB RAM.

Note: I would like to emphasize to compare the traditional [non-cloud] approach. We used to use the scheduler to backup the DB periodically. Some times we used to shutdown the live systems to take the backups. So, from AWS RDS services we do not need interrupt the business to take backup, RDS takes care everything. We can save the role of sysadmin/dba while using the AWS services. 

As we planned three activities for this whole exercise as on now; we have completed the activity of “A) Set up a highly available blogging infrastructure in AWS.”

Now, we are going to work on; “B) Estimate monthly costs of the infrastructure.”

  1. As the  part of this exercise is’ cost estimation also need to be done.
  2. To analyze the cost of our blogging infrastructure, we will  use the AWS Simple Monthly Calculator.
  3. Recollect that we clicked the Cost link in the previous section to open a new browser tab.
  4. Now, switch to that browser tab, and you will see a screen as shown in the below  chart.
  5. To Estimate of our Monthly Bill, and expand the Amazon EC2 Service and Amazon RDS Service rows.

Now, Let us see and understand the below chart.

Blogging infrastructure cost calculation

Now it’s time to evaluate costs. We can see on How much does it cost?

  1. In this example, our infrastructure will cost is around $60 per month.
  2. Let us keep in mind that this is only an estimate.
  3. We are billed based on the actual usage till the end of the month.
  4. Everything is on-demand and usually billed by hours of usage or by gigabytes of usage.
  5. But what influences the usage for this infrastructure?

Let us analyze different situations and identify the costing parameters as below:

Traffic processed by the load balancer: Let us assume; Expect the costs to go down in during festival/vacation season like;  “December and the summer”. When the people are on vacation and not looking at our blogs.

Storage needed for the database: If our startup company increases the number of blogs, the database will grow, so the cost of storage will increase this way.

Number of web servers needed: A single web server is billed by hours of usage. If two web servers are not enough to handle all the traffic during the day, we may need a third server.  By default we need to keep in our AWS/EC2 setup. In that case, we will consume more hours of virtual servers.

Now we had a clear overview of the blogging infrastructure creation and its cost estimation/Analysis. Similar way you will be able to do for your AWS migration projects also.

Now; with reference to  the 3rd  step, it is time to shut down the infrastructure and complete our AWS migration evaluation exercise.

Let us recap our planned 3rd activity;

C) Finally, Delete our blogging infrastructure to save cost from free-tier account.

Now, go to the CloudFormation service in the Management Console and do the following:

  1. Select the WordPress row.
  2. Click Delete Stack, as shown in top of the screen.
  3. After you confirm the deletion of the infrastructure, it takes few minutes for AWS to delete all of the infrastructure’s dependencies.
  4. Please note; this is an efficient way to manage our infrastructure.
  5. Just as the infrastructure’s creation was automated, its deletion is also completely automated.
  6. You can create and delete infrastructure on-demand whenever you would like, and you only pay for infrastructure when you create and run it.  

<===== I copied the relevant lab practiced steps for your easy use ======>

These steps were used as on dated: 9th Sept 2018 on my free-tier account for student purpose.
The AWS might change its Screens flow or UI part time to time.
Hence from the above blog narration some detailed steps are given in the below lab practice steps for your easy use/practice.

1. Sign-in to your AWS console account from URL:

2. Login to the account.
3. Click on Services.
4. Please note we need to use Cloudformation service of AWS in this exercise.
Hence click on Cloudformation.
5. You will be shown the screen to create a new stack. Click on it. Note as mentioned in my blog it has 4 step process.
6. Now, select a sample template. Choose WordPress blog. It creates/shows the S3 template url.
7. Copy the S3 Template URL into a file for future usage.
8. Now, click on Next to go to next screen.
9. Under Specify Details columns, mention the details.
10. Please note my Infra name I want to give “wordpress”.
11. It has the predefined DB “wordpressdb”, I will keep it.
12. I can give DB Passwords, as required in the entry boxes/columns.
13. Dbuser “vskumarwp”. It has instance type t2.small.
14. Now, as you are aware we need to have the local SSH keys which we have created earlier. I have some keys I have selected one. [If you are new for this account, create the SSH keys…]
15. I need to give the range of IPs to be used for our wp servers.
I want to use
16. Now, need to click on next…
Please note the above steps are required for you….

17. Let me give System as “worpress” and key as “system” as mentioned in my blog.
18. I want to skip ARN value in this exercise, due to as I mentioned in blog I would like to follow. I will not have any ARN, Hence monitoring is not mandated for me in this exercise. Then press “Next”.

19. Now, we will see the review screen as mentioned in Blog. On reveiw screen press Create button.
20. We are in creation process screen as mentioned in Blog.

21. Now let me click on my instance vskumarwp.

22. Now, go to the top navaigation bar and select the resource groups.
23. Select create resource group. You will get a new screen which has some entries and selections. Give tag key as “worpress” and press create group.
24. Next screen it shows wordpress as the resource group name.

25. Now, go to EC2 instance from the left side shown.
Now, you can see in bottom of the screen as mentioned in the blog.

26. I can see ELB by clicking on ELB option in the left panel.
Please note I have not given the ARN. Hence the Monitoring option is not selected.
Due to it might charge me.

27. You can see the cloud watch options through monitoring button in the below part of the screen.

28. Please note the security groups are attached by default.

29. Please note if I want to use this EC2 instance which is prepared for WP, I need to launch in AWS services live.
Which is going to be billed. Hence I will stop at this point.

30. The FINAL step is to delete the Instance of WP. I will go to cloudformation option.
Then it displays the current instance. I will select it and go to actions and select the DELETE STACK Option.
It prompts for ‘YES/NO’, Select Yes. It can take some time to perform deletion.

31. Once it is deleted it will comeback to the Stack creation screen.
Please note I have checked it, there are no existing instances in my current account.
We can see it as terminated instance.

32. So, this way we can create infra and delete it very easily.

33. So, let us have a final conclusion, section from blog.

34. Please call me if you need any coaching for AWS course….

For the above steps a 40 mts videos has been made and hosted  on my channel. Please look into it also.

================= End of Lab practice ===============================>


Now, after doing all the above steps we can compare our conclusions mentioned in the beginning of this blog. I copied the same for your cross check!!

a) Creating a blogging infrastructure can be fully automated through AWS services.
b) Infrastructure can be created at any time on-demand without any up-front
commitment for how long we will use it in AWS.
c) We can pay for our infrastructure depending on how many hours we use it.
d) Infrastructure consists of several parts,
such as; virtual servers, load balancers, and databases.
e) Infrastructure can be deleted with one click without costing to us.
This process is powered by AWS automation. So it will not be billed to our free tier account after deletion.

I assume now, you are a fearless user of AWS to create the infrastructure through your free-tier account and delete and maintain the account without a cost to your CC/Account.

If you are interested to learn Virtualization with Vagrant visit:

1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:

Note to the reader of this blog:

If you are not a student of my class, and looking for it please contact me by mail with your LinkedIn identity. And send a connection request with a message on your need. You can use the below contacts. Please note; I teach globally.

Vcard-Shanthi Kumar V-v3

This blog is created as an video explanation also. There are series of videos made till end of the lab session.





1. AWS:How to create and activate a new account in AWS ?

AWS Account-creation scrn

How to create and activate a new account in AWS ?:

In this blog, you will see the required steps for creating and activating your new AWS account. Once have the activated account, you can start your other lab practices as I discuss in the class timely.

The following are the main 4 steps process we need to follow:

STEP1: Creating your account. It consists of 2 steps: a) Providing a valid e-mail address and choosing a password. b) Providing your contact information and setting your preferences.

STEP2: Add a payment method Please note; you need to have a valid CC to give its details. Amazon verifies its transaction also with a tiny charge and with a credit back. If by mistaken given wrong data please note; your account registration process will not be activated. You will be intimated by mail. This way Amazon is authenticating/authorizing us for AWS usage.

STEP3: Verify your phone number. You need to Provide a phone number where you can be reached in next few minutes, while creating your account.

STEP4: Choose the AWS Support plans. Time to time the AWS plans will be published. You need to choose the plan from the currently available plans for your needs. The relevant URL is given in the detailed steps section in this blog.

As a consolidated process, we can understand from the below flow chart. Which is from the collection of AWS process charts.

AWS Account-creation flowchart


I am not copying the screens due to privacy.

Detailed steps

STEP1: Detailed steps for Creating your account.

a). You need to go to Amazon Web Services home page URL:

b). Now, Choose Sign Up. Click on Create an AWS account. You can see new page with Create an AWS account. You need to enter the required details. E-mail id, Pwd, AWS Account name [you can give any name for this]. And choose continue to go to next page. Please note; The above steps are valid for the new users of AWS. If you enter your email address entered incorrectly, you might not be able to access your account or change your password in the future. So you need to be careful on your data entry part. Let us assume; if you’ve signed in to AWS recently, it might say Sign In to the Console. So you need to login into your existing Account.

c). Now in the current page, choose Professional or personal. These two areas will give equal services. Depends on your need You can choose one of the options.

d). From the above options choosed, type the requested company or personal information entries. Note; At this point, You need to go through the AWS Customer Agreement to know their policies and procedures to follow while operating.

e). Finally, you choose Create Account and Continue options in the bottom.

f). Please note; at this point you will receive an e-mail to confirm that your account is created. Now, you can sign in to your new account using the valid email address and valid password you have supplied earlier.

Please note; we have done the Step1 only, the activation process is not yet completed to use the AWS services. Still we need to follow 3 more steps.

STEP2: Add a payment method- Detailed steps:

At this point; On the Payment Information page,

a) Choose the payment method as per the payment gateway standards which is displayed.

b) Type the requested information associated with your payment method. Please make sure the address for your payment method is the same as the address you provided for your account. Note; If your billing address is different; then choose Use a new address, type the billing address for your payment method.

c) Now, choose Secure Submit.

STEP3: Verify your phone number.

Please keep a valid and handy phone number at this point.

a) On this Phone Verification page, type a phone number where can use to accept incoming phone calls.

b) Enter the code displayed in the captcha. When you’re ready to receive a call, choose Call me now option.

c) In a few moments, an automated system will call you to your given phone number. Even it might have SMS feature also, if you are outside North America region.

d) Type the provided PIN on your phone’s keypad of the AWS screen. e) After the process is complete, choose Continue.

STEP4: Choose the AWS Support plans.

a) At this point please visit the below URL:

You can select the AWS support plans from the given list.

b) After your selection of a Support plan, a confirmation page denotes that your account is being activated.

c) Please note; Accounts are usually activated within a few minutes, but the process might take up to 24 hours. This process includes the validation of Bank/CC account given there.

d) Hence keep looking for a mail on this subject from Amazon to start your AWS services usage.

Assuming everything went well, and your AWS account is activated now.  Congratulations!

We can look into next lab with reference to the class session.

2. AWS: WordPress[WP] infrastructure creation using a free tier account


If you are interested to learn Virtualization with Vagrant visit:

1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:



If you are not a student of my class, and looking for it please contact me by mail with your LinkedIn identity. And send a connection request with a message on your need. You can use the below contacts. Please note; I teach globally.


Vcard-Shanthi Kumar V-v3

2. Graph database/Docker: How to install Neo4j on a docker container? [for Ubuntu 18.04 VM]

Neo4j                                                                                                      Docker-logo

I have shown in this blog/video on the “Installing Neo4j DB on a Docker container using Ubuntu 18.04 VM”.

Through this blog and video, I have demonstrated the below functions:

a) How to install docker on an Ubuntu 18.04 VM?

b) How to create the Neo4j container from the image ?

c) How to use the container for neo4j browser ?

d) How to login and operate the options ?

c) Then how to shutdown the neo4j container ?

On all the above steps, a practiced video is made for your lab practice.

This is attached at the end of this blog.

Initially, we need to check whether the prerequisite packages are installed.
To check, perform the following:

sudo apt-get -y install apt-transport-https ca-certificates curl

Then, add the keys to our local keyset:

sudo curl -fsSL | sudo apt-key add –

Next, Add the Docker repository to our system (Ubuntu users, I am assuming you have a 64-bit CPU in your VM):

sudo add-apt-repository “deb [arch=amd64] $(lsb_release -cs) stable”

Now, we need to work on Preparing the filesystem.
As we planned want need to keep track of the logs and be able to reuse our data, we will need to give the
Docker image some access to our filesystem.
In our home folder [~], let’s create a Neo4j folder and two subfolders named logs and data.
This below script will do it on a Linux platform:
cd ~
mkdir neo4j
cd neo4j
mkdir logs
mkdir data

Enter the above steps in a .sh script.

How to Run Neo4j in a Docker container ?:
I need to run the below command;

sudo apt install

Now, we can run the below long command in a Terminal to run Docker with a Neo4j image.

sudo docker run –rm –publish=7474:7474 –publish=7687:7687 –volume=$HOME/neo4j/data:/data \
–volume=$HOME/neo4j/logs:/logs neo4j:3.1.2

This command triggered some downloading because our local Docker repository does not have the
Neo4j image available in its 3.1.2 version yet.

Ports used by Neo4j are 7474, 7473, and 7687, for the protocols http, https, and bolt, respectively .
In the parameters part, you can see–volume twice.
Its use is to link the folder on the local filesystem to the container filesystem.

Providing the port numbers given as parameters were not in use,
the Terminal should display something like this:

Remote interface available at : http://localhost:7474

Now, it denotes our Docker container started for Neo4j.

This informs us that Neo4j is expecting us to connect on port 7474 as usual.
So let us fire our browser and browse to the very same
URL we saw earlier, http://localhost:7474, and go graphing!
(Make sure our data will be persisted on disk.)

now, How to stop Docker running your image ?

In order to stop Docker , you need to pass not the name (of the image)
but the identifier of the running container (based on the image).

So, in another Terminal, let us type as follows to know the status of containers:
docker ps

This will list all the containers running, in our case, only one.
So we look at the first column, container_id, and use it as a parameter:
docker stop container_id

You can watch the terminal screen.
Docker container stopped as it should be stopped with this command.

For typical installation procedure of neo4j visit my blog:



Vcard-Shanthi Kumar V-v3

Advt-course3rd page

32. DevOps: Ubuntu 18.04: Installing git

This video demonstrates the installation of Git on Ubuntu 18.04 LTS Bionic Beaver.

To work with Git basic commands, I wrote the below blog, you can use for your practice.