In today’s post we will be looking at what are Azure Virtual Machines, how do you get billed, what are the Virtual Machine models, components etc.
What is an Azure VM?
Azure Virtual Machines is one of the central features of Azure’s IaaS capabilities, together with Azure Virtual Networks. Azure Virtual Machines supports the deployment of Windows or Linux virtual machines (VMs) in a Microsoft Azure datacenter.
You have total control over the configuration of the VM. You are responsible for all server software installation, configuration, and maintenance and for operating system patches.
Azure Virtual Machines support two types of disks (persistent in nature): OS disks and data disks. An OS disk is mandatory or required and the data disks are optional.
How do I get billed for Azure Virtual Machines?
Azure Virtual Machines is priced on a per-hour basis, but it is billed on a per-minute basis. For example, you are only changed for 10 minutes of usage if the VM is deployed for 10 minutes.
The cost for a VM includes the charge for the Windows operating system. Linux-based instances are slightly cheaper because there is no operating system license charge.
You are billed based on the status on the VMs:
- Running: The VM is on and running normally (billable).
- Stopped: The VM is stopped but still deployed to a physical host (billable).
- Stopped (Deallocated): The VM is not deployed to a physical host (not billable).
You will be charged separately for the persistent storage the VM uses. The status of the VM has no relation to the storage charges that will be charged; even if the VM is stopped/deallocated and you aren’t billed for the running VM, you will be charged for the storage used by the disks.
We will be looking at a different article that will deal only with the storage side of things in the Azure datacenter.
What are the different Virtual Machine Models?
There are two different Virtual Machine models as of writing this article and they are:
- Azure Resource Manager Model.
- Classic/Azure Service Management Model.
Azure Resource Manager Model
When working with the Resource Manager model, you have explicit and fine-grained control over nearly all aspects of the Azure VM. You will explicitly add components such as a network interface card (NIC), public IP address, data disks, load balancer, and much more.
There are three main resource providers used when working with Azure Virtual Machines: Network, Storage, and Compute.
- The Network resource provider (Microsoft.Network): handles all aspects of network connectivity such as IP addresses, load balancers, NICs, and so on.
- The Storage resource provider (Microsoft.Storage): handles the storage of the disks for a VM (in the context of Azure Virtual Machines).
- The Compute resource provider (Microsoft.Compute): handles details related to the VM itself, such as naming, operating system details, and configuration (size, number of disks, and so on).
Classic/Azure Service Management Model
In the classic deployment model, VM deployments are always in the context of an Azure cloud service -- a container for VMs.
The container provides several key features, including a DNS endpoint, network connectivity (including from the public Internet if desired), security, and a unit of management.
While you get these things for free -- because they’re inherited from the cloud service model -- there is a limited control that you have over them.
Microsoft recommends that you use Azure Resource Manager Model as it is better designed and will be given more preference in terms of development and support.
What are the various Virtual Machine Components?
Think of Azure Virtual Machine as a logical construct, a VM can be defined as having a status, a specific configuration (operating system, CPU cores, memory, disks, IP address, and so on), and state. That logical definition can be instantiated by Azure, and the appropriate resources can be allocated to bring that VM to life.
Azure Virtual Machines use attached VHDs to provide durable storage. There are two types of VHDs used in Azure Virtual Machines:
- Image: A VHD that is a template for the creation of a new Azure VM. As a template, it does not have settings such as a machine name, administrative user, and so on.
- Disk: A possibly bootable VHD that can be used as a mountable disk for a VM. There are two types of disks: an OS disk and a data disk.
When creating a VM in Azure using the Resource Manager model, it is required that the VM be placed within an Azure Virtual Network (VNET).
You will need to decide whether to use an existing VNET (or create a new one), the subnet to use, the IP address, if there is a load balancer or not, the number of NICs, and how network security is handled using Network Security Groups (NSG).
We will look at a separate article which will deal with Azure Virtual Network in much more detail.
That is all I have for today. For the complete list of Azure articles, click here.
I hope this has been informative and thank you for reading!