Skip to main content

Monitoring Amazon EC2 instances

Amazon EC2 instances are monitored by Amazon CloudWatch by default.

The default monitoring is called the Basic Monitoring.

Basic Monitoring includes seven pre-selected metrics at five-minute frequency and three status check metrics at one-minute frequency for no additional charge.

However, when you first launch an EC2 instance, you have the option of enabling detailed monitoring.

Detailed Monitoring includes all the metrics available in Basic Monitoring but at one-minute frequency. Instances with Detailed Monitoring enabled allows data aggregation by Amazon EC2 AMI ID and instance type. Detailed Monitoring has an additional fee if selected.

Once an EC2 instance has been launched, you can always toggle detailed monitoring on or off later. This is useful for troubleshooting. So the recommendation is to NOT turn detailed monitoring on initially.

If autoscaling or elastic load balancing is being used, CloudWatch will also provide Amazon EC2 instance metrics aggregated by Auto Scaling group and by Elastic Load Balancer, regardless of whether you have chosen the basic monitoring (by default) or the detailed monitoring.

Monitoring data is retained for two weeks even after the AWS resources has been terminated.

Viewing EC2 CloudWatch Metrics from the EC2 Dashboard

You can view the CloudWatch metrics from the EC2 Dashboard page by selecting the Instances option on the left pane of the dashboard, then selecting the Monitoring tab. The metrics of the highlighted instance will show in the bottom pane. You can also click on the View all CloudWatch metrics link which will take you to the CloudWatch service page.

Viewing EC2 CloudWatch Metrics from the CloudWatch Services Page

Select CloudWatch from the Services, Management Tools menu.

We can now select the EC2 option on the left pane to view the different Metrics for any Instances.


Popular posts from this blog

How To Migrate Mailboxes from Exchange 2010 to Exchange 2016 using PowerShell

The Scenario

Your organisation have decided to migrate from Exchange 2010 to Exchange 2016. The Exchange 2016 server have been installed into your current Exchange Organization. The Mailbox role have been installed on the Exchange 2016 server and you are ready to start moving mailboxes from the Exchange 2010 server to the Exchange 2016 server.

Migrating a Mailbox from Exchange 2010 to Exchange 2016

Using New-MoveRequest

Migrating a single mailbox involves invoking the cmdlet New-MoveRequest from the Exchange Management Shell on the Exchange 2016 server. Make sure that your user account that you have logged into the server with have the Organization Management role.

The common parameters that I use for the New-MoveRequest cmdlet is :

New-MoveRequest -Identity '' -TargetDatabase "DB02" -BadItemLimit 10

The -Identity parameter identifies the mailbox to be migrated. I usually use the e-mail address of the mailbox for the identity since it's uniqu…

How to Schedule an Exchange PowerShell Script in Task Scheduler

Exchange Management Shell
Since Exchange 2007, Microsoft has provided the Exchange Management Shell so administrators can manage all aspects of the Exchange server from the command line.

The Exchange Management Shell has Exchange specific PowerShell cmdlets. These Exchange cmdlets are not normally available in an ordinary PowerShell command environment.

An example of what can be done in the Exchange Management Shell is to run a PowerShell script to list all the mailboxes on the Exchange server to a file. You can output columns based on display name, size of the mailbox, last logon, and other available mailbox attributes.

You can also schedule a batch migration of mailboxes from one database to another such as the migration of mailboxes from Exchange 2010 to Exchange 2013.

Scheduling the PowerShell Script

Once you have written a PowerShell script and utilised the Exchange cmdlets, you can run it with no problems inside the Exchange Management Shell. If you were to try to run it under a …

Getting a List of Installed Applications on Local and Remote Computers


A few months ago, I was asked to have a look at a PowerShell script which was supposed to be able to list installed applications on the local and remote Windows computers on the network.

The script was from the Microsoft Gallery site.

Here is the original script, with explanations of what it's supposed to do.

Unfortunately if you run the script, it will only list the applications installed on the local PC but outputs the same results for all the computers that you are trying to inventory.

I found that the program was very well structured so perhaps the author did this on purpose. Anyhow, I modified the Function FindInstalledApplicationInfo($ComputerName)
and used .NET's remote registry functions in place of the original PowerShell registry functions which looks at the local registry only. In this way, the .NET's remote registry functions can look at the local re…