AWS

【俺の備忘録】AWS CLI 編

こんにちは!
クラウドエンジニアの湖山です。

AWS CLI は非常に強力で便利なツールですが、全てのコマンドを覚えておくことは難しいでしょう。

helpコマンドを使用すると説明は表示されるが、どうせなので調べたコマンドはここに備忘録として残していくようにします。
ご参考になれば幸いです。

(随時追記していく予定)

コマンド構造

aws [options] <command> <subcommand> [parameters]
コマンド 必須 説明
aws 必須 aws プログラムのベースコール
[options] オプション設定 ※次セクション参照
<command> 必須 どのサービスに対して実行するのか 例) ec2, s3, rdsなど
<subcommand> 必須 どのような操作を行うのか 例) EC2 一覧取得 → describe-instances
[parameters] コマンドに対するパラメーター

オプション (options)

オプション 説明
--debug bool デバッグログの出力設定 (true : 出力する)
--endpoint-url bool 指定したURLでコマンドのデフォルトURLを上書き
--no-verify-ssl bool SSL証明書を検証の有無 (true : 検証しない)
--no-paginate string ページネーション設定 (true : 無効)
--output string 出力形式の設定
・json
・text
・table
・yaml
・yaml-stream
--query string 応答データのフィルタリングに使用するJMESPath
--profile string 認証情報ファイルからプロファイルの指定
--region string リージョン指定
--version string バージョン指定
--color string カラー設定
・on
・off
・auto
--no-sign-request bool 署名なしリクエスト設定 (true : 署名なし)
--ca-bundle string SSL証明書を検証するときに使用するCA証明書
--cli-read-timeout int 秒単位の最大ソケット読み取り時間
--cli-connect-timeout int 秒単位の最大ソケット接続時間
--cli-binary-format string バイナリのフォーマット
・base64 (デフォルト)
・raw-in-base64-out

引用元:CLI リファレンス

各サービスごとのコマンド集

S3

バケット作成 (mb)

aws s3 mb s3://bucket-name

・バケット名は全世界で一意
・小文字の英文字、数字、ハイフン、ピリオド

バケット一覧表示 (ls)

aws s3 ls
aws s3 ls s3://bucket-name
aws s3 ls s3://bucket-name/path/

バケット削除 (rb)

aws s3 rb s3://bucket-name

・バケットが空である必要がある
・強制的に削除する場合、[--force]オプションを付与

ファイルコピー (cp)

aws s3 cp <source> <target> [--options]     # 基本構文
aws s3 cp <file> s3://bucket-name/path/     # S3へアップロード
aws s3 cp s3://bucket-name/path/ <file>     # S3からダウンロード
aws s3 cp <Dir> s3://bucket-name/path/ --recursive   # <Dir>配下全てをS3へアップロード
aws s3 cp . s3://bucket-name/path/ --recursive --exclude "*.txt"  # カレントディレクトリの txtファイル以外をS3へアップロード
aws s3 cp . s3://bucket-name/path/ --recursive --exclude "*.txt" --include "Test*.txt"  # 上記に加えて Test*.txt をS3へアップロード

・サブディレクトリも一緒に操作する場合、[--recursive]オプションを付与
・ファイル操作対象から除外したい場合、[--exclude]オプションを付与
・ファイル操作対象に含めたい(除外しない)場合、[--include]オプションを付与

ファイル移動 (mv)

aws s3 mv <source> <target> [--options]     # 基本構文
aws s3 mv <file> s3://bucket-name/path/     # S3へ移動
aws s3 mv s3://bucket-name/path/ <file>     # S3から移動
aws s3 mv <Dir> s3://bucket-name/path/ --recursive   # <Dir>配下全てをS3へ移動
aws s3 mv . s3://bucket-name/path/ --recursive --exclude "*.txt"  # カレントディレクトリの txtファイル以外をS3へ移動
aws s3 mv . s3://bucket-name/path/ --recursive --exclude "*.txt" --include "Test*.txt"  # 上記に加えて Test*.txt をS3へ移動

・サブディレクトリも一緒に操作する場合、[--recursive]オプションを付与
・ファイル操作対象から除外したい場合、[--exclude]オプションを付与
・ファイル操作対象に含めたい(除外しない)場合、[--include]オプションを付与

EC2

インスタンス起動 (start-instances)

aws ec2 start-instances --instance-ids <インスタンスID> <インスタンスID> …
パラメーター 説明
--instance-ids list 対象のインスタンスID
(複数指定可能)
[--additional-info] string 予約済み
[--dry-run] boolean アクションに必要な権限チェック
実際のリクエストは行わない
– エラー応答はDryRunOperation
– 正常の応答はUnauthorizedOperation
[--cli-input-json] string インプットファイルを指定
[--generate-cli-skeleton] string スケルトンテンプレートを生成
[--cli-auto-prompt] boolean 対話型の入力形式にする

インスタンス起動 (stop-instances)

aws ec2 stop-instances --instance-ids <インスタンスID> <インスタンスID> …
パラメーター 説明
--instance-ids list 対象のインスタンスID
(複数指定可能)
[--hibernate] boolean EC2インスタンスの休止(ハイバネーション)
[--dry-run] boolean アクションに必要な権限チェック
実際のリクエストは行わない
– エラー応答はDryRunOperation
– 正常の応答はUnauthorizedOperation
[--force ] boolean 強制的に停止する
[--cli-input-json] string インプットファイルを指定
[--generate-cli-skeleton] string スケルトンテンプレートを生成
[--cli-auto-prompt] boolean 対話型の入力形式にする

ABOUT ME
湖山 貴裕
はじめまして。 二児のお父さんプログラマーです。最近キャンプにも興味あり。夏には庭でキャンプしようともくろみ中。ボドゲ好き。チョコ好き。茶道経験者。 2012年大学卒業→IT企業就職 Java,VB.NET, C#, javascript等の企業向けシステム開発/主にバックエンドを担当/AWSを少しかじる→2020年フリーランスエンジニアへ転身 広島でAWS案件にて楽しく活動中