AWS CLI Documentation
This documentation provides a quick reference for installing the AWS CLI, configuring credentials, managing EC2 instances, working with Security Groups, opening ports, changing regions, and displaying information in readable formats.
All commands use a VS Code–styled terminal theme for consistency.
Introduction
AWS CLI (Amazon Web Services Command Line Interface) allows you to manage AWS services directly from the terminal. It supports EC2, S3, IAM, RDS, Lambda, CloudFormation, and many other AWS services.
Installation on Windows
Download and install the latest AWS CLI for Windows.
# Download AWS CLI MSI Installer (64-bit)
https://awscli.amazonaws.com/AWSCLIV2.msi
# Install using MSI
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
# Silent installation
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
# Verify installation
aws --version
https://awscli.amazonaws.com/AWSCLIV2.msi
# Install using MSI
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
# Silent installation
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi /qn
# Verify installation
aws --version
AWS Configuration
# Display current AWS configuration
aws configure list
# Check active AWS account
aws sts get-caller-identity
# Change default region
aws configure set region af-south-1
aws configure list
# Check active AWS account
aws sts get-caller-identity
# Change default region
aws configure set region af-south-1
EC2 Instance Management
# List all instances
aws ec2 describe-instances
# List running instances only
aws ec2 describe-instances --filters Name=instance-state-name,Values=running
# Start an instance
aws ec2 start-instances --instance-ids i-xxxxxxx
# Stop an instance
aws ec2 stop-instances --instance-ids i-xxxxxxx
# Reboot an instance
aws ec2 reboot-instances --instance-ids i-xxxxxxx
# Terminate an instance
aws ec2 terminate-instances --instance-ids i-xxxxxxx
# Get Public IP address
aws ec2 describe-instances --instance-ids i-xxxxxxx \
--query "Reservations[*].Instances[*].PublicIpAddress" --output text
aws ec2 describe-instances
# List running instances only
aws ec2 describe-instances --filters Name=instance-state-name,Values=running
# Start an instance
aws ec2 start-instances --instance-ids i-xxxxxxx
# Stop an instance
aws ec2 stop-instances --instance-ids i-xxxxxxx
# Reboot an instance
aws ec2 reboot-instances --instance-ids i-xxxxxxx
# Terminate an instance
aws ec2 terminate-instances --instance-ids i-xxxxxxx
# Get Public IP address
aws ec2 describe-instances --instance-ids i-xxxxxxx \
--query "Reservations[*].Instances[*].PublicIpAddress" --output text
Security Groups
# List all Security Groups
aws ec2 describe-security-groups
# View inbound rules
aws ec2 describe-security-groups --group-ids sg-xxxxxxx \
--query "SecurityGroups[*].IpPermissions"
# Create Security Group
aws ec2 create-security-group \
--group-name my-sg \
--description "My Security Group"
aws ec2 describe-security-groups
# View inbound rules
aws ec2 describe-security-groups --group-ids sg-xxxxxxx \
--query "SecurityGroups[*].IpPermissions"
# Create Security Group
aws ec2 create-security-group \
--group-name my-sg \
--description "My Security Group"
Open Firewall Ports
# Allow HTTP
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 80 --cidr 0.0.0.0/0
# Allow HTTPS
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 443 --cidr 0.0.0.0/0
# Allow SSH from your IP only
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 22 --cidr YOUR_IP/32
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 80 --cidr 0.0.0.0/0
# Allow HTTPS
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 443 --cidr 0.0.0.0/0
# Allow SSH from your IP only
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 22 --cidr YOUR_IP/32
Remove Security Group Rules
# Remove HTTP access
aws ec2 revoke-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 80 --cidr 0.0.0.0/0
aws ec2 revoke-security-group-ingress \
--group-id sg-xxxxxxx \
--protocol tcp --port 80 --cidr 0.0.0.0/0
AWS Regions
# List all AWS Regions
aws ec2 describe-regions
# Query a specific region
aws ec2 describe-instances --region af-south-1
aws ec2 describe-regions
# Query a specific region
aws ec2 describe-instances --region af-south-1
Display Output as Table
# Display instance summary in table format
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]" \
--output table
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]" \
--output table
Important Notes
- Run aws configure before executing AWS CLI commands.
- Keep your Access Key and Secret Key private.
- Always verify your active account using aws sts get-caller-identity.
- Restrict SSH access (port 22) to your own IP whenever possible.
- Terminating an EC2 instance is permanent unless termination protection is enabled.
- Most AWS CLI commands support --region and --profile options.