awsコマンド チートシート

cheatsheet

基本設定 & 一般操作 ⚙️

AWS CLIの初期設定や、多くのコマンドで共通して利用されるオプションについて説明します。これらはAWSリソースを操作する上での基本となります。

目的 コマンド例 説明
初回設定
aws configure
AWSアクセスキーID、シークレットアクセスキー、デフォルトリージョン、デフォルト出力形式を対話形式で設定します。設定情報は ~/.aws/credentials および ~/.aws/config に保存されます。
特定プロファイルでの設定
aws configure --profile [プロファイル名]
デフォルト以外の名前付きプロファイルの設定を行います。複数のAWSアカウントや設定を使い分ける際に便利です。
プロファイル指定実行
aws s3 ls --profile [プロファイル名]
指定したプロファイルを使用してコマンドを実行します。
リージョン指定実行
aws ec2 describe-instances --region us-west-2
コマンドの実行対象となるリージョンを一時的に指定します。デフォルトリージョン設定を上書きします。
出力形式指定 (JSON)
aws ec2 describe-instances --output json
コマンドの出力をJSON形式で表示します。プログラムでの処理に適しています。デフォルト設定を上書きします。
出力形式指定 (Text)
aws ec2 describe-instances --output text
タブ区切りのテキスト形式で出力します。シェルスクリプトでの簡単なパースに適しています。
出力形式指定 (Table)
aws ec2 describe-instances --output table
人間が読みやすいテーブル形式で出力します。
出力内容フィルタリング (JMESPath)
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, State.Name]' --output text
JMESPath構文を使用して、JSON出力から特定の情報のみを抽出します。複雑な出力から必要なデータだけを取り出すのに強力です。
ヘルプ表示
aws help
aws s3 help
aws ec2 describe-instances help
利用可能なサービスや、特定のサービス、特定のコマンドに関するヘルプドキュメントを表示します。利用可能なオプションやサブコマンドを確認できます。
ドライラン (Dry Run)
aws ec2 terminate-instances --instance-ids [インスタンスID] --dry-run
コマンドを実行せずに、必要な権限があるか、パラメータが正しいかなどをチェックします。リソース変更を伴う操作の前に確認のために使用します。成功するとDryRunOperation、失敗するとエラーメッセージが返ります。(すべてのコマンドでサポートされているわけではありません)

IAM (Identity and Access Management) 🔑

AWSリソースへのアクセスを安全に管理するためのユーザー、グループ、ロール、ポリシーに関する操作です。

目的 コマンド例 説明
ユーザー一覧取得
aws iam list-users
アカウント内のIAMユーザーを一覧表示します。
ユーザー作成
aws iam create-user --user-name [ユーザー名]
新しいIAMユーザーを作成します。
ユーザー削除
aws iam delete-user --user-name [ユーザー名]
指定したIAMユーザーを削除します。事前にアクセスキーやポリシーなどをデタッチする必要があります。
グループ一覧取得
aws iam list-groups
アカウント内のIAMグループを一覧表示します。
グループ作成
aws iam create-group --group-name [グループ名]
新しいIAMグループを作成します。
ユーザーをグループに追加
aws iam add-user-to-group --user-name [ユーザー名] --group-name [グループ名]
指定したユーザーを指定したグループに追加します。
ユーザーをグループから削除
aws iam remove-user-from-group --user-name [ユーザー名] --group-name [グループ名]
指定したユーザーを指定したグループから削除します。
ポリシー一覧取得 (管理ポリシー)
aws iam list-policies --scope AWS
AWSが管理するマネージドポリシーを一覧表示します。--scope Localでカスタマー管理ポリシーを表示します。
ポリシーをユーザーにアタッチ
aws iam attach-user-policy --user-name [ユーザー名] --policy-arn [ポリシーARN]
指定したポリシーをIAMユーザーにアタッチします。ポリシーARNはarn:aws:iam::aws:policy/[ポリシー名]のような形式です。
ポリシーをグループにアタッチ
aws iam attach-group-policy --group-name [グループ名] --policy-arn [ポリシーARN]
指定したポリシーをIAMグループにアタッチします。
ユーザーからポリシーをデタッチ
aws iam detach-user-policy --user-name [ユーザー名] --policy-arn [ポリシーARN]
IAMユーザーから指定したポリシーをデタッチします。
ロール一覧取得
aws iam list-roles
アカウント内のIAMロールを一覧表示します。
ロール作成
aws iam create-role --role-name [ロール名] --assume-role-policy-document file://[信頼ポリシーJSONファイル]
新しいIAMロールを作成します。信頼ポリシー(どのエンティティがこのロールを引き受けられるか)をJSONファイルで指定します。
ポリシーをロールにアタッチ
aws iam attach-role-policy --role-name [ロール名] --policy-arn [ポリシーARN]
指定したポリシーをIAMロールにアタッチします。
現在の呼び出し元ID取得
aws sts get-caller-identity
現在AWS CLIを実行しているIAMユーザー、IAMロール、またはAWSアカウントに関する詳細情報を取得します。UserId, Account, Arn が返されます。

