初期設定とリージョンの設定
AWS CLIは、AWSのサービスをコマンドラインインタフェースで操作することのできるコマンド群である。AWS CLIを使う前に、aws configureコマンドを使ってアクセスキーやデフォルトリージョンの設定を行っておく。
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
Access Keyは、IAMで設定取得したものを指定する。Default output formatには、通常はjsonを指定する。またこれらの設定情報は、ホームディレクトリ直下の.awsディレクトリ(~/.aws/config, ~/.aws/credentials)に保存される。
なおデフォルトリージョンを設定しない場合は、各コマンドにリージョンオプション(–region ap-northeast-1など)を付けることでリージョンを指定することが可能である。EC2で自作のAMIを作成し複数のリージョンで運用する場合などは、デフォルトリージョンを指定せずに、シェルスクリプト等で都度リージョンを指定する方が設定を変更せずに汎用的に使うことが可能である。
現在のリージョンを取得する
以下のコマンドを実行することで、EC2で現在のリージョンを取得することが可能である。
$ curl -s https://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/.$//g'
上記コマンドを用いることで、シェルスクリプトから動的にリージョンを指定することも可能である。
region=`curl -s https://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/.$//g'`
aws dynamodb scan --table-name TABLE_NAME --region ${region} > /tmp/TABLE_NAME.json
コマンド例
S3にファイルをコピーする
aws s3 cp /SRC_DIR/FILE_NAME s3://BUCKET_NAME/DIR
バケットを生成する
aws s3 mb s3://BUCKET_NAME
テーブルを作成する
aws dynamodb create-table --table-name TABLE_NAME --attribute-definitions AttributeName=ATTR_NAME,AttributeType=ATTR_TYPE --key-schema AttributeName=ATTR_NAME,KeyType=HASH --provisioned-throughput ReadCapacityUnits=NUM,WriteCapacityUnits=NUM
アイテムを書き込む
- Number型の場合でも「””」で値を囲む必要がある
aws dynamodb put-item --table-name TABLE_NAME --item '{"ATTR_NAME": {"ATTR_TYPE": "ATTR_VAL"}, "ATTR_NAME": {"ATTR_TYPE": "ATTR_VAL"}}'
指定したテーブルをスキャンする
aws dynamodb scan --table-name TABLE_NAME
ストリームを生成する
aws kinesis create-stream --stream-name STREAM_NAME --shard-count N
ストリーム保持期間を変更する
- Kinesis Recordは、通常24時間でデータが消去されてしまう。AWS CLIからこの保持期間を最大7日間(168時間)まで延長することができる。
aws kinesis increase-stream-retention-period --stream-name STREAM_NAME --retention-period-hours 168
ストリームの設定内容を確認する
aws kinesis describe-stream --stream-name STREAM_NAME
シャードイテレータを取得する
SHARD_IDは、上述のdescribe-streamコマンドから取得する
aws kinesis get-shard-iterator --shard-id SHARD_ID --shard-iterator-type TRIM_HORIZON --stream-name STREAM_NAME
レコードを取得する
SHARD_ITERATORは、上述のget-shard-iteratorコマンドから取得する
aws kinesis get-records --shard-iterator SHARD_ITERATOR