Dicas para o AWSCLI

Conjunto de dicas interessantes para se pegar informações das máquinas que estão na Amazon.

Pega todas as variáveis de ambiente de um ambiente, de uma aplicação:

application="safeguard"
environment="safeguard-staging5"
aws elasticbeanstalk describe-configuration-settings --application-name $application --environment-name $environment --query "ConfigurationSettings[].OptionSettings[?OptionName=='EnvironmentVariables']"

Pega o nome de uma ou mais instâncias

instances="i-12345678 i-09876543"
aws ec2 describe-instances --instance-ids $instances --query "Reservations[].Instances[].Tags[?Key=='Name'].Value" --output=text

Pega informações de qual AMI foi utilizada para se gerar as instâncias:

aws ec2 describe-instances --query "Reservations[].Instances[*].[ImageId,Tags[?Key=='Name']]"

S3

Discovering how much disk space a bucket is using

From this answer in StackOverflow:

aws s3 ls s3://<bucketname> --recursive  | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

Copying the content between buckets

First step, see what it will do:

aws s3 sync s3://source-bucket s3://destination-bucket --dryrun

If everything looks fine, execute it:

aws s3 sync s3://source-bucket s3://destination-bucket