Skip to content

Key Terms#

Understanding virtualization any deeper than what we've discussed above isn't going to be overly helpful at this point in your career. That being said, having a good idea of some additional virtualization theory will help you better understand what's happening when you're creating resources later on in the course, such as AWS EC2 Instances, RDS databases, and more.

Let's go over some common terminology.

Virtual Machine#

An AWS EC2 Instance is a "virtual machine". All this means is a hypervisor is going to create a software defined abstraction between some real-world, physical hardware and an operating system, which will believe the hardware it sees is real. The hypervisor then, essentially, redirects all the calls to the hardware that the operating system's kernel makes, and points them at the software defined hardware.

So a virtual machine, EC2 Instance, etc., is basically a software defined computer system - everything is software and there is no physical hardware directly "underneath" the operating system.

Snapshots#

Because a virtual machine is a software defined computer system, the entire device, including the "hardware", exists as 1s and 0s - binary. It's just data, and just like you can copy a photograph on your hardware to another device, you can copy entire virtual machines.

This is called a snapshot. It takes a copy of the virtual machine at a specific moment in time. This includes what's on the (virtual) harddrive, inside of (virtual) RAM, and even the instructions executing on the (virtual) CPU. Everything.

That being said, not all snapshots take a copy of everything. In AWS, for example, if you take a snapshot of an EC2 Instance you get an AMI - Amazon Machine Image. This AMI doesn't contain what's in RAM or the CPU. It's a copy of the virtual machine that can be used to create another copy of the machine, but it boots from scratch.

Snapshots are used to backup systems so that they can be recovered later on. You'll be using snapshots a lot in your career.

Migrations#

So we've established that virtual machines are all just software defined, so we can create copies of the machines and their data. If we can copy a machine and create a snapshot of it, can we also move the data elsewhere?

Yep! That's called a migration. You take a copy and then move it to another network or even another region/country entirely, and then use the copy to create more servers in other locations.

Sometimes you'll create a copy via a migration and then close down the original because it may have been set up in the wrong network or the wrong region (for example.)