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 [email protected]
- 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