AWS Compute - EC2 Demonstration

Launching an EC2 Instance on AWS

Scalable Virtual Computing Power in the AWS Cloud

What is an EC2 Instance?

Amazon EC2 provides resizable compute capacity in the cloud. In simple terms, an "instance" is a virtual server that runs on the AWS infrastructure. It allows you to run applications without having to purchase or maintain physical hardware.

EC2 instances are highly flexible; you can choose different configurations of CPU, memory, storage, and networking capacity based on the specific needs of your application. This is a primary example of Infrastructure as a Service (IaaS).

Steps to Launch an EC2 Instance

Launching an instance involves a series of configuration steps in the AWS Management Console:

  1. Choose an Amazon Machine Image (AMI): Select a template that contains the software configuration (operating system, application server, and applications) required to launch your instance (e.g., Amazon Linux, Ubuntu, or Windows).
  2. Choose an Instance Type: Select a hardware configuration. Types are grouped by use case, such as "General Purpose" (t2.micro), "Compute Optimized," or "Memory Optimized."
  3. Configure Instance Details: Define the network settings (VPC and Subnet), assign an IAM role for permissions, and set the number of instances you want to launch.
  4. Add Storage: Choose the size and type of your Amazon EBS (Elastic Block Store) volumes. This acts as the hard drive for your virtual server.
  5. Add Tags: Label your instance with key-value pairs (e.g., Name: WebServer-01) for easier management and billing tracking.
  6. Configure Security Group: Act as a virtual firewall for your instance to control incoming and outgoing traffic (e.g., opening Port 80 for HTTP or Port 22 for SSH).
  7. Review and Launch: Review your settings and select a Key Pair. The key pair is essential for securely connecting to your instance once it is running.

Common Use Cases

EC2 is versatile enough to support almost any workload. Key examples include:

Web Hosting

Running web servers (like Apache or Nginx) to host websites and web applications that can scale automatically based on traffic.

Development & Testing

Quickly spinning up and tearing down environments for developers to build and test code without permanent hardware costs.

Data Processing

Using "Compute Optimized" instances to perform batch processing, large-scale data analytics, or video encoding tasks.

EC2 Pricing Models

  • On-Demand: Pay for compute capacity by the second with no long-term commitments.
  • Reserved Instances: Provide a significant discount (up to 75%) compared to On-Demand pricing by committing to a 1 or 3-year term.
  • Spot Instances: Take advantage of unused EC2 capacity in the AWS cloud for up to a 90% discount, ideal for fault-tolerant tasks.

Role in Cloud Automation

AWS EC2 is a core component of Cloud Provisioning. Through tools like Auto Scaling and Elastic Load Balancing, EC2 instances can be automatically added or removed in response to changing application demand, ensuring high availability and cost-efficiency.