AWS
エンジニアのためのWebチートシート
AWS(Amazon Web Services)は、世界最大のクラウドプラットフォームです。 コンピューティング、ストレージ、データベース、ネットワーキングなど200以上のサービスを提供しています。 AWS CLIの基本操作、IAM、S3、EC2、Lambda、ECS、RDS、DynamoDB、CloudFormation、CloudWatch、Route 53、SQS/SNSなどをチートシートにまとめました。
CLI基本 & IAM
CLI設定
| コマンド | 説明 |
|---|---|
| aws --version | CLIバージョンを確認します。 |
| aws configure | アクセスキー、リージョン、出力形式を設定します。 |
| aws configure --profile <name> | 名前付きプロファイルを作成します。 |
| aws configure list | 現在の設定一覧を表示します。 |
| aws configure list-profiles | 全プロファイルを一覧表示します。 |
| aws sts get-caller-identity | 現在のIAMユーザー/ロールを確認します。 |
| --profile <name> | プロファイルを指定して実行します。 |
| --region <region> | リージョンを指定して実行します。 |
| --output json|table|text | 出力形式を指定します。 |
| --dry-run | 実行せず確認のみ行います。 |
IAM(ユーザー・ロール・ポリシー)
| コマンド | 説明 |
|---|---|
| aws iam list-users | 全IAMユーザーを一覧表示します。 |
| aws iam create-user --user-name <name> | IAMユーザーを作成します。 |
| aws iam create-access-key --user-name <name> | アクセスキーを生成します。 |
| aws iam list-roles | 全ロールを一覧表示します。 |
| aws iam create-role --role-name <name> --assume-role-policy-document file://trust.json | ロールを作成します。 |
| aws iam attach-role-policy --role-name <name> --policy-arn <arn> | ロールにポリシーをアタッチします。 |
| aws iam list-policies --scope Local | 全ポリシーを一覧表示します。 |
| aws iam create-policy --policy-name <name> --policy-document file://policy.json | カスタムポリシーを作成します。 |
S3
バケット & オブジェクト操作
| コマンド | 説明 |
|---|---|
| aws s3 ls | 全バケットを一覧表示します。 |
| aws s3 ls s3://<bucket> | バケット内容を表示します。 |
| aws s3 mb s3://<bucket> | バケットを作成します。 |
| aws s3 rb s3://<bucket> --force | バケットを削除します(--forceで中身含む)。 |
ファイル操作
| コマンド | 説明 |
|---|---|
| aws s3 cp <file> s3://<bucket>/ | ファイルをS3にアップロードします。 |
| aws s3 cp s3://<bucket>/<key> ./ | S3からファイルをダウンロードします。 |
| aws s3 cp <dir> s3://<bucket>/ --recursive | ディレクトリを一括アップロードします。 |
| aws s3 mv s3://<bucket>/<old> s3://<bucket>/<new> | オブジェクトを移動/リネームします。 |
| aws s3 rm s3://<bucket>/<key> | オブジェクトを削除します。 |
| aws s3 rm s3://<bucket>/<prefix> --recursive | フォルダを一括削除します。 |
同期 & 署名付きURL
| コマンド | 説明 |
|---|---|
| aws s3 sync . s3://<bucket>/ | ローカルからS3に同期します。 |
| aws s3 sync s3://<bucket>/ ./ | S3からローカルに同期します。 |
| aws s3 sync . s3://<bucket>/ --delete | 削除も含めて同期します。 |
| aws s3 sync . s3://<bucket>/ --exclude "*.log" | 除外パターンを指定して同期します。 |
| aws s3 presign s3://<bucket>/<key> --expires-in 3600 | 署名付きURL(一時アクセス用)を生成します。 |
EC2
インスタンス管理
| コマンド | 説明 |
|---|---|
| aws ec2 describe-instances | 全インスタンスの情報を表示します。 |
| aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" | 実行中のインスタンスのみ表示します。 |
| aws ec2 run-instances --image-id <ami> --instance-type t3.micro --key-name <key> | インスタンスを起動します。 |
| aws ec2 start-instances --instance-ids <id> | 停止中のインスタンスを開始します。 |
| aws ec2 stop-instances --instance-ids <id> | インスタンスを停止します。 |
| aws ec2 terminate-instances --instance-ids <id> | インスタンスを終了(削除)します。 |
| aws ec2 reboot-instances --instance-ids <id> | インスタンスを再起動します。 |
セキュリティグループ
| コマンド | 説明 |
|---|---|
| aws ec2 describe-security-groups | 全セキュリティグループを表示します。 |
| aws ec2 create-security-group --group-name <name> --description "desc" --vpc-id <vpc> | セキュリティグループを作成します。 |
| aws ec2 authorize-security-group-ingress --group-id <sg> --protocol tcp --port 443 --cidr 0.0.0.0/0 | インバウンドルールを追加します。 |
| aws ec2 revoke-security-group-ingress --group-id <sg> --protocol tcp --port 443 --cidr 0.0.0.0/0 | インバウンドルールを削除します。 |
キーペア
| コマンド | 説明 |
|---|---|
| aws ec2 describe-key-pairs | キーペアを一覧表示します。 |
| aws ec2 create-key-pair --key-name <name> --query "KeyMaterial" --output text > key.pem | キーペアを作成して保存します。 |
Lambda
関数管理
| コマンド | 説明 |
|---|---|
| aws lambda list-functions | 全Lambda関数を一覧表示します。 |
| aws lambda get-function --function-name <name> | 関数のコードとメタデータを取得します。 |
| aws lambda create-function --function-name <name> --runtime nodejs20.x --handler index.handler --zip-file fileb://func.zip --role <arn> | 新しいLambda関数を作成します。 |
| aws lambda update-function-code --function-name <name> --zip-file fileb://func.zip | 関数コードを更新します。 |
| aws lambda update-function-configuration --function-name <name> --timeout 30 --memory-size 256 | タイムアウトやメモリなどの設定を更新します。 |
| aws lambda delete-function --function-name <name> | Lambda関数を削除します。 |
実行 & バージョン
| コマンド | 説明 |
|---|---|
| aws lambda invoke --function-name <name> --payload '{...}' output.json | 関数を同期実行します。 |
| aws lambda invoke --function-name <name> --invocation-type Event --payload '{...}' output.json | 関数を非同期実行します。 |
| aws lambda publish-version --function-name <name> | バージョンを発行します。 |
| aws lambda create-alias --function-name <name> --name prod --function-version 1 | エイリアスを作成します。 |
ECS & ECR
ECS(クラスター・サービス・タスク)
| コマンド | 説明 |
|---|---|
| aws ecs list-clusters | クラスター一覧を表示します。 |
| aws ecs create-cluster --cluster-name <name> | クラスターを作成します。 |
| aws ecs list-services --cluster <name> | サービス一覧を表示します。 |
| aws ecs update-service --cluster <name> --service <svc> --desired-count 3 | サービスのタスク数を更新します。 |
| aws ecs list-tasks --cluster <name> | タスク一覧を表示します。 |
| aws ecs describe-tasks --cluster <name> --tasks <arn> | タスクの詳細を表示します。 |
| aws ecs run-task --cluster <name> --task-definition <def> | タスクを手動実行します。 |
| aws ecs register-task-definition --cli-input-json file://task-def.json | タスク定義を登録します。 |
ECR(コンテナレジストリ)
| コマンド | 説明 |
|---|---|
| aws ecr get-login-password | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com | ECRにDockerログインします。 |
| aws ecr create-repository --repository-name <name> | リポジトリを作成します。 |
| aws ecr describe-repositories | リポジトリ一覧を表示します。 |
| aws ecr delete-repository --repository-name <name> --force | リポジトリを削除します。 |
RDS & DynamoDB
RDS
| コマンド | 説明 |
|---|---|
| aws rds describe-db-instances | 全DBインスタンスを表示します。 |
| aws rds create-db-instance --db-instance-identifier <id> --engine postgres --db-instance-class db.t3.micro --master-username admin --master-user-password <pw> --allocated-storage 20 | DBインスタンスを作成します。 |
| aws rds start-db-instance --db-instance-identifier <id> | DBインスタンスを開始します。 |
| aws rds stop-db-instance --db-instance-identifier <id> | DBインスタンスを停止します。 |
| aws rds delete-db-instance --db-instance-identifier <id> --skip-final-snapshot | DBインスタンスを削除します。 |
| aws rds create-db-snapshot --db-instance-identifier <id> --db-snapshot-identifier <snap> | スナップショットを作成します。 |
| aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <new> --db-snapshot-identifier <snap> | スナップショットから復元します。 |
DynamoDB
| コマンド | 説明 |
|---|---|
| aws dynamodb list-tables | テーブル一覧を表示します。 |
| aws dynamodb describe-table --table-name <name> | テーブル詳細を表示します。 |
| aws dynamodb create-table --table-name <name> --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --billing-mode PAY_PER_REQUEST | テーブルを作成します。 |
| aws dynamodb put-item --table-name <name> --item '{"id":{"S":"1"}}' | アイテムを追加します。 |
| aws dynamodb get-item --table-name <name> --key '{"id":{"S":"1"}}' | アイテムを取得します。 |
| aws dynamodb query --table-name <name> --key-condition-expression "id = :v" --expression-attribute-values '{":v":{"S":"1"}}' | キー条件でクエリします。 |
| aws dynamodb scan --table-name <name> | テーブル全件をスキャンします。 |
| aws dynamodb delete-item --table-name <name> --key '{"id":{"S":"1"}}' | アイテムを削除します。 |
CloudFormation & CDK
CloudFormation
| コマンド | 説明 |
|---|---|
| aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE | スタック一覧を表示します。 |
| aws cloudformation describe-stacks --stack-name <name> | スタック詳細を表示します。 |
| aws cloudformation create-stack --stack-name <name> --template-body file://template.yaml | スタックを作成します。 |
| aws cloudformation update-stack --stack-name <name> --template-body file://template.yaml | スタックを更新します。 |
| aws cloudformation delete-stack --stack-name <name> | スタックを削除します。 |
| aws cloudformation deploy --stack-name <name> --template-file template.yaml --capabilities CAPABILITY_IAM | チェンジセット経由でデプロイします。 |
| aws cloudformation validate-template --template-body file://template.yaml | テンプレートを検証します。 |
| aws cloudformation describe-stack-events --stack-name <name> | スタックイベントを確認します。 |
CDK
| コマンド | 説明 |
|---|---|
| cdk init app --language typescript | CDKプロジェクトを初期化します。 |
| cdk synth | CloudFormationテンプレートを生成します。 |
| cdk deploy | スタックをデプロイします。 |
| cdk diff | 変更差分を確認します。 |
| cdk destroy | スタックを削除します。 |
| cdk bootstrap | ブートストラップスタックを作成します。 |
CloudWatch
ログ
| コマンド | 説明 |
|---|---|
| aws logs describe-log-groups | ロググループ一覧を表示します。 |
| aws logs describe-log-streams --log-group-name <group> | ログストリーム一覧を表示します。 |
| aws logs get-log-events --log-group-name <group> --log-stream-name <stream> | ログイベントを取得します。 |
| aws logs filter-log-events --log-group-name <group> --filter-pattern "ERROR" | パターンでログを検索します。 |
| aws logs create-log-group --log-group-name <group> | ロググループを作成します。 |
| aws logs delete-log-group --log-group-name <group> | ロググループを削除します。 |
メトリクス & アラーム
| コマンド | 説明 |
|---|---|
| aws cloudwatch list-metrics --namespace AWS/EC2 | メトリクス一覧を表示します。 |
| aws cloudwatch put-metric-data --namespace Custom --metric-name <name> --value 1 | カスタムメトリクスを送信します。 |
| aws cloudwatch put-metric-alarm --alarm-name <name> --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 80 --comparison-operator GreaterThanThreshold --evaluation-periods 2 | メトリクスアラームを作成します。 |
| aws cloudwatch describe-alarms | アラーム一覧を表示します。 |
| aws cloudwatch delete-alarms --alarm-names <name> | アラームを削除します。 |
ネットワーク & メッセージング
Route 53
| コマンド | 説明 |
|---|---|
| aws route53 list-hosted-zones | ホストゾーン一覧を表示します。 |
| aws route53 create-hosted-zone --name <domain> --caller-reference <ref> | ホストゾーンを作成します。 |
| aws route53 list-resource-record-sets --hosted-zone-id <id> | DNSレコード一覧を表示します。 |
| aws route53 change-resource-record-sets --hosted-zone-id <id> --change-batch file://changes.json | DNSレコードを作成/更新/削除します。 |
CloudFront
| コマンド | 説明 |
|---|---|
| aws cloudfront list-distributions | ディストリビューション一覧を表示します。 |
| aws cloudfront create-invalidation --distribution-id <id> --paths "/index.html" | パス指定でキャッシュを無効化します。 |
| aws cloudfront create-invalidation --distribution-id <id> --paths "/*" | 全キャッシュを無効化します。 |
SQS & SNS
| コマンド | 説明 |
|---|---|
| aws sqs list-queues | キュー一覧を表示します。 |
| aws sqs create-queue --queue-name <name> | キューを作成します。 |
| aws sqs send-message --queue-url <url> --message-body "hello" | メッセージを送信します。 |
| aws sqs receive-message --queue-url <url> | メッセージを受信します。 |
| aws sqs delete-message --queue-url <url> --receipt-handle <handle> | メッセージを削除します。 |
| aws sqs purge-queue --queue-url <url> | キュー内全メッセージを削除します。 |
| aws sns list-topics | トピック一覧を表示します。 |
| aws sns create-topic --name <name> | トピックを作成します。 |
| aws sns publish --topic-arn <arn> --message "hello" | メッセージを発行します。 |
| aws sns subscribe --topic-arn <arn> --protocol email --notification-endpoint <email> | サブスクリプションを作成します。 |
引用・参考リンク
Related Cheatsheets
- Docker-Dockerとはコンテナと呼ばれるOSレベルの仮想化環境を提供するソフトウェアです。近年、コンテナ化したアプリケーションのデプロイ、スケーリング、管理を行うためのコンテナオーケストレーションシステムであるKubernetesの採用事例も増え、ますますコンテナ仮想化技術は注目されています。 Dockerコマンドをチートシートにまとめました。
- GCP(Google Cloud Platform)-Google Cloud Platform(GCP)とは、Googleが提供しているクラウドコンピューティングサービスです。Google検索やYouTubeなどのサービスでも利用されています。GCPが提供するCLIツールのコマンドをチートシートにまとめてみました。
- HTTPステータスコード-HTTPステータスコードは、HTTPリクエストに対するサーバーの応答状態を示す3桁の数値コードです。 1xx〜5xxの各カテゴリと、よく使われるステータスコードをチートシートにまとめました。
- Kubernetes-Kubernetes(K8s)は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオーケストレーションシステムです。 kubectlコマンドやYAMLマニフェストの基本をチートシートにまとめました。
- Nginx-Nginxは高性能なWebサーバー、リバースプロキシ、ロードバランサーです。 軽量で高い同時接続処理能力を持ち、静的ファイル配信やAPI Gatewayとして広く使われています。 基本コマンド、サーバーブロック、リバースプロキシ、SSL、セキュリティ設定などをチートシートにまとめました。
- Terraform-Terraformは、HashiCorpが開発したIaC(Infrastructure as Code)ツールです。 HCL(HashiCorp Configuration Language)でインフラをコードとして定義し、マルチクラウド環境を宣言的に管理できます。 CLIコマンド、HCL構文、リソース定義、ステート管理、モジュール、関数などをチートシートにまとめました。
Related Goods
WebTerm - Recommended tools
WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm
Browser Terminal Sandbox for Learning CLI
開く
All Cheatsheets
エンジニア・プログラマー向けの便利なチートシートを多数まとめています(SP/Tablet/PC対応)
すべてのチートシートを見る


