AWS

AWS CLI を使ってみよう! 【実践編】

CLI

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

今回は「AWS CLI を使ってみよう!」の第二弾の【実践編】となります。
前回の記事は以下をご参照ください。

CLI
AWS CLI を使ってみよう! 【導入編】AWS CLI の導入編ということで、インストール手順・初期設定・実行例を解説します。インストール手順は各環境(Linux, Windows, macOS, Docker) 毎にまとめています。...

AWS CLIの使用方法

AWS CLIは、任意のターミナルプログラムからコマンドを実行することで各AWSのサービスの操作が可能となります。
まずはコマンドの構造から確認していきますよう。

コマンド構造

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 リファレンス

ヘルプ (help)

ヘルプは何かとお世話になるコマンドなので覚えておきましょう!
(AWS CLIを触っていたら自然と覚えます)

各コマンドの概要や使用可能なパラメータが確認できます。

aws help
aws <command> help
aws <command> <subcommand> help

AWS CLIの使用例 (EC2インスタンス)

①一覧情報取得

EC2インスタンスの一覧を取得します。

aws ec2 describe-instances

②パラメータ指定で情報取得

①のコマンドに対して、特定のEC2インスタンスのみ取得するようにパラメータ指定しています。

aws ec2 describe-instances --instance-ids i-01234567890abcdef

③インプットファイル読み込み

まず、インプットファイルのフォーマットを作成します。

aws ec2 describe-instances --generate-cli-skeleton > input.json

カレントディレクトリに「input.json」が作成されます。

作成直後は多数のパラメータが定義されていますが、不要な個所は以下のように削除してしまって構いません。

{
    "InstanceIds": [
        "i-01234567890abcdef"
    ]
}

作成したインプットファイルパスを指定し実行すると、②と同様の結果を得ることができます。

aws ec2 describe-instances --cli-input-json file://<インプットファイルパス>

AWS CLIは殆どのコマンドに対してインプットファイル読み込みのパラメーターが存在します。
上手く活用することでコマンドラインがシンプルになり、管理しやすくなります。

④特定の条件で情報取得

インスタンスタイプが「t2.micro」のEC2インスタンス一覧が表示されます。

aws ec2 describe-instances \
--filters "Name=instance-type,Values=t2.micro" \
--query "Reservations[].Instances[].InstanceId" \
--output table
-------------------------
|   DescribeInstances   |
+-----------------------+
|  i-01234567890abcdef  |
|  i-00000000000000000  |
+-----------------------+

上記の例では、
「–filters」で絞り込みを行い、
「–query」で必要な情報のみ抽出し、
「–output」でテーブル形式で出力しています。

まとめ

今回は、AWS CLI 実践編としてコマンド構造の説明と使用例を挙げてみました。

AWS CLI は実際にコマンドを実行することで理解が深まっていくと思いますので自分の手を動かして確認してみてください。

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