EC2 (Elastic Compute Cloud) 💻

仮想サーバー(インスタンス)や関連リソース(セキュリティグループ、キーペアなど)の管理操作です。

目的 コマンド例 説明
インスタンス一覧表示
aws ec2 describe-instances
リージョン内のすべてのEC2インスタンスに関する詳細情報を取得します。多くの情報が含まれるため、--queryオプションでのフィルタリングが有効です。
特定のインスタンス情報表示
aws ec2 describe-instances --instance-ids [インスタンスID1] [インスタンスID2]
指定したインスタンスIDのEC2インスタンスに関する詳細情報を取得します。
インスタンスの状態フィルタリング
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running,stopped"
特定の状態(例: running, stopped)のインスタンスのみをフィルタリングして表示します。複数のフィルタ条件を指定可能です。
インスタンス起動
aws ec2 start-instances --instance-ids [インスタンスID]
停止状態 (stopped) のEC2インスタンスを起動します。
インスタンス停止
aws ec2 stop-instances --instance-ids [インスタンスID]
実行中 (running) のEC2インスタンスを停止します。EBS-backedインスタンスの場合、ストレージは保持されます。
インスタンス終了 (削除)
aws ec2 terminate-instances --instance-ids [インスタンスID]
EC2インスタンスを完全に終了(削除)します。復元はできません。関連付けられたEBSボリュームの削除設定に注意してください。
インスタンス作成
aws ec2 run-instances --image-id [AMI-ID] --instance-type t2.micro --key-name [キーペア名] --security-group-ids [セキュリティグループID] --count 1 --subnet-id [サブネットID]
指定したパラメータに基づいて新しいEC2インスタンスを起動します。AMI ID, インスタンスタイプ, キーペア, セキュリティグループ, サブネットなどを指定します。
セキュリティグループ一覧表示
aws ec2 describe-security-groups
リージョン内のセキュリティグループとそのルールを一覧表示します。
セキュリティグループ作成
aws ec2 create-security-group --group-name [グループ名] --description "[説明]" --vpc-id [VPC-ID]
新しいセキュリティグループを作成します。作成直後はインバウンドルールがありません。
インバウンドルール追加
aws ec2 authorize-security-group-ingress --group-id [グループID] --protocol tcp --port 22 --cidr [許可するCIDR]
指定したセキュリティグループにインバウンド(受信)ルールを追加します。例ではSSH(TCP/22)を特定のCIDRから許可しています。
キーペア一覧表示
aws ec2 describe-key-pairs
リージョンに登録されているキーペアの名前とフィンガープリントを一覧表示します。秘密鍵自体は取得できません。
キーペア作成
aws ec2 create-key-pair --key-name [キーペア名] --query 'KeyMaterial' --output text > [キーペア名].pem
新しいキーペアを作成し、秘密鍵をローカルファイル(例: .pem)に保存します。このコマンド実行時しか秘密鍵は取得できません。
AMI一覧表示 (自身が所有)
aws ec2 describe-images --owners self
自身のアカウントが所有するAMI(Amazon Machine Image)を一覧表示します。
VPC一覧表示
aws ec2 describe-vpcs
リージョン内のVPC(Virtual Private Cloud)を一覧表示します。
サブネット一覧表示
aws ec2 describe-subnets
リージョン内のサブネットを一覧表示します。VPC IDでフィルタリングすることも可能です。

