Overview of AWS and virtual machines
Amazon Web Services (AWS) provides on-demand cloud computing platforms and APIs to individuals, companies, and governments on a metered pay-as-you-go basis. AWS allows users to have at their disposal a full-fledged virtual cluster of computers, available all the time, through the internet. So in that sense, AWS provides access to virtual machines. However, AWS services go far beyond just virtual machines.
What is a virtual machine?
A virtual machine (VM) is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
A VM behaves exactly like a physical computer and contains its own CPU, memory, networking interface, and storage. The virtualization layer maps the VM resources to the actual physical hardware, while isolates them from each other.
VMs are implemented in software, thus many instances of VMs can be executed on the same machine. As a result, they offer cost savings in hardware utilization as the actual computer’s resources can be partitioned effectively to serve multiple users. Each VM runs its own operating system and the user has almost full control over the software environment.
The main AWS offering related to virtual machines is EC2 (Elastic Compute Cloud). EC2 provides scalable computing capacity that allows users to launch as many virtual servers as needed.
EC2 instances are actually virtual machines running on AWS infrastructure. Users can configure the instances with their choice of operating systems, network settings, and attached storage. The available configurations, called instance types, provide varying combinations of CPU, memory, storage, and networking capacity.
As EC2 instances are virtual machines, users have complete control over the software environment providing great flexibility. For example web developers can easily launch Linux virtual machines to host websites or developers can spin up Windows virtual machines to build applications.
To optimize costs and scalability, EC2 instances can be launched and terminated on demand. Billing is per second based on the selected instance configuration and consumed resources.
Is AWS only virtual machines?
While EC2 forms the core computing infrastructure, AWS offers much more than just virtual machines:
- Storage services – for data persistence like S3, Elastic Block Store, etc.
- Database services – managed SQL and NoSQL database engines
- Networking services – VPCs, load balancers etc
- Management services – access control, resource management, monitoring etc
- Application services – managed add-ons for real-time messaging, notification, workflow
- Developer services – build toolchain, code repositories, debugging
- Security services- for automation and management like IAM
- Analytics services – for processing data like EMR, Athena etc
- Machine learning services – for developers and data scientists to add intelligence
Additionally, AWS keeps expanding their service catalog constantly, currently offering over 200 services covering a wide spectrum. Most services integrate with each other, enabling developers to build scalable cloud-based applications that leverage AWS’s reliable infrastructure.
So while EC2 provides the virtual machine capability, AWS as a whole is far more than just virtual machines. AWS offers a complete, ever-growing cloud ecosystem combining compute power with integrated data storage, content delivery and other functionality.
- AWS offers on-demand access to resizable compute capacity through EC2 virtual machine instances
- EC2 allows launching as many Linux or Windows virtual machines as needed that run applications in a customer controlled software environment
- AWS provides much more than just virtual machines including storage, databases, networking, security, analytics and machine learning services
- Over 200 specialized services can be combined to build robust cloud solutions that leverage AWS’s proven infrastructure
- AWS platform keeps expanding with new capabilities making it easier to move more workloads to the cloud
Benefits of Using AWS Virtual Machines
Launching virtual machines on AWS EC2 offers valuable advantages:
- Choose from a wide variety of instance types for different performance needs
- Select preferred operating system images like Ubuntu, RHEL, Windows Server
- Customize VMs by attaching storage volumes and configuring network access
- Scale up by switching to more powerful instance type
- Scale out quickly to thousands of VMs to manage increased loads
- Use auto-scaling groups to dynamically launch or terminate VMs
- AWS data centers provide proven high reliability
- Move across availability zones or regions to remain resilient
- EC2 auto recovery and auto scaling support high availability
- Isolated secure execution environments for each VM
- Assign granular access roles between resources
- VPC networks, firewalls and encryption ensure protection
- Pay only for the compute time consumed
- Stop or terminate VMs when not in use to optimize costs
- Use Spot instances for unused capacity available at discounts
- No upfront investment in hardware needed
- Quickly setup development or test environments spanning various configurations
- Modern application architectures like microservices simplify deployment of new features
- Expand or shrink resources through public cloud APIs as needed
- Leverage AWS services like machine learning readily through integration
- Focus efforts on creating business value rather than infrastructure management
Comparison of AWS, Virtual Machines and Bare Metal Servers
|Bare Metal Servers
|No control over actual servers
|No control over actual servers
|Full control of purchased hardware
|Shared with other customers
|Can be shared or dedicated
|Dedicated single tenant hardware
|Rev up to thousands of instances quickly
|Manual vertical and horizontal scaling
|Limited to fixed resources purchased
|Multiple configurations available as images or containers
|Typically fixed configurations per host server
|Fully customized installations
|High redundancy through regions and availability zones
|Dependent on reliability of host hardware
|Custom redundancy needs additional hardware
|Start up Time
|Typically seconds with machine images
|Seconds to minutes per VM
|Longer deployment cycles measured in days
|Pay per second pricing allows optimization
|Lower than bare metal for fractional usage
|Higher overall since resources cannot be deprovisioned
|Fully managed infrastructure but guest OS is user controlled
|Self administration like bare metal
|Full control also demands more personnel
Bare Metal Servers
Bare metal servers refer to physical servers where users can install and control the entire software stack ranging from operating system to applications. Renting dedicated hardware was the traditional model before cloud computing became popular.
Bare metal servers provide very high control, customization, dedicated resources and performance. However, they demand significant investments and technical personnel to deploy, administer, scale and make them resilient. Hardware failures can severely impact service availability necessitating redundant servers and failover.
Bare metal is still used today for niche workloads that need high performance, customization or avoid multi-tenancy. The costs, reliability and inflexibility makes it hard for most general workloads.
Virtual machines provide a middle ground by partitioning resources on powerful bare metal servers into separate guest executions environments. Multiple VMs can reside on the same physical host supported by a hypervisor software layer like Xen or VMware.
VMs offer many benefits like isolation, customization and ability to emulate varied configurations. By allowing multiple workloads per server, hardware utilization is improved often providing better economies overall.
On the other hand configuration changes require coordinated downtime across potentially dependent VMs. Scaling capacity requires manual intervention to provision, migrate and optimize additional VMs. Reliability depends on redundancy implemented across the servers and data centers hosting the VMs, driving up complexity significantly.
AWS Virtual Machines
The AWS shared responsibility model offloads all physical infrastructure to AWS operations teams to maintain maximum uptime and security. Customers focus exclusively on their guest workloads and scaling elasticity rules.
Easy API integrations with complementary services make it simpler for customers to build cloud native applications and manage deployments. By handling undifferentiated heavy lifting like procurement, maintenance, scaling, patching, compliance etc, AWS allows customers to focus innovation where it matters most.
Pay per use eliminates wasted over provisioning while the consumption based savings often provide better TCO even compared to bare metal deployments. By leveraging AWS, businesses can get the best combination of control, reliability, innovation velocity and economics.
Use Cases Showcasing Benefits
Here we outline some common usage scenarios that can leverage AWS EC2 benefits:
Scalable Web Applications
- Launch EC2 instances in Auto Scaling Groups across AZs
- Add Elastic Load Balancer to distribute traffic
- Scale out seamlessly to meet demand spikes
- Pay only for additional instances spun up automatically
- Decomposed services can be sized and scaled independently
- Achieve resiliency by replication and graceful degradation
- Accelerate feature velocity through rapid iterations
- Launch new versions with no downtime using Blue/Green pattern
Big Data Analytics
- Process data using transient clusters of EC2 instances
- Run Apache Spark jobs on hundreds of VMs in parallel
- Analyze TBs of data efficiently with scale-out architecture
- Pay per second – analyze data then shutdown cluster
- Launch many Windows EC2 instances for parallel encodes
- Achieve faster turnaround times through scale
- Handle workflow surges seamlessly
- Use Spot instances for massive savings over fixed in-house render farms
Software Development & Testing
- Provision diverse VM configurations instantly for development needs
- Accelerate debug cycles with local reproduction of issues
- Create exact replicas of target production environments using VM images
- Establish highly realistic staging environments using production data copies
Certain key architectural patterns demonstrate how to build robust and scalable solutions using AWS:
Break large applications into individual functions that are invoked based on triggering specific events:
- Serverless components handle events through APIs like Lambda and DynamoDB
- Loose coupling and high cohesion between functions prevent cascading failures
- Scale each component independently as needed
Decompose monoliths into self-contained microservices handling discrete tasks:
- Small teams own development and operation of each service
- Accelerate feature velocity through rapid iteration cycles
- Scale out based on usage per service – only pay for what runs
Data Lake Architectures
Centralize storage of all information assets providing unified access:
- Store all data as is in native formats in highly scalable S3
- Use metadata to tag, search, connect and process various data
- Analyze using SQL or Spark without transforming or moving data
Using combinations of serverless functions, microservices and data lakes solutions can achieve scale, simplicity and resilience efficiently.
AWS provides highly flexible and scalable computing capacity using EC2 virtual machine instances. By offering much more than just VMs including 200+ services spanning storage, network, databases, analytics, security, AWS enables customers to build complete cloud solutions.
The public cloud functionality combined with usage based pricing greatly accelerates innovation by removing undifferentiated heavy lifting. Workloads ranging from cloud-native apps to microservices and big data systems can leverage AWS to deliver customer value rapidly at scale.
So while the virtual machine remains the fundamental building block uniting compute, memory and storage – AWS offers a full spectrum cloud ecosystem delivering simplicity, economy and innovation on top of it.
Frequently Asked Questions
Q1: Does AWS provide dedicated physical servers?
No, AWS uses extensive virtualization so customers share the underlying hardware. Certain instance types do run on dedicated hardware to assure capacity and performance. For single-tenant physical server control, AWS Outposts or EC2 Dedicated Hosts would be required.
Q2: Can AWS virtual machines be resized?
Yes, EC2 instance storage-optimized families like M5 can scale up and down through restart while retaining IP address and data on attached EBS volumes. Limitations apply based on instance families, operating systems etc.
Q3: How to decide between Virtual Machines and Containers on AWS?
Choose VMs when you need full operating systems functionality or compatibility with software packages targeting common OS platforms like Linux or Windows. Prefer containers for microservices apps built using portable components grouped logically.
Q4: Is data persisted when EC2 virtual machine stops?
By default no, the VM root volume gets wiped after stop. To persist data enable termination protection and attach additional EBS volumes. Boot volumes and data can be snapshotted to S3 for reuse later.
Q5: Can Hyper-V, VMware or VirtualBox virtual machines be migrated to AWS?
Yes, AWS provides tools like VM Import/Export to simplify migrations of virtual machine images from other hypervisors. Some conversions maybe needed to ensure compatibility with hardware used by AWS hosts.
Q6: How can EC2 virtual machines be accessed securely?
Use SSH (Linux) or RDP (Windows) over SSL/TLS for secure remote access. Control permissions with IAM roles. For web applications, use a bastion host and avoid exposing EC2 instances directly. Client VPN can also be configured for private access.
Q7: Is AWS better than traditional virtualization?
Yes, AWS simplifies administration by fully managing infrastructure. Integrated services deliver advanced functionality faster. Auto scaling, object storage, load balancing make cloud VMs easier to scale and integrate. Pay per use reduces TCO by right sizing usage.
Q8: Why are bare metal servers still used today?
Some niche applications like high performance computing, legacy licenses or custom hardware need still leverage bare metal. But for mainstream workloads, cloud VMs tend to provide better TCO. Bare metal remains an option but requires more ops overhead.
Q9: How can reliability be improved for EC2 instances?
Leverage multi-AZ and regional redundancies. Use autoscaling with ELB to replace failed instances automatically. Choose instance types like z1d giving access to three physical hosts. Backup EBS volumes and data across zones.
Q10: Can multiple virtual machines be managed together?
Yes. AWS supports cluster placements groups and spread placement groups to collocate VMs or distribute them across hardware. Auto Scaling Groups can scale out farms of identical instances together.
Q11: Is AWS cheaper than other cloud providers?
AWS pricing is very competitive but it depends on region, instance type & OS choice. AWS offers more options like spot instances and savings plans to optimize cloud spend. Overall AWS, Microsoft Azure and Google Cloud have comparable pricing.
Q12: What elements influence the performance of an EC2 instance?
CPU, memory, network and storage configs determine the performance profile. Instance families optimized for different needs. Placement on the underlying hardware affects tenant neighbors. Check monitoring metrics to size correctly.
Q13: How to decide which AWS region to deploy EC2 instances in?
Choose region closest to your customers ensure lowest latency. Locate instances near other integrated AWS services being leveraged. Ensure compliance, data sovereignty needs are met. Evaluate data transfer charges across regions.
Q14: Can I resize an EBS volume attached to an EC2 instance?
Yes, EBS volumes can be resized on the fly or detached and resized while instance is running. Volumes can be striped or tiered into RAID like configurations for performance. EBS snapshot backups enable portability.
Q15: Is Amazon Machine Image (AMI) required to launch an EC2 Instance?
No. AWS provides curated AMIs with OS and software pre-configured to simplify launching instances. But custom VM images can also be created from scratch and registered as private AMIs instead.
Q16: How to reduce costs for development EC2 instances?
Leverage savings plans for usage commitments and spot instances for unused capacity. Remember to terminate ephemeral instances promptly. Delete AMIs and snapshots not needed. Right size instance type to workload. Consolidate multiple workloads where possible.
Q17: Can containers provide cost savings over EC2 instances?
Yes containers can improve utilization further through binpacking but have OS limitations. Combined container and VM approaches optimize complementary workloads. Serverless functions can also reduce costs by completely removing the need to run VMs.
Q18: How can I live migrate an EC2 instance across hosts?
Currently AWS does not support live migration of VM memory state across physical hosts. Additional instances launched can be load balanced to replace the original instance prior to termination.
Q19: Does AWS offer mainframe style virtual machines?
Yes. Via EC2 z1d instances powered by custom AWS infrastructure leveraging Intel Xeon Scalable processors to deliver modern mainframe capabilities on the cloud cost-effectively.
Q20: Can contend tamper protection assure EC2 instance image integrity?
Boot Integrity Measurement in nitro subsystem validates AMI has not been altered before launch. Nitro guards memory encryption keys and prevents modifications to BIOS, firmware and Intel processors on running instances.