はじめに
AWSを用いて、開発を行う際に、マネジメントコンソールに慣れすぎて、CLIを疎かにしていませんか?
確かに、マネージメントコンソールを利用する方が、簡単にいろんなサービスを使用でき、安定性があ
ります。
しかし、CLIを使用するとプロセスの内部理解ができる・・・!だけではなく、
エンジニアっぽくてかっこいいですよね(大切)
この記事では、マネージメントコンソールに慣れすぎてCLIを疎かにしている全AWSユーザーに向けて
AWS CLIの基本的なコマンドを記載しようと思います。またコマンドにつきましては、適宜読み解いて
いただきまして、変更いただければと思います。
EC2
インスタンスを起動する
aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e
インスタンスの一覧を表示する
aws ec2 describe-instances
インスタンスを終了する
aws ec2 terminate-instances --instance-ids i-5203422c
Lambda
デプロイパッケージを作成する
zip function.zip index.js
関数を作成する
aws lambda create-function --function-name my-function --zip-file fileb://function.zip --handler index.handler --runtime nodejs20.x --role arn:aws:iam::123456789012:role/lambda-ex
関数を実行する
aws lambda invoke --function-name my-function out --log-type Tail
関数を更新する
aws lambda update-function-configuration --function-name my-function
関数を削除する
aws lambda delete-function --function-name my-function
AWS公式ドキュメント
AWS CLI での Lambda の使用 - AWS Lambda
AWS Command Line Interface で AWS Lambda API を使用します。
S3
バケットを作成する
aws s3 mb <target> [--options]
バケットの一覧を表示する
aws s3 ls <target> [--options]
バケットを削除する
aws s3 rb <target> [--options]
オブジェクトのコピーを行う
aws s3 cp <source> <target> [--options]
ローカルディレクトリよりオブジェクトをコピーする場合こちらのコマンドを使用します。
オブジェクトを削除する
aws s3 rm <target> [--options]
AWS公式ドキュメント
AWS CLI で高レベル (S3) コマンドを使用する - AWS Command Line Interface
aws s3 名前空間で高レベルの Amazon S3 コマンドを使用して、AWS Command Line Interface (AWS CLI) でバケットとオブジェクトを管理します。
SQS
SQSを作成する
sqs create-queue
SQSの一覧を取得する
sqs list-queues
SQSにメッセージを送信する
sqs send-message --queue-url http://000000000000/test_sqs --message-body "Hello World"
SQSのメッセージを確認する
sqs receive-message --queue-url http://localhost:4566/000000000000/test_sqs
AWS公式ドキュメント
Amazon SQSスタンダードキュー - Amazon Simple Queue Service
Amazon SQSスタンダードキューのプロパティについて説明します。
DynamoDB
テーブルを作成する
dynamodb create-table --table-name MyNewTable --attribute-definitions AttributeName=user,AttributeType=S AttributeName=time,AttributeType=S --key-schema AttributeName=user,KeyType=HASH AttributeName=time,KeyType=RANGE --billing-mode PAY_PER_REQUEST
テーブルの一覧を取得する
dynamodb list-tables
テーブルの構成と設定の詳細を取得する
dynamodb describe-table --table-name MyTable
テーブルにアイテムを入れる
dynamodb put-item --table-name MyTable --item '{"user": {"S": "user1"}, "time": {"S": "202204271018000"}, "title": {"S": "title1"}, "contents": {"S": "contents1"}, "done": {"N": "0"}}'
テーブル内のアイテムを取得する
dynamodb get-item --table-name MyTable --key '{ "user": { "S": "user1" }, "time": { "S": "202204271018000" } }'
テーブル内のアイテムを更新する
dynamodb update-item --table-name MyTable --key '{ "user": { "S": "user1" }, "time": { "S": "202204271018000" } }' --update-expression 'set contents = :contents, done=:done' --expression-attribute-values '{ ":contents": { "S": "updated2" }, ":done": { "N": "1" } }' --return-values 'ALL_NEW'
テーブル内のアイテムを削除する
dynamodb delete-item --table-name todo --key '{ "user": { "S": "user1" }, "time": { "S": "202204271018000" } }'
テーブルを削除する
dynamodb delete-table --table-name MyTable
AWS公式ドキュメント
AWS CLI を使用する場合 - Amazon DynamoDB
AWS CLI を使用して、DynamoDB を用いたアドホックオペレーションの実行またはスクリプト記述を行います。
おわりに
ローカル環境でこちらのCLIを実験できる環境作りについて下記に私の作った記事がありますので見てい
ただければと思います。
私はマネージメントコンソールが好き。