| name | aws-ops |
| description | AWS operations, queries, and resource management |
| homepage | https://docs.aws.amazon.com/cli/ |
| metadata | {"emoji":"☁️","version":"1.0.0","author":"Gourav Shah","license":"MIT","requires":{"bins":["aws"]},"tags":["aws","cloud","infrastructure","sre"]} |
AWS Operations
Common AWS CLI operations for infrastructure management.
When to Use This Skill
Use this skill when:
- Managing AWS resources
- Querying resource state
- Troubleshooting AWS issues
- Cost investigation
Setup & Authentication
Check Current Identity
aws sts get-caller-identity
aws configure get region
Switch Profile/Region
export AWS_PROFILE=production
aws s3 ls --profile production
export AWS_DEFAULT_REGION=us-west-2
List Profiles
aws configure list-profiles
EC2 Instances
List Instances
aws ec2 describe-instances \
--query 'Reservations[].Instances[].[InstanceId,State.Name,InstanceType,PrivateIpAddress,Tags[?Key==`Name`].Value|[0]]' \
--output table
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,PrivateIpAddress,Tags[?Key==`Name`].Value|[0]]' \
--output table
aws ec2 describe-instances \
--filters "Name=tag:Environment,Values=production"
Instance Actions
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 reboot-instances --instance-ids i-1234567890abcdef0
aws ec2 get-console-output --instance-id i-1234567890abcdef0
Instance Details
aws ec2 describe-instances --instance-ids i-1234567890abcdef0
aws ec2 describe-instances --instance-ids i-1234567890abcdef0 \
--query 'Reservations[].Instances[].SecurityGroups'
S3 Storage
List Buckets & Objects
aws s3 ls
aws s3 ls s3://bucket-name/
aws s3 ls s3://bucket-name/ --human-readable --summarize
aws s3 ls s3://bucket-name/ --recursive
Copy Files
aws s3 cp file.txt s3://bucket-name/
aws s3 cp s3://bucket-name/file.txt ./
aws s3 sync ./local-dir s3://bucket-name/prefix/
aws s3 sync ./local-dir s3://bucket-name/prefix/ --delete
Bucket Info
aws s3api get-bucket-location --bucket bucket-name
aws s3 ls s3://bucket-name --recursive --summarize | tail -2
EKS (Kubernetes)
List Clusters
aws eks list-clusters
Update Kubeconfig
aws eks update-kubeconfig --name cluster-name --region us-east-1
aws eks update-kubeconfig --name cluster-name --profile production
Cluster Info
aws eks describe-cluster --name cluster-name
CloudWatch Logs
List Log Groups
aws logs describe-log-groups \
--query 'logGroups[].logGroupName'
Tail Logs
aws logs tail /aws/lambda/function-name --follow
aws logs get-log-events \
--log-group-name /aws/lambda/function-name \
--log-stream-name 'stream-name' \
--limit 50
Search Logs (Insights)
aws logs start-query \
--log-group-name /aws/lambda/function-name \
--start-time $(date -d '1 hour ago' +%s) \
--end-time $(date +%s) \
--query-string 'fields @timestamp, @message | filter @message like /ERROR/ | limit 20'
aws logs get-query-results --query-id "query-id-here"
IAM
Current User/Role
aws sts get-caller-identity
List Users/Roles
aws iam list-users --query 'Users[].[UserName,CreateDate]' --output table
aws iam list-roles --query 'Roles[].[RoleName,CreateDate]' --output table
Check Permissions
aws iam simulate-principal-policy \
--policy-source-arn arn:aws:iam::123456789:user/myuser \
--action-names s3:GetObject \
--resource-arns arn:aws:s3:::bucket-name/*
Lambda
List Functions
aws lambda list-functions \
--query 'Functions[].[FunctionName,Runtime,LastModified]' \
--output table
Invoke Function
aws lambda invoke \
--function-name my-function \
--payload '{"key": "value"}' \
response.json
cat response.json
View Logs
aws logs tail /aws/lambda/my-function --follow
RDS
List Databases
aws rds describe-db-instances \
--query 'DBInstances[].[DBInstanceIdentifier,DBInstanceStatus,Engine,DBInstanceClass]' \
--output table
Database Status
aws rds describe-db-instances \
--db-instance-identifier my-database
Cost & Billing
Quick Cost Check
aws ce get-cost-and-usage \
--time-period Start=$(date -d "$(date +%Y-%m-01)" +%Y-%m-%d),End=$(date +%Y-%m-%d) \
--granularity MONTHLY \
--metrics BlendedCost \
--query 'ResultsByTime[].Total.BlendedCost'
Cost by Service
aws ce get-cost-and-usage \
--time-period Start=$(date -d "$(date +%Y-%m-01)" +%Y-%m-%d),End=$(date +%Y-%m-%d) \
--granularity MONTHLY \
--metrics BlendedCost \
--group-by Type=DIMENSION,Key=SERVICE \
--query 'ResultsByTime[].Groups[].[Keys[0],Metrics.BlendedCost.Amount]' \
--output table
Troubleshooting
Common Issues
| Issue | Check | Command |
|---|
| Access Denied | IAM permissions | aws sts get-caller-identity |
| Resource not found | Region mismatch | aws configure get region |
| Rate limiting | API throttling | Add --debug flag |
| Credential issues | Profile/env vars | aws configure list |
Debug Mode
aws s3 ls --debug 2>&1 | head -50
Quick Reference
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[InstanceId,Tags[?Key==`Name`].Value|[0]]' --output table
aws s3api list-buckets --query 'Buckets[].Name' --output text | xargs -I {} sh -c 'echo -n "{}: "; aws s3 ls s3://{} --recursive --summarize 2>/dev/null | tail -1'
aws logs tail /aws/lambda/FUNCTION --since 1h --filter-pattern "ERROR"
aws ce get-cost-and-usage --time-period Start=$(date +%Y-%m-01),End=$(date +%Y-%m-%d) --granularity MONTHLY --metrics BlendedCost
Related Skills
- cost-optimization: For detailed cost analysis
- terraform-workflow: For IaC management
- incident-response: For AWS-related incidents