AWS CLIのチートシート

August 03, 2021

CloudWatch logs を CLIで調査( fish )

クエリ投げる

set queryId (aws logs start-query --log-group-name NginxAccessLog \
                                   --start-time (date +%s --date "1 week ago") \
                                   --end-time (date +%s) \
                                   --query-string 'fields @timestamp, @message | filter @message NOT LIKE /ua:ELB-HealthChecker/ | sort @timestamp desc | limit 20'\
                                 | jq -r '.queryId' )

ステータス確認

aws logs describe-queries | jq '.queries[] | select(.queryId=="$queryId")'

取得

aws logs get-query-results --query-id $queryId  | jq '.results[][] | select(.field == "@message") | .value'

ポリシー作成 https://qiita.com/maimai-swap/items/895b79229f6769aa4a41

aws iam create-policy --policy-name ポリシー名 --profile プロファイル --policy-document file://developerpolicy.json --description "this is ...."

CLIのアップデート

pip install awscli

環境変数

export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxx     # アクセスキー
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxx  # シークレットアクセスキー
export AWS_SESSION_TOKEN=xxxxxxxxxxxxxxxxxxx  # セッショントークン

export AWS_DEFAULT_REGION=ap-northeast-1      # デフォルトリージョン   
export AWS_DEFAULT_OUTPUT=json                # 出力形式 (json|text|table)
export AWS_PROFILE=default                    # プロファイル名

export AWS_CONFIG_FILE=~/.aws/config          # コンフィグファイルパス
export AWS_SHARED_CREDENTIALS_FILE=~/.aws/credentials # クレデンシャルファイルパス
export AWS_CA_BUNDLE=<AWS_CA_BUNDLE_PATH>     # 証明書バンドルへのパス

s3コマンド

http://www.task-notes.com/entry/20150904/1441335600

config 現在のプロファイルを確認する

aws —profile hogehoge configure list

~/.aws{config, credentials}の内容も確認すること

  • リージョンは config 側で設定する

別のプロファイルに切り替える

export AWS_DEFAULT_PROFILE=hogehoge

上記の方法は『awslogs』でプロファイルを切り替えたい、と思ったが、ダメだった。 ~/.aws/credential の default の値でアクセスしてしまう。この辺、別のツールだけど serverless frameworkは見てくれるんだけどな

理想を言えばawslogが環境変数 AWS_DEFAULT_PROFILE を読み取って振る舞いを変える、のが理想。あるいはオプションでプロファイルを指定できると良いのだが。

MediaStore

特定のバケットの中身を全て削除する. 2018/05時点では、ワイルドカードでの指定などはできなかった( 将来的には、できるようになるかも… )

https://dev.classmethod.jp/cloud/aws/aws-elemental-mediastore-delete-objects-aws-cli-oneliner/

  • —endpoint : MediaStoreのエンドポイントURL 、コンテナによって変更する

  • —path= : コンテナ内のフォルダ名

$ aws —profile hogehoge mediastore-data list-items —endpoint=https://ozr2oq437kxmot.data.mediastore.ap-northeast-1.amazonaws.com —path=/eikoh-a —output=text | awk ‘{system(“aws mediastore-data delete-object —endpoint=https://ozr2oq437kxmot.data.mediastore.ap-northeast-1.amazonaws.com —path=/eikoh-a/“$6)}’

RDS

パラメータグループ取得

パラメータグループは設定箇所が膨大にある。これを比較するのは現実的ではないので、既存のものからコピーしたい

設定取得

aws rds describe-db-parameters --db-parameter-group-name hoge-dev > AWS_RDS_パラメータグループ_hoge-dev.md

Profile picture

Written by tin-machine 技術関連のメモ Twitter