Q:

Why Memory Utilization of EC2 instance is not default metric of Amazon CloudWatch? 

Three Amazon CloudWatch default metrics of EC2 instance are:

CPU
Disk I/O
Data transfer

Memory Utilization of EC2 instance is custom metric. 
I don't know why because Memory Ultilization is one of the very important metrics need to be monitor. 
Could anyone help to explain to me about this? 

A:

The Amazon EC2 service provides virtual machines that emulate computer hardware, such as CPU, RAM and disk. 
The AWS service cannot see "inside" your instance because it is running an Operating System (Linux or Windows).  It is the operating system that controls how memory is allocated, so it is not possible to determine "Memory Utilization" purely by looking at the virtual hardware. 
That's why the metrics provided are CPU Utilization, Network and Disk — they all involve the virtual hardware. 
If you want metrics from "inside" the instance, such as memory usage, free disk space and the number of logged-in users, then you need something that is running on the operating system to extract those metrics and send them to CloudWatch. 
You can do this by Collecting Metrics and Logs from Amazon EC2 Instances and On-Premises Servers with the CloudWatch Agent because the CloudWatch Agent is installed on the operating system.