Featured image of post AWS CLIでよく使っているコマンド

AWS CLIでよく使っているコマンド

AWS CLIでよく使っているコマンドの覚書。よく使っているのに忘れるのかと言われるとつらい。いつも履歴から使っているから、たまに新しい環境にいくとわからなくなってつらい。

使用するprofile

`# profileの作成
 aws configure --profile {new-profile}
 
 # 確認
 aws configure list
 # 実際に使う時は--profileを使う
 aws s3 ls --profile {new-profile}`

IAM

`# ロールの作成
 aws iam create-role --role-name {role-name} --assume-role-policy-document file://{policy-file-name}
 
 # ロールにポリシーを適用
 aws iam put-role-policy --role-name {role-name} --policy-name {policy-name} --policy-document file://{policy-file-name}
 `

SQS

SQSのコマンド。

`# キューの作成
 aws sqs create-queue --queue-name {キューの名前}
 
 # キューの削除
 aws sqs delete-queue --queue-url {キューのURL}
 
 # 確認
 aws sqs list-queues
 aws sqs get-queue-url {キューの名前}
 aws sqs get-queue-url {キューの名前} --output text
 aws sqs get-gueue-attributes --queue-url {キューのURL} --attribute-names ApproximateNumberOfMessages
 
 # 属性の確認
 # --attribute-namesで指定したものが表示される
 aws sqs get-queue-attributes --queue-url {キューのURL} --attribute-names CreatedTimestamp QueueArn
 
 # 属性の操作
 aws sqs set-queue-attributes --queue-url {キューのURL} --attributes VisibilityTimeout=5
 
 # メッセージの送信
 aws sqs send-message --queue-url {キューのURL} --message-body "hello, world"
 
 # メッセージの受信
 aws sqs receive-message --queue-url {キューのURL}
 # ReceiptHandleの取得
 aws sqs recieve-message --queue-url {キューのURL} | jq -r '.Messages[].ReceiptHandle'
 
 # メッセージの削除
 aws sqs delete-message --queue-url {キューのURL} --receipt-handle {ReceiptHandle}
 `

SNS

SNSのコマンド。

`# トピックの作成
 aws sns create-topic --name {トピックの名前}
 
 # トピックの一覧
 aws sns list-topics
 # トピックの削除
 aws sns delete-topic --topic-arn {トピックのARN}
 `

S3

s3でよく使うコマンド。

`# バケットの作成と削除, regionは指定しなくても
 aws s3 mb s3://{make-bucket} --region ap-northeast-1
 aws s3 rb s3://{delete-bucket}
 aws s3 sync {local_dir}/ s3://{target-bucket}/
 
 # ファイルの削除
 aws s3 rm s3://{bucket-name}/{file-name}
 # ホスティング
 aws s3 website s3://{site-hosting}/ --index-document index.html
 
 # バケットポリシーの適用
 aws s3api put-bucket-policy --bucket {site-hosting} --policy file://{policy.json}
 `

バケットポリシーの例は「S3で特定のバケットを誰でも読み取りできるようにするバケットポリシー」。

DynamoDB

`# テーブルの作成
 aws dynamodb create-table --table-name {table-name} --attribute-definitions AttributeName={partition-keyの名前},AttributeType={SとかN} --key-schema AttributeName={partition-key},KeyType={HASHとか} --provisioned-throughput ReadCapacityUnits={5とか},WriteCapacityUnits={5とか}
 
 # jsonの読み込み
 aws dynamodb batch-write-item --request-items file://{file-name}
 `

jsonの形式は「ステップ 2: データをテーブルにロードする - Amazon DynamoDB」

create-tableのオプション。

  • –attribute-definitions 属性の定義(文字列とか数値とか)
    • AttributeName 属性名
    • AttributeType 属性のタイプ(文字列とか数値とか)
  • –key-schema テーブル設計
    • AttributeName
    • KeyType
  • –provisioned-throughput プロビジョニングされたスループット…あらかじめ割り当てておく処理能力みたいなの
    • ReadCapacityUnits
    • WriteCapacityUnits

API Gateway

`# 作成したAPIの一覧を取得
 aws apigateway get-rest-apis --region ap-northeast-1
 `

CloudFormatiion

AWS CloudFormationでLambda関数のデプロイするための拡張。

`# パッケージングしてS3にアップロード
 aws cloudformation package --template-file {template-file} --output-template-file {output-template-file} --s3-bucket {s3-bucket}
 
 # デプロイ
 # template-fileはpackageの出力を使う
 aws cloudformation deploy --template-file {template-file} --stack-name {stack-name} --region ap-northeast-1
 
 # --capability CAPABILITY_IAM をつける必要があることもある
 
 # スタックを削除
 aws cloudformation delete-stack --stack-name スタック名`

コメント(2件)

コメントは承認後に表示されます。

  1. 名無し

    SQS削除のとこ「delete-messae」になってた

  2. hackle

    ありがとうございます。修正しました。

コメントを書く

或る阿呆の記.
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。