The Basics

Learn EC2 basics, concepts, and more.

Amazon EC2 is the core computing service provided by Amazon Web Services. It’s Virtual Machines in the cloud.

If you have been using Amazon Web Services for a while, you’ve undoubtedly encountered EC2. It is a central service used by Amazon LightSail and numerous other offerings.

Primary Use Cases

  1. Hosting environments for your apps
  2. High-performance computing
  3. Computing with more specific use cases like:
    1. GPU Heavy Tasks
    2. High Memory Requirements
    3. Burstable compute

Launch Template

Defines the launch parameters for an EC2 instance.

It includes the ID of the Amazon Machine Image (AMI), the instance type, a key pair, security groups, and other parameters used to launch EC2 instances.

Use a launch template instead of the deprecated launch configuration.

Auto Scaling Groups

A definition of how many instances you want to run within a cluster, along with thresholds on when to expand to the size of the cluster.

AWS::AutoScaling::AutoScalingGroup

Instances

EC2 Instances are central to the ecosystem. To use EC2, you will launch an EC2 instance from an EC2 image. An EC2 image contains a snapshot of an operating system like Linux with everything configured as it was upon snapshot creation.

AWS::EC2::Instance

Images

Amazon Machine Images (AMI) are prepackaged in numerous ways to meet a legion of use cases. Public images are found within the AWS console’s AMI search feature. If you have an AWS account, you can access the search feature.

AWS::ImageBuilder::Image

Security Groups

Security groups are a collection of firewall rules that secure your instances from nefarious hackers. If you’re familiar with firewalls, you will be familiar with security groups. Apply the principle of least privilege and only grant access to systems that require access to your EC2 instances.

AWS::EC2::SecurityGroup

Other Concepts

Learn EC2 concepts you’ll need to understand when using EC2.

Key Pairs

Use key pairs to gain secure shell access on your EC2 instance.

Create a key pair with this command.

key_name=your-key-name
aws ec2 create-key-pair --key-name "${key_name}" | jq -r '.KeyMaterial' >| "${key_name}.pem"

Volumes

Attach disks to your EC2 instances to expand space and meet various use cases like high-performance read/write disk access.

AWS::EC2::Volume

Load Balancers

Scale up your instances by routing traffic to multiple instances.

AWS::ElasticLoadBalancing::LoadBalancer

Snapshots

Create a moment-in-time snapshot of your EC2 instances.

Create a snapshot with this command.

aws ec2 create-snapshot --volume-id <VolumeId> --description "My Snapshot"

Capacity Reservations

Save money by reserving your EC2 instances in advance.

Learn EC2 - Beyond the Basics