AWS CLI
AWS コマンドラインツールの使用 ノート。
Command
aws
CLI バージョン確認 :
aws --versioncdk
アカウント設定 :
cdk bootstrap aws://ACCOUNT-NUMBER/REGIONconfigure
Region 取得 :
aws configure get region設定 一覧 :
aws configure list認証 設定 :
aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-southeast-1
Default output format [None]: JSONprofiles 一覧 (複数 の AWS アカウント設定 ):
~/.aws/config~/.aws/credentials
aws configure list-profilesevent
特定 の ARN を取得 :
aws events list-rules | jq -r '.Rules[] | select(.Name == "minuteRule") | .Arn'log
Lambda ログを表示 :
aws logs tail /aws/lambda/ArplanetAPI_Platform_Linux2_Test --follow --profile defaultsts
AWS profile keys 接続 テスト:
aws sts get-caller-identitysam
バージョン確認 :
# PowerShell
sam --version
# Git Bash
sam.cmd --versionガイド付 きデプロイ:
sam deploy --guidedService Command
Athena
SQL Query 関連 コマンドは Athena ページを参照 。
CloudWatch
Agent
Agent 状態 確認 :
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status設定 ファイルを読 み込 んで agent を再起動 :
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/env-config.json -sConfiguration File
主要 な設定 ブロック:
- agent:
metrics_collection_interval,region,credentials,debug,logfile,run_as_user - metrics:
namespace,append_dimensions,aggregation_dimensions,metrics_collected - logs:
logs_collected,force_flush_interval
設定 例 :
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"aggregation_dimensions": [["InstanceId"]],
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
"metrics_collected": {
"cpu": {
"measurement": ["cpu_usage_idle", "cpu_usage_iowait", "cpu_usage_user", "cpu_usage_system"],
"metrics_collection_interval": 60,
"resources": ["*"],
"totalcpu": false
},
"disk": {
"measurement": ["used_percent", "inodes_free"],
"metrics_collection_interval": 60,
"resources": ["*"]
},
"mem": {
"measurement": ["mem_used_percent"],
"metrics_collection_interval": 60
}
}
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/home/ec2-user/log/app/json/**.log",
"log_group_name": "app-json",
"log_stream_name": "json-stream",
"retention_in_days": 1
}
]
}
},
"force_flush_interval": 30
}
}E! Error parsing /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml, open /usr/share/collectd/types.db: no such file or directory というエラーが発生
した場合
、collectd がインストールされていません。sudo apt install collectd でインストール後
、再起動
してください。DynamoDB
テーブル一覧 :
aws dynamodb list-tables --region ap-southeast-1EC2
全 ての EC2 を一覧 :
aws ec2 describe-instancesaws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output textkeypairs 一覧 :
aws ec2 describe-key-pairsIAM
ユーザー一覧 :
aws iam list-usersKinesis Data Stream
レコードを挿入 :
aws kinesis put-record --stream events --partition-key "1" --data 'test1' --cli-binary-format raw-in-base64-outJSON ファイルからレコードを挿入 :
aws kinesis put-records --stream-name kds-test --records file://data-example.json --cli-binary-format raw-in-base64-outLambda
Lambda 関数 数 を確認 :
aws lambda list-functions | jq '.Functions | length'Lambda を作成 :
aws lambda create-function --function-name my-function \
--runtime python3.9 \
--role arn:aws:iam::123456789012:role/lambda_execution_role \
--handler lambda-function.lambda_handler \
--zip-file fileb:///root/my-function.zip \
--region us-east-1Lambda を呼 び出 す:
aws lambda invoke --function-name my-function --payload '{ "name": "your name" }' output.txtMediaLive
Channel 状態 を表示 :
aws medialive describe-channel --channel-id 9057200 | jq -r '{ State }'S3
全 ての S3 を一覧 :
aws s3 lsS3 にファイルをアップロード:
aws s3 cp D:/path/to/file.zip s3://bucket-name/folder/ --acl public-read --cache-control max-age="0" --profile defaultS3 からファイルをダウンロード:
aws s3 cp s3://bucket/folder /local/folder --recursiveUse Cases
DynamoDB Local Service
Connect
PowerShell:
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar -port 8888Linux:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbTable Operations
テーブル一覧 (デフォルト port: 8000):
aws dynamodb list-tables --endpoint-url http://localhost:8888テーブル作成 :
aws dynamodb create-table \
--table-name Music \
--attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
--key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--table-class STANDARD \
--endpoint-url http://localhost:8000JSON ファイルで作成 :
aws dynamodb create-table --cli-input-json file://create-table-user.json --endpoint-url http://localhost:8000テーブル詳細 :
aws dynamodb describe-table --table-name Music --endpoint-url http://localhost:8000データ挿入 :
aws dynamodb put-item \
--table-name Music \
--item '{"Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"}}' \
--return-consumed-capacity TOTALデータスキャン:
aws dynamodb scan --table-name Music --endpoint-url http://localhost:8000データクエリ:
aws dynamodb query \
--table-name Music \
--key-condition-expression "Artist = :v1 AND SongTitle = :v2" \
--expression-attribute-values file://expression-attributes.json \
--endpoint-url http://localhost:8888テーブル削除 :
aws dynamodb delete-table --table-name user --endpoint-url http://localhost:8000Change Profile User
Windows
CMD:
set AWS_PROFILE=profile_namePowerShell:
setx AWS_PROFILE profile_nameGit Bash:
export AWS_PROFILE=defaultLinux
export AWS_PROFILE=profile_nameRetrieve Instance Type
curl http://169.254.169.254/latest/meta-data/instance-type