LinuxCommandLibrary

aws-ec2

Manage Amazon EC2 instances from command line

TLDR

Display information about a specific instance

$ aws ec2 describe-instances --instance-ids [instance_id]
copy

Display information about all instances
$ aws ec2 describe-instances
copy

Display information about all EC2 volumes
$ aws ec2 describe-volumes
copy

Delete an EC2 volume
$ aws ec2 delete-volume --volume-id [volume_id]
copy

Create a snapshot from an EC2 volume
$ aws ec2 create-snapshot --volume-id [volume_id]
copy

List available AMIs (Amazon Machine Images)
$ aws ec2 describe-images
copy

Show list of all available EC2 commands
$ aws ec2 help
copy

Display help for specific EC2 subcommand
$ aws ec2 [subcommand] help
copy

SYNOPSIS

aws ec2 SUBCOMMAND [global-options] [subcommand-options] [arguments]

PARAMETERS

--debug
    Turn on debug logging

--endpoint-url TEXT
    Override default endpoint URL

--no-verify-ssl
    Disable SSL certificate verification

--cli-input-json TEXT
    Perform operation from JSON file

--cli-auto-prompt
    Automatically prompt for missing parameters

--no-cli-pager
    Disable cli pager for output

--region TEXT
    AWS region (e.g., us-east-1)

--output TEXT
    Output format: json|text|table

--query TEXT
    JMESPath expression to filter output

--profile TEXT
    Use specific profile from credentials file

--dry-run
    Dry run; no changes made (EC2-specific)

--generate-cli-skeleton VERSION
    Prints JSON skeleton for command

DESCRIPTION

The aws ec2 command is a core component of the AWS Command Line Interface (CLI), a toolset for interacting with Amazon Web Services from the Linux terminal. It enables users to manage Elastic Compute Cloud (EC2) resources, including virtual servers (instances), storage volumes, networking (VPCs, subnets, security groups), key pairs, images (AMIs), and more.

Common operations include launching instances with run-instances, querying resource states via describe-instances or describe-volumes, modifying instances (start-instances, stop-instances, terminate-instances), attaching/detaching volumes, and configuring auto-scaling groups. It supports filtering results with JMESPath queries, pagination for large datasets, and dry-run modes for testing.

Requires AWS CLI installation (via pip, apt, or binaries), configured credentials (access key ID, secret access key, region), and appropriate IAM permissions. Outputs in JSON, text, or table formats. Operations may incur AWS charges; always review billing.

CAVEATS

Requires AWS CLI v2+ installed and configured (aws configure). IAM policies must allow EC2 actions. Regional availability varies; incurs costs for resources. Not idempotent for all ops; use --dry-run. Large queries may hit API limits.

COMMON SUBCOMMANDS

run-instances: Launch EC2 instances.
describe-instances: View instance details.
stop-instances: Stop instances.
create-key-pair: Generate SSH keys.
describe-security-groups: List security groups.

CONFIGURATION

Run aws configure for credentials, default region (e.g., us-west-2), output. Use profiles for multi-account: aws ec2 describe-instances --profile prod.

AUTHENTICATION

Supports access keys, IAM roles (EC2 metadata), SSO, MFA. Set AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY env vars.

HISTORY

Debuted in AWS CLI v1 (2013) as unified service interface replacing ec2-api-tools. v2 (2020) improved speed (4x faster), added session plugins, Markdown docs. Ongoing updates align with EC2 features like Nitro instances, Graviton processors.

SEE ALSO

aws(1), aws s3(1), aws iam(1)

Copied to clipboard