S3 (Simple Storage Service) 💾

オブジェクトストレージサービスであるS3のバケットやオブジェクトを操作します。aws s3apiと高レベルなaws s3コマンドがあります。ここでは主にaws s3コマンドを扱います。

目的 コマンド例 説明
バケット一覧表示
aws s3 ls
所有するすべてのS3バケットを一覧表示します。
バケット内オブジェクト一覧表示
aws s3 ls s3://[バケット名]/[プレフィックス(任意)]
指定したS3バケット内のオブジェクトとプレフィックス(フォルダのようなもの)を一覧表示します。--recursiveオプションで再帰的に表示します。
バケット作成
aws s3 mb s3://[作成するバケット名] --region [リージョン]
新しいS3バケットを作成します。バケット名はグローバルで一意である必要があります。リージョン指定は必須ではありませんが、特定のリージョンに作成したい場合は指定します (例: us-east-1以外)。
バケット削除
aws s3 rb s3://[削除するバケット名] --force
空のS3バケットを削除します。--forceオプションは、バケットが空でない場合でもオブジェクトを削除してからバケットを削除します(注意して使用)。
ファイルアップロード
aws s3 cp [ローカルファイルパス] s3://[バケット名]/[オブジェクトキー]
ローカルファイルをS3バケットにアップロードします。オブジェクトキーに `/` を含めることでフォルダ構造のように見せかけることができます。
ファイルダウンロード
aws s3 cp s3://[バケット名]/[オブジェクトキー] [ローカル保存パス]
S3バケットからオブジェクトをローカルにダウンロードします。
フォルダ(プレフィックス)同期 (アップロード)
aws s3 sync [ローカルフォルダパス] s3://[バケット名]/[プレフィックス]
ローカルフォルダの内容をS3バケットの指定したプレフィックスと同期します。差分のみがアップロードされます。
フォルダ(プレフィックス)同期 (ダウンロード)
aws s3 sync s3://[バケット名]/[プレフィックス] [ローカルフォルダパス]
S3バケットの指定したプレフィックスの内容をローカルフォルダと同期します。差分のみがダウンロードされます。
オブジェクト削除
aws s3 rm s3://[バケット名]/[オブジェクトキー]
S3バケットから指定したオブジェクトを削除します。
フォルダ(プレフィックス)内オブジェクト一括削除
aws s3 rm s3://[バケット名]/[プレフィックス] --recursive
指定したプレフィックス以下のすべてのオブジェクトを再帰的に削除します。
オブジェクト移動/名前変更
aws s3 mv s3://[移動元バケット]/[元キー] s3://[移動先バケット]/[先キー]
S3オブジェクトを移動または名前変更します(実体はコピー&削除)。同一バケット内、異なるバケット間どちらも可能です。
署名付きURL生成
aws s3 presign s3://[バケット名]/[オブジェクトキー] --expires-in [有効期間(秒)]
プライベートなS3オブジェクトに対して、一時的にアクセスを許可する署名付きURLを生成します。有効期間を指定できます。

CloudWatch 📊

AWSリソースのモニタリング、ログの収集と監視を行うサービスです。

目的 コマンド例 説明
アラーム一覧表示
aws cloudwatch describe-alarms
設定されているCloudWatchアラームを一覧表示します。アラーム名や状態でフィルタリングも可能です (--alarm-names, --state-value)。
特定アラーム履歴表示
aws cloudwatch describe-alarm-history --alarm-name [アラーム名] --history-item-type StateUpdate
指定したアラームの状態変更履歴(OK, ALARM, INSUFFICIENT_DATA)を表示します。--history-item-typeで履歴タイプを指定できます。
メトリクス一覧表示
aws cloudwatch list-metrics --namespace AWS/EC2
指定した名前空間(例: AWS/EC2, AWS/S3)に存在するメトリクスを一覧表示します。
メトリクス統計取得
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --dimensions Name=InstanceId,Value=[インスタンスID] --start-time [開始日時] --end-time [終了日時] --period 300 --statistics Average
指定したメトリクスの統計データ(平均、最大、最小など)を取得します。開始/終了日時 (ISO 8601形式)、期間(秒)、統計の種類を指定します。
ロググループ一覧表示
aws logs describe-log-groups
CloudWatch Logsのロググループを一覧表示します。--log-group-name-prefixでプレフィックスによる絞り込みが可能です。
ログストリーム一覧表示
aws logs describe-log-streams --log-group-name [ロググループ名]
指定したロググループ内のログストリームを一覧表示します。通常、新しい順に表示されます。
ログイベント取得
aws logs get-log-events --log-group-name [ロググループ名] --log-stream-name [ログストリーム名] --limit 10
指定したログストリームからログイベントを取得します。--start-time, --end-timeで期間を指定したり、--limitで件数を制限できます。
ログイベントフィルタリング検索
aws logs filter-log-events --log-group-name [ロググループ名] --filter-pattern "ERROR"
複数のログストリームを横断して、指定したフィルタパターン(例: “ERROR”、”{$.userId = 1234}”など)に一致するログイベントを検索します。

