What is a Virtual Machine?
A virtual machine (VM) is a digital version of a physical machine that functions as an isolated system with its own virtualized hardware resources and operating system. A physical machine, like a laptop or physical server, typically has a single operating system coordinating the hardware to run your applications. However, underlying physical resources can provide significantly more power than a single system can use.
A virtual machine allows you to create multiple isolated environments on a single physical machine to run various operating systems in parallel. You can run several applications on the same hardware and utilize resources more efficiently. Modern-day cloud instances allow you to access virtual machines as a fully managed service in the cloud.
How do virtual machines work?
Virtualization refers to a piece of software that performs the job of physical hardware. The software accesses and uses the real-life, underlying physical hardware, so that it can operate as the physical hardware would. In the same way virtual machines run on real physical computers, spacious virtual storage can replace multiple physical storage devices. Virtualization technology makes configuring, templatizing, and repeating hardware rollouts easy with minimal physical management.
A virtual machine (VM) is a software-defined, fully operational system that runs an operating system, apps, processes, and custom configurations. The virtual machine is also called the guest operating system, and the physical computer it runs on is called host machine. Several virtual machines can run multiple operating systems on a single physical computer, negotiating to use the server’s hardware resources as required.
What is virtual machine infrastructure?
Hypervisor
A software layer, known as the hypervisor, coordinates hardware control and usage between the virtual machines (VMs) and the underlying physical machine resources.
A Type 1 hypervisor is installed directly on the physical host hardware, so there is no need for an underlying host operating system. Host computers with Type 1 hypervisors are dedicated to running only VMs.
A Type 2 hypervisor is installed on a physical host machine’s operating system (OS) and operates more like an app. Type 2 hypervisors are frequently used when virtualization isn’t the core activity of the machine. A virtual machine is generated within the hypervisor application while the underlying operating system works in the background. Users can switch between doing tasks in the host operating system and the virtual machine’s environment.
Virtual machine image
A VM image is like a bootable blueprint. The image contains the static state of the chosen operating system, apps, and system configuration, in a ready-to-load format so that your VM can get to work.
What is a cloud instance?
A cloud instance is a cloud-provider-managed virtual machine running on a remote server that you access over the internet. The cloud provider manages all underlying hardware and hypervisor resources, removing the complexity of physical server management and system administration. A cloud instance is just a name for a virtual machine in this cloud virtual environment.
Cloud instances can be configured with different CPUs, GPUs, memory sizes, storage, network bandwidth, and more. The cloud instance you choose depends on your workload, for example, deep learning inference or an application server.
Your administrators have complete control over the cloud instance’s operating system, allowing them to configure your environments, applications, and workloads to make your computer system complete.
What are the types of virtual machines?
The type of virtual machine you create and use depends on your goal and the underlying system’s hardware resources.
Some examples:
- Running a virtual machine with a powerful native LLM requires an underlying host machine with a powerful GPU.
- Running a Windows app occasionally on your desktop Mac means running a Windows operating system VM on a Type 2 hypervisor app on your host computer.
- Running a test server and a development server for software production means running two parallel guest operating systems, accommodating multiple users on an adequately-resourced host machine.
System virtual machine
System Virtual Machines (SVM) is just another name for the more common term, ‘virtual machine’. This type of VM encompasses a whole system environment, including its own operating system.
Process virtual machine
A Process Virtual Machine (PVM), on the other hand, runs a single process or application by providing a full programming language environment. Common examples of process virtual machines include the Java Virtual Machine, which runs Java programs, or the Python interpreter, which runs Python apps. Using a PVM means that you can run applications in specific languages on almost any host computer.
What are the benefits of using a virtual machine?
Almost every organization can benefit from using virtual machines. For new organizations, it is best to get directly started with cloud instances for speed of setup and cost-effective scale.
Virtual machines bring the following benefits to organizations with existing on-prem infrastructure:
Computing resource efficiency
The most significant advantage of using multiple virtual machines is to get greater ROI from the underlying hardware. If a CPU is only used at 25% capacity all the time, then it’s being underutilized. If multiple operating systems run critical tasks concurrently, combining these workloads on one machine saves resources.
Automated administration
By configuring virtual machine images in software, rather than explicitly in hardware, administration is automated, repeatable, and easily changeable.
Highly portable
Unlike physical hardware, virtual machines can easily be instantiated almost anywhere. A VM can run on a machine in North America, and simultaneously it runs on a machine in Australia, without needing any different configuration.
Different operating systems
While an organization may favor a specific operating system across its environment, there will be times when you might need or benefit from using different operating systems. With virtual machine software, you can run multiple VMs with different operating systems at once.
Virtual machines vs. containers
VMs are compared with containers when it comes to application deployment. Before containers, software developers would need to bundle libraries and services with the app for the user to install on a specific VM so that the application could run. With containers, you load an image, and the software just runs: no installation necessary.
VMs and containers both use virtualization. A VM virtualizes the underlying physical machine while the container virtualizes the server environment in which the app runs.
A virtual machine offers an isolated operating system environment that can run on any physical machine with the right hypervisor. A container provides a complete, isolated app environment that can run anywhere. A container comes complete with all the app’s necessary libraries and services to run on any system, when the right container manager is installed and configured.
Containerization can be more resource-effective than running a VM that runs the apps. However, not all apps can be containerized easily. Apps must be packaged for containers, and some applications, including those with GUIs or persistent storage, need reworking for stateless, container-based operations. Third-party apps often won’t have a containerized option.
How can AWS support your virtual machine requirements?
AWS offers over 800 instance types for virtually every business need. Instances can be tailored across processors, storage, networking, operating system, and purchase model to help you best match the needs of your workload. AWS offers 108 Availability Zones for instances that are multiple, physically separated, and isolated for meeting compliance requirements.
AWS instance type selections are designed for running multiple virtual machines across multiple operating system environments.
Amazon Elastic Compute Cloud (Amazon EC2) offers the broadest and deepest compute platform, with your choice of on-demand instances, dedicated instances, and spot instances. EC2 offers general-purpose instances, compute-optimized instances, storage-optimized instances, memory-optimized instances, and accelerated computing. EC2 supports Intel, AMD, and Arm processors, with multiple operating systems and is the only cloud with on-demand EC2 Mac operating system instances and 400 Gbps Ethernet networking.
The AWS Nitro System is the foundation for our modern EC2 instances. With Nitro System, we have completely re-imagined our virtualization infrastructure. Traditionally, hypervisors protect the physical hardware and BIOS, virtualize the CPU, storage, and networking, and provide rich management capabilities. With the Nitro System, we can break apart those functions, offload them to dedicated hardware and software, and reduce costs by delivering practically all of the resources of a server to your instances.
Amazon Lightsail offers easy-to-use virtual private server (VPS) instances, containers, storage, databases, and more at a cost-effective monthly price. Lightsail is designed for simple web applications, custom websites, and small business applications.
Get started by creating a free AWS account today.