This repository contains a collection of AWS CLI commands for managing various AWS services including EC2, EBS, S3, VPC, IAM, Lambda, RDS, and SNS. Each section is organized by service type for easy reference.
🎥 Video link: 70 AWS CLI Commands
Manage Amazon EC2 instances efficiently with these commands.
- Retrieve an EC2 Instance ID
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" --output text
- Stop an EC2 Instance
aws ec2 start-instances --instance-ids <instance_id>
- Start an EC2 Instance
aws ec2 start-instances --instance-ids <instance_id>
- Terminate an EC2 Instance
aws ec2 terminate-instances --instance-ids <instance_id>
- Launch an EC2 Instance
aws ec2 run-instances --image-id <ami-id> --count 1 --instance-type <instance-type> --key-name <key-pair-name> --security-group-ids <security-group-name> --subnet-id <subnet-id>
- Modify an Instance Type
aws ec2 modify-instance-attribute --instance-id <instance_id> --instance-type "{"Value": "t2.large"}"
- Describe EC2 Instances with Tags
aws ec2 describe-instances --filters "Name=tag:Name,Values=dev-instance"
- List All EC2 Instances in Running State
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].[InstanceId,InstanceType,State.Name,PublicIpAddress]" --output table
- Get Console Output for an Instance
aws ec2 get-console-output --instance-id <instance_id>
Manage Amazon EBS volumes effectively with these commands
- Create an EBS Volume
aws ec2 create-volume --size 10 --volume-type gp3 --availability-zone us-east-1a
- Attach an EBS Volume to an Instance
aws ec2 attach-volume --volume-id <volume_id> --instance-id <instance_id> --device /dev/sdf
- Detach an EBS Volume
aws ec2 detach-volume --volume-id <volume_id>
- Delete an EBS Volume
aws ec2 delete-volume --volume-id <volume_id>
- Describe an EBS Volume
aws ec2 describe-volumes --volume-ids <volume_id>
- List EBS Volumes in Available State
aws ec2 describe-volumes --query "Volumes[?State!='in-use'].{ID:VolumeId, Size:Size, State:State}" --output table
- Modify an EBS Volume
aws ec2 modify-volume --volume-id <volume_id> --size 20
- Describe EBS Volume by Tags
aws ec2 describe-volumes --filters "Name=tag:Name,Values=MyVolume"
Handle AWS EBS snapshots efficiently with these commands.
- Create a Snapshot
aws ec2 create-snapshot --volume-id <volume_id> --description "My snapshot"
- List All Snapshots
aws ec2 describe-snapshots --owner-ids 123456789012
- Delete a Specific Snapshot
aws ec2 delete-snapshot --snapshot-id <snapshot_id>
- Copy a Snapshot from One Region to Another
aws ec2 copy-snapshot --source-region us-east-1 --source-snapshot-id <snapshot_id> --destination-region us-west-2 --description "Snapshot copy to us-west-2"
- Modify Snapshot Permission
aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_id> --attribute createVolumePermission --operation-type add --user-ids 123456789012
- List Snapshot Based on Specific Tags
aws ec2 describe-snapshots --filters "Name=tag:Name,Values=MyProject"
Manage Amazon S3 buckets and objects efficiently with these commands:
- Create an S3 Bucket
aws s3 mb s3://mybucket
- List all S3 Buckets
aws s3 ls
- Upload a File to an S3 Bucket
aws s3 cp localfile.txt s3://mybucket/
- Delete a Bucket and All Its Contents
aws s3 rb s3://mybucket --force
- List Objects in an S3 Bucket
aws s3 ls s3://mybucket --recursive
- Copy an Object Between S3 Buckets
aws s3 cp s3://mybucket1/myobject.txt s3://mybucket2/myobject.txt
- Delete an Object in an S3 Bucket
aws s3 rm s3://mybucket/myobject.txt
- Enable Versioning in an S3 Bucket
aws s3api put-bucket-versioning --bucket mybucket --versioning-configuration Status=Enabled
Efficiently manage your AWS Virtual Private Cloud (VPC) environments with these commands:
- Create a VPC
aws ec2 create-vpc --cidr-block 10.0.0.0/16
- Get the List of VPC IDs
aws ec2 describe-vpcs --query 'Vpcs[*].VpcId' --output text
- Delete a Specific VPC
aws ec2 describe-vpcs --query 'Vpcs[*].VpcId' --output text
- Create a Subnet
aws ec2 create-subnet --vpc-id vpc-1234abcd --cidr-block 10.0.1.0/24
- Create an Internet Gateway and Attach to VPC
aws ec2 create-internet-gateway aws ec2 attach-internet-gateway --vpc-id vpc-1234abcd --internet-gateway-id igw-1234abcd
- Create a Route Table and Associate It with Subnet
aws ec2 create-route-table --vpc-id vpc-1234abcd aws ec2 associate-route-table --route-table-id rtb-1234abcd --subnet-id subnet-5678efgh
- Modify VPC Attribute and Enable DNS Hostname
aws ec2 modify-vpc-attribute --vpc-id vpc-1234abcd --enable-dns-hostnames "{\"Value\":true}"
- Create a Security Group in a VPC
aws ec2 create-security-group --group-name mySecurityGroup --description "My security group" --vpc-id vpc-1234abcd
- Add a Rule in Security Group
aws ec2 authorize-security-group-ingress --group-id sg-1234abcd --protocol tcp --port 22 --cidr 0.0.0.0/0
- Create a NAT Gateway
aws ec2 create-nat-gateway --subnet-id subnet-1234abcd --allocation-id eip-abcd1234
- Change the Security Group of an EC2 Instance
aws ec2 modify-instance-attribute --instance-id <instance_id> --groups sg-98765432 sg-87654321
Simplify identity and access management in AWS with these IAM operations:
- Create an IAM User
aws iam create-user --user-name myUser
- List IAM Users
aws iam list-users --query 'Users[*].UserName' --output text
- Attach a Policy to an IAM User
aws iam attach-user-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --user-name myUser
- Delete an IAM User
aws iam delete-user --user-name myUser
- Create an Access Key and Secret Key for an IAM User
aws iam create-access-key --user-name myUser
- Deactivate User Key
aws iam update-access-key --access-key-id AKIAIOSFODNN7EXAMPLE --user-name myUser --status Inactive
Efficiently manage your AWS Lambda functions with these straightforward commands:
- Create a Lambda Function
aws lambda create-function --function-name myFunction --runtime nodejs12.x --role arn:aws:iam::123456789012:role/lambda-role --handler index.handler --zip-file fileb://function.zip
- List Lambda Functions
aws lambda list-functions
- Invoke a Lambda Function
aws lambda invoke --function-name myFunction --payload '{"key": "value"}' response.json
- Delete a Lambda Function
aws lambda delete-function --function-name myFunction
- Update Lambda Function
aws lambda update-function-code --function-name myFunction --zip-file fileb://function.zip
Efficiently manage your Amazon RDS instances with these commands:
- Create a Database Instance
aws rds create-db-instance --db-instance-identifier mydbinstance --allocated-storage 20 --db-instance-class db.m1.small --engine mysql --master-username masteraws --master-user-password masterpassword
- List All RDS Instances
aws rds describe-db-instances
- Delete a Database Instance (Skip Final Snapshot)
aws rds delete-db-instance --db-instance-identifier mydbinstance --skip-final-snapshot
- Modify DB Instance
aws rds modify-db-instance --db-instance-identifier mydbinstance --db-instance-class db.m4.large --apply-immediately
- Take a DB Snapshot
aws rds create-db-snapshot --db-instance-identifier mydbinstance --db-snapshot-identifier mydbsnapshot
- Restore DB Snapshot
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier newdbinstance --db-snapshot-identifier mydbsnapshot
- Modify DB Instance Retention Policy
aws rds modify-db-instance --db-instance-identifier mydbinstance --backup-retention-period 7 --apply-immediately
- Promote a Read Replica to Standalone Instance
aws rds promote-read-replica --db-instance-identifier myreadreplica
Manage Amazon Simple Notification Service (SNS) effectively with these commands:
- Create a New SNS Topic
aws sns create-topic --name myTopic
- Subscribe an Email Address to SNS Topic
aws sns subscribe --topic-arn arn:aws:sns:us-west-2:123456789012:myTopic --protocol email --notification-endpoint example@example.com
- Publish a Message to Specific Topic
aws sns publish --topic-arn arn:aws:sns:us-west-2:123456789012:myTopic --message "Hello world"
- Delete a SNS Topic
aws sns delete-topic --topic-arn arn:aws:sns:us-west-2:123456789012:myTopic
Effectively monitor and manage your AWS resources with these CloudWatch commands:
- Create a CloudWatch Alarm
aws cloudwatch put-metric-alarm --alarm-name HighCPUUtilization --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 80 --comparison-operator GreaterThanOrEqualToThreshold --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --evaluation-periods 2 --alarm-actions arn:aws:sns:us-west-2:123456789012:myTopic
- Delete a CloudWatch Alarm
aws cloudwatch delete-alarms --alarm-names HighCPUUtilization
- Get Data About Specific Metric in a Given Time Frame
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --start-time 2021-01-01T00:00:00Z --end-time 2021-01-02T00:00:00Z --period 3600 --statistics Average --dimensions Name=InstanceId,Value=i-0123456789abcdef0
- Describe Alarm History of a Specific Alarm
aws cloudwatch describe-alarm-history --alarm-name HighCPUUtilization
- Manually Change the State of an Alarm for Testing Purposes
aws cloudwatch set-alarm-state --alarm-name "MyAlarm" --state-reason "Manual trigger for testing" --state-value ALARM