RDS (Relational Database Service) 🏦

リレーショナルデータベースのセットアップ、運用、スケーリングを容易にするサービスです。

目的 コマンド例 説明
DBインスタンス一覧表示
aws rds describe-db-instances
リージョン内のRDS DBインスタンスを一覧表示します。
特定のDBインスタンス表示
aws rds describe-db-instances --db-instance-identifier [DBインスタンス識別子]
指定したDBインスタンス識別子の詳細情報を表示します。
DBスナップショット一覧表示
aws rds describe-db-snapshots --db-instance-identifier [DBインスタンス識別子]
指定したDBインスタンスに関連する手動および自動スナップショットを一覧表示します。インスタンス識別子を省略すると全てのスナップショットが表示されます。
DBスナップショット作成
aws rds create-db-snapshot --db-instance-identifier [DBインスタンス識別子] --db-snapshot-identifier [スナップショット識別子]
指定したDBインスタンスの手動スナップショットを作成します。
DBインスタンス再起動
aws rds reboot-db-instance --db-instance-identifier [DBインスタンス識別子]
指定したDBインスタンスを再起動します。フェイルオーバーを伴う場合があります。
DBインスタンス停止
aws rds stop-db-instance --db-instance-identifier [DBインスタンス識別子]
指定したDBインスタンスを停止します。最大7日間停止でき、その後自動的に起動されます。(一部エンジン、構成では利用不可)
DBインスタンス起動
aws rds start-db-instance --db-instance-identifier [DBインスタンス識別子]
停止中のDBインスタンスを起動します。

Lambda ⚡

サーバーレスコンピューティングサービスLambdaの関数を管理・実行します。

目的 コマンド例 説明
関数一覧表示
aws lambda list-functions
リージョン内のLambda関数を一覧表示します。
関数情報取得
aws lambda get-function --function-name [関数名]
指定したLambda関数の設定情報(ランタイム、ロール、メモリサイズなど)を取得します。
関数同期実行
aws lambda invoke --function-name [関数名] --payload '[JSONペイロード]' output.json
指定したLambda関数を同期的に実行し、結果(レスポンスペイロード、実行ログなど)をoutput.jsonファイルに出力します。--payloadで入力データを渡します。
関数非同期実行
aws lambda invoke --function-name [関数名] --invocation-type Event --payload '[JSONペイロード]' output.json
指定したLambda関数を非同期的に実行します。即座にステータスコード 202 が返され、バックグラウンドで実行されます。
関数コード更新 (Zip)
aws lambda update-function-code --function-name [関数名] --zip-file fileb://[デプロイパッケージ.zip]
指定したLambda関数のコードをローカルのZipファイルで更新します。fileb://プレフィックスが必要です。
関数設定更新
aws lambda update-function-configuration --function-name [関数名] --memory-size 256 --timeout 60
指定したLambda関数の設定(メモリサイズ、タイムアウト、環境変数、実行ロールなど)を更新します。
関数作成
aws lambda create-function --function-name [関数名] --runtime [ランタイム(例: python3.9)] --role [実行ロールARN] --handler [ハンドラー名(例: lambda_function.lambda_handler)] --zip-file fileb://[デプロイパッケージ.zip] --memory-size 128 --timeout 30
新しいLambda関数を作成します。ランタイム、実行ロール、ハンドラー名、デプロイパッケージなどを指定します。
関数削除
aws lambda delete-function --function-name [関数名]
指定したLambda関数を削除します。

