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
- Hosting environments for your apps
- High-performance computing
- Computing with more specific use cases like:
- GPU Heavy Tasks
- High Memory Requirements
- 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.
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.
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.
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.
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
- Books
- Programming Amazon Ec2 (O’Reilly)
- Videos
- Amazon EC2 Fundamentals (LinkedIn)
- Managing AWS EC2 Instances (Pluralsight)
Other Learning
- How Do I Learn Effectively?
- Learn 3D Graphics
- Learn Amazon Athena
- Learn Asymptotic Notations
- Learn AWS Amplify
- Learn Color Theory
- Learn Data Visualization
- Learn Design Systems
- Learn ECS
- Learn GitHub
- Learn How To Prioritize
- Learn Java
- Learn Java Coding Challenges
- Learn JavaScript
- Learn jq
- Learn Kubernetes
- Learn Python
- Learn Rendanheyi
- Learn SignalFx
- Learn Software Architecture
- Learn Software Design Patterns
- Learn Structurizr
- Learn systemd
- Learn Terraform