Virtual Machines

Virtual machines are isolated computing environments that run on a physical machine. The purpose of a virtual machine is running multiple operating systems on a single physical machine. This isolation allows you to run multiple applications on a single physical machine without interfering with each other. EC2 is an example of a virtual machine service.

An hypervisor is a software that runs on a physical machine and manages virtual machines. There are two types of hypervisors: Type 1 and Type 2. Type 1 hypervisors run directly on the hardware and Type 2 hypervisors run on an operating system. KVM is an example of a Type 1 hypervisor and VirtualBox is an example of a Type 2 hypervisor. A host operating system or host machine is an operating system that runs on a physical machine. A guest operating system is an operating system that runs on a virtual machine. A host machine is a physical machine that runs a hypervisor.

Emulation and virtualization are two different concepts used by hypervisors. Emulation is the process of running a software that mimics the behavior of a hardware. This software completely simulates the hardware. As you can imagine, emulation is slow because it has to simulate the hardware. On the other hand, virtualization is the process of running a software / operating system on a virtual machine by running the software directly on the physical hardware. In order to utilize virtualization, the CPU must support virtualization because the isolation is done by the CPU itself. In a virtualized environment, the software again works on a complete isolation without the need of simulating the hardware. If the host machine's CPU architecture is different than the guest machine's CPU architecture, then the hypervisor should use emulation. On the other hand, if virtualization is possible, virtualization should be preferred.

AWS IAM

AWS Roles

AWS SSO

AWS CLI

AWS EC2

EC2 is the short for Elastic Compute Cloud. It is an Aws microservice that provides virtual machines. A cloud hosted virtual machine is useful because you can access it from anywhere/anytime. A connection is needed to access the virtual machine. Opening a connection session is called SSH for Linux systems.

AWS RDS

In order to host a DBMS, you need to host the actual database software in a system. This is where AWS RDS comes into play. AWS RDS is a service that provides DBMS instances. As you expose your DBMS to the internet, you can access it from different sources.