CloudFormation 🏗️

インフラストラクチャをコードとして管理 (IaC) するCloudFormationのスタックを操作します。

目的 コマンド例 説明
スタック一覧表示
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE
CloudFormationスタックを一覧表示します。--stack-status-filterで特定の状態のスタックのみを表示できます。
スタック詳細表示
aws cloudformation describe-stacks --stack-name [スタック名]
指定したスタックの詳細情報(パラメータ、出力、リソースなど)を表示します。
スタックリソース一覧表示
aws cloudformation list-stack-resources --stack-name [スタック名]
指定したスタックによって作成されたAWSリソースを一覧表示します。
スタックイベント表示
aws cloudformation describe-stack-events --stack-name [スタック名]
指定したスタックの作成、更新、削除中のイベント履歴を表示します。トラブルシューティングに役立ちます。
テンプレート検証
aws cloudformation validate-template --template-body file://[テンプレートファイル(YAML or JSON)]
CloudFormationテンプレートファイルの構文が正しいかを検証します。スタック作成前に実行すると便利です。
スタック作成/更新 (チェンジセット)
aws cloudformation deploy --template-file [テンプレートファイル] --stack-name [スタック名] --capabilities CAPABILITY_IAM --parameter-overrides Key1=Value1 Key2=Value2
テンプレートに基づいてスタックを作成または更新します。変更内容を確認するためのチェンジセットが自動的に作成・実行されます。IAMリソース作成には--capabilitiesが必要です。パラメータは--parameter-overridesで指定します。
スタック削除
aws cloudformation delete-stack --stack-name [スタック名]
指定したCloudFormationスタックと、それによって作成されたリソースを削除します。(削除保護されたリソースや、手動で変更されたリソースは削除に失敗することがあります。)
チェンジセット作成
aws cloudformation create-change-set --stack-name [スタック名] --template-body file://[テンプレートファイル] --change-set-name [チェンジセット名] --capabilities CAPABILITY_IAM
スタックを実際に変更する前に、どのような変更が行われるかのプレビュー(チェンジセット)を作成します。
チェンジセット実行
aws cloudformation execute-change-set --change-set-name [チェンジセットARNまたは名前] --stack-name [スタック名]
作成したチェンジセットを実行して、スタックに変更を適用します。

CLI 出力制御

--output--queryオプションを使用して、AWS CLIの出力を整形・抽出する方法です。

目的 コマンド例 説明
JSON出力
aws ec2 describe-instances --output json
出力をJSON形式にします。デフォルトまたはaws configureで設定可能です。
Text出力
aws ec2 describe-instances --output text
出力をタブ区切りのテキスト形式にします。--queryと組み合わせると特定の値を抽出しやすいです。
Table出力
aws ec2 describe-instances --output table
出力を人間が読みやすい表形式にします。
特定キーの値抽出
aws iam get-user --query 'User.UserName' --output text
--queryでJMESPath式を指定し、JSONレスポンスから特定のキー(この例ではUserオブジェクト内のUserName)の値を取得します。
リストの最初の要素抽出
aws ec2 describe-instances --query 'Reservations[0].Instances[0].InstanceId' --output text
リスト(配列)の特定のインデックス(この例では最初の要素[0])を指定して要素を抽出します。
リスト全要素から複数キー抽出
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, State.Name, Placement.AvailabilityZone]' --output table
リストのすべての要素 ([*]) から、複数のキー ([...]内にカンマ区切りで指定) を抽出します。Table形式やText形式で見やすく表示できます。
条件によるフィルタリング
aws ec2 describe-instances --query 'Reservations[*].Instances[?State.Name==`running`].[InstanceId, PublicIpAddress]' --output table
JMESPathのフィルタ式 ([?条件式]) を使用して、特定の条件(この例ではState.Namerunning)に一致する要素のみを抽出します。
複数値の平坦化
aws ec2 describe-security-groups --group-ids [グループID] --query 'SecurityGroups[].IpPermissions[].IpRanges[].CidrIp' --output text
ネストされたリスト構造から特定の値(この例では許可されたCIDRブロック)をすべて抽出し、平坦なリストとして表示します。Text出力では改行区切りになります。

コメント

タイトルとURLをコピーしました