書式
- タイムスタンプの指定方法
タイムゾーン | 書式 | サンプル |
---|---|---|
日本標準時(JST) | yyyy-MM-ddTHH:mm:ss+0900 | 2014-10-10T13:50:40+09:00 |
協定世界時(UTC) | yyyy-MM-ddTHH:mm:ssZ | 2014-10-10T13:50:40Z |
例
全般
$ aws configure set cli_timestamp_format iso8601 --profile default $ aws configure get cli_timestamp_format --profile default iso8601
cli_timestamp_format controls the format of timestamps displayed by the AWS CLI. The valid values of the cli_timestamp_format configuration varaible are:
AWS CLI Configuration Variables — AWS CLI 1.19.62 Command Reference
- none - Display the timestamp exactly as received from the HTTP response.
- iso8601 - Reformat timestamp using iso8601 and your local timezone.
- 出力結果フォーマットを変更する(デフォルトはJSON)。詳しくは AWS CLI からのコマンド出力の制御 - AWS Command Line Interface 参照。
$ aws ... --output json $ aws ... --output text $ aws ... --output table
CloudWatch
- EC2 の NetworkIn メトリクスを取得する。
aws cloudwatch get-metric-statistics \ --namespace AWS/EC2 \ --dimensions Name=InstanceId,Value=<インスタンスID> \ --metric-name NetworkIn \ --statistics Average \ --start-time 2018-01-02T18:29:00+0900 \ --end-time 2018-01-02T19:00:00+0900 \ --period 60|jq -r '.Datapoints[]|@text "\(.Timestamp)\t\(.Average)\t\(.Unit)"'|sort -k 1
- EC2 の CPUUtilization メトリクスを取得する。
aws cloudwatch get-metric-statistics \ --namespace AWS/EC2 \ --dimensions Name=InstanceId,Value=i-0d7c71655a386f44d \ --metric-name CPUUtilization \ --statistics Average \ --start-time 2018-01-02T18:29:00+0900 \ --end-time 2018-01-02T19:00:00+0900 \ --period 60|jq -r '.Datapoints[]|@text "\(.Timestamp)\t\(.Average)\t\(.Unit)"'|sort -k 1
- AZを取得する*1
$ curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone ap-northeast-1a
- インスタンスタイプを確認する
$ curl http://169.254.169.254/latest/meta-data/instance-type c4.large
RDS
- RDS から指定した期間の CPU使用率を取得する。
$ aws rds describe-db-instances|grep '"DBInstanceIdentifier' "DBInstanceIdentifier": "ar1r9c7i*******" $ aws cloudwatch get-metric-statistics --metric-name CPUUtilization --start-time 2017-07-24T00:00:00+0900 --end-time 2017-07-24T01:00:00+0900 --period 60 --namespace AWS/RDS --dimensions Name=DBInstanceIdentifier,Value=ar1r9c7i******* --statistics SampleCount Average Minimum Maximum Sum { "Datapoints": [ { "SampleCount": 1.0, "Timestamp": "2017-07-23T15:30:00Z", "Average": 0.66, "Maximum": 0.66, "Minimum": 0.66, "Sum": 0.66, "Unit": "Percent" }, (中略) { "SampleCount": 1.0, "Timestamp": "2017-07-23T15:35:00Z", "Average": 0.67, "Maximum": 0.67, "Minimum": 0.67, "Sum": 0.67, "Unit": "Percent" } ], "Label": "CPUUtilization" }
- リードレプリカのラグをJSTで絞って、TSV で表示する(タイムスタンプでソート)
$ aws cloudwatch get-metric-statistics \ --namespace AWS/RDS \ --dimensions Name=DBInstanceIdentifier,Value=pg-m4xlarge-xr3-7 \ --metric-name ReplicaLag \ --statistics Average \ --start-time 2017-12-13T16:00:00+0900 \ --end-time 2017-12-13T16:30:00+0900 \ --period 60 | jq -r '.Datapoints[]|@text "\(.Timestamp)\t\(.Average)\t\(.Unit)"'|sort -k 1 2017-12-13T07:00:00+00:00 131 Seconds 2017-12-13T07:01:00+00:00 0 Seconds 2017-12-13T07:02:00+00:00 0 Seconds
- WriteThroughputを確認する。
aws cloudwatch get-metric-statistics \ --namespace AWS/RDS \ --dimensions Name=DBInstanceIdentifier,Value=pg-m4xlarge-xr3-7 \ --metric-name WriteThroughput \ --statistics Average \ --start-time 2017-12-16T19:10:00+0900 \ --end-time 2017-12-16T19:45:00+0900 \ --period 60|jq -r '.Datapoints[]|@text "\(.Timestamp)\t\(.Average)\t\(.Unit)"'|sort -k 1
- ログファイル名でフイルタする
$ aws rds describe-db-log-files --db-instance-identifier aurora-postgres-116-instance-1|jq -r '.DescribeDBLogFiles[]|select(.LogFileName|contains("2020-04-25"))' { "LastWritten": 1587772801000, "LogFileName": "error/postgresql.log.2020-04-25-0000", "Size": 0 } { "LastWritten": 1587776400000, "LogFileName": "error/postgresql.log.2020-04-25-0100", "Size": 0 } { "LastWritten": 1587780000000, "LogFileName": "error/postgresql.log.2020-04-25-0200", "Size": 0 }
- Aurora のストレージ使用量を表示する。
$ aws cloudwatch get-metric-statistics \ --namespace AWS/RDS \ --dimensions Name=DBClusterIdentifier,Value=aurora-mysql-57 \ --metric-name VolumeBytesUsed \ --statistics Average \ --start-time 2020-12-16T16:00:00+0900 \ --end-time 2020-12-16T16:30:00+0900 \ --period 60|jq -r '.Datapoints[]|@text "\(.Timestamp)\t\(.Average)\t\(.Unit)"' 2020-12-16T07:05:00Z 62199136256 Bytes 2020-12-16T07:10:00Z 62199136256 Bytes 2020-12-16T07:15:00Z 62199136256 Bytes 2020-12-16T07:20:00Z 62199136256 Bytes 2020-12-16T07:25:00Z 62199136256 Bytes 2020-12-16T07:00:00Z 62199136256 Bytes
S3
aws s3 cp s3://yoheia-from-bucket/logs/ s3://yoheia-to-bucket/logs/ --recursive
- コピーを試したメモ
FROM=コピー元S3バケット名 TO=コピー先S3バケット名 aws s3 mb s3://$(FROM} aws s3 mb s3://${TO} time dd if=/dev/urandom of=1gb.dat bs=1M count=10240 aws s3 cp 10gb.dat s3://$(FROM}/1gb.dat time aws s3 cp s3://${FROM}/10gb.dat s3://${TO}/ time seq -w 1 1000 | xargs -t -P20 -I{} aws s3 cp s3:/$(FROM}/1gb.dat s3://${TO}/{}.dat time seq -w 1 1000 | xargs -t -P20 -I{} aws s3 cp s3://$(FROM}/{}.dat s3://${TO}/{}.dat time aws s3 rm s3://${TO}/ --recursive time aws s3 sync s3://$(FROM}/ s3://${TO}/
- リスト表示する
aws s3 ls --recursive --summarize --human-readable s3://yoheia-foo/
% mkdir -p path/to/dir % touch path/to/dir/{a,b,c} % find . ./path ./path/to ./path/to/dir ./path/to/dir/a ./path/to/dir/b ./path/to/dir/c % tar zcfp - .| aws s3 cp - s3://az-to/test.tgz % aws s3 cp s3://az-to/test.tgz -|tar tfz - ./ ./path/ ./path/to/ ./path/to/dir/ ./path/to/dir/a ./path/to/dir/b ./path/to/dir/c
- 複数バージョン存在するオブジェクトをリストアップする。
$ aws s3api list-object-versions --bucket az-test-datalake|jq -r '.Versions[].Key'|sort|uniq -c|perl -lane '$F[0] > 1 and print'
$ aws s3 rm --recursive --exclude 'year=*' s3://<bucket name>/ssbgz/lineorder_part/
EMR
- マスターノードで自分のクラスターのステータスを確認する
aws emr describe-cluster --cluster-id $(cat /mnt/var/lib/info/job-flow.json|jq -r '.jobFlowId|@text') | jq -r '.Cluster.Status.State'
KMS
- 特定のエイリアス名のキーの情報を表示する
aws kms list-aliases | jq '.Aliases[] | select(.AliasName=="alias/rotation-test-key")'
SQS
- SQSのキューを一括削除する
$ aws sqs list-queues|jq -r '.QueueUrls[]'|xargs -n 1 aws sqs delete-queue --queue-url
AppFlow
- 実行して、実行結果を確認する
$ aws appflow start-flow --flow-name account-ondemand { "flowArn": "arn:aws:appflow:ap-northeast-1:123456789012:flow/account-ondemand", "flowStatus": "Active", "executionId": "6c6594bb-a6e0-4db3-b7e7-8b6a3e47f1ae" } $ aws appflow describe-flow-execution-records --flow-name account-ondemand|jq -r '.flowExecutions[]|select(.executionId=="6c6594bb-a6e0-4db3-b7e7-8b6a3e47f1ae")|@text "\(.executionStatus)"' Successful
参考
- AWS CLI Command Reference — AWS CLI 1.19.62 Command Reference
- Amazon CloudWatch の概念 - Amazon CloudWatch
- 日時のフォーマット(ISO 8601) - Qiita
- jqを使ってJSONをCSVに変換するいくつかの例。 - Jupitris on Laboratory
- [end of data reached data length = 0 ask index =4 computed zip:title]
- jqに痺れた … AWS CLIで演習など | OpenGroove
- S3 customization reference — Boto3 Docs 1.17.62 documentation
- AWS CLI S3 Configuration — AWS CLI 1.19.55 Command Reference