AWS CLIのインストール・使い方について

aws_logoAWS

この記事の内容

この記事では、AWS CLIがそもそもどういうものなのかの概要を説明した上で、AWS CLIのインストール方法やAWS CLIの基本的な使い方について解説をします。

AWS CLIとは

AWS CLIとは、その名の通りCLI(コマンドラインインターフェース)でAWSの様々なサービスと連携を行うことができるツールになります。

例えば、コマンドラインを通して、S3にファイルをアップロードしたり、EC2のインスタンスの状態をコマンドライン上に表示したりといったことができます。

このAWS CLIをうまく使うことで、Windowsであればバッチファイル、Linuxであればシェルで特定の一連の流れを自動化するといったことができます。

また、AWSの各種サービスを用いたテストを行う場合に繰り返し行う必要がある手順や、テスト実施時のエビデンスをまとめて実施できるというユースケースにも対応ができます。

このようにAWS CLIを使いこなすことができれば、繰り返し行うタスクなどを効率化できるため、開発スピードを上げることはもちろん、品質向上にも役に立つと思いますので、ぜひ学ぶことをオススメします。

AWS CLIのインストール方法

AWS CLIのインストール

インストール方法については、お使いのOSによって手順が変わってきます。以下のページを参考にインストールしてもらえれば大丈夫です。

Installing or updating the latest version of the AWS CLI - AWS Command Line Interface
Install the AWS CLI on your system.

AWS CLIインストール後に、IAMユーザのアクセスキーとシークレットを設定する必要があります。キーを発行するには、「新規IAM ユーザ作成してキーを発行する」、「既存のIAMユーザからキーを発行する」の大きく2種類あります。

新規IAM ユーザ作成してキーを発行する

新規のIAMユーザを作成してキーを作成する場合、IAMユーザを作成する際に、AWSの認証タイプを選択で「アクセスキー・プログラムによるアクセス」にチェックを入れて作成を行います。

作成後に、アクセスキーおよびシークレットアクセスキーが発行されます。シークレットは生成時にしか画面で確認できませんので注意が必要です。なくした場合は、再度発行する形になります。

csvダウンロードボタンでアクセスキーやシークレットをCSVファイルに落とすことができますので、こちらでダウンロードして、適切に管理するとよいかと思います。

既存のIAMユーザからキーを発行する

既存のIAMユーザからキーを発行する場合は、IAMユーザの「認証情報」タブから、アクセスキーの生成でキーを発行することができます。

 

アクセスキー、シークレットの設定

aws configureコマンドを使用して、アクセスキーやシークレットの設定を行います。Windowsの場合は、コマンドプロンプトから実行していきます。

Configuration basics - AWS Command Line Interface
Configure the AWS Command Line Interface (AWS CLI) and specify the settings for interacting with AWS.

これでAWS CLIを使用する準備が整いましたので、使用方法をいくつか例を挙げて説明します。

AWS CLI使用方法

EC2の一覧を表示する | ec2 describe-instances

以下のコマンドで、EC2インスタンスの一覧を取得します。

aws ec2 describe-instances
{
    "Reservations": [
        {
            "Groups": [],
            "Instances": [
                {
                    "AmiLaunchIndex": 0,
                    "ImageId": "ami-03d79d440297083e3",
                    "InstanceId": "i-047c79c002510dbcd",
…

以下のように、インスタンスIDや必要な部分だけ取り出すこともできます。

aws ec2 describe-instances --instance-ids i-0e24780a7463bb5e8 i-047c79c002510dbcd --query "Reservations[].Instances[].InstanceId"
[
    "i-047c79c002510dbcd",
    "i-0e24780a7463bb5e8"
]

以下のように指定すると、インスタンスのImageIdと起動しているかの状態、タグ情報を出力できます。

aws ec2 describe-instances --query 'Reservations[].Instances[].[ImageId,State.Name,Tags]'
[
    [
        "ami-03d79d440297083e3",
        "stopped",
        [
            {
                "Key": "Name",
                "Value": "ec2-test-2"
            }
        ]
    ],
    [
        "ami-03d79d440297083e3",
        "stopped",
        [
            {
                "Key": "Name",
                "Value": "ec2-test-1"
            }
        ]
    ]
]
describe-instances — AWS CLI 2.7.35 Command Reference

S3の一覧を表示する | s3 ls

以下のようにs3 lsコマンドを使用すると、指定したバケット以下のコンテンツを表示することができます。

aws s3 ls s3://test-remix-01/ --recursive
2022-01-30 22:10:11          0 test001/
2022-01-30 22:10:35          0 test001/a.txt
2022-01-30 22:10:46          0 test001/b.txt
ls — AWS CLI 2.7.35 Command Reference

S3へファイルをアップロード・ダウンロード| s3 cp

以下のようにs3 cpコマンドを用いることにより、ファイルをアップロード・ダウンロードできます。

また、S3間でのコピーを行うこともできます。

構文 aws s3 cp [アップロード元パス] [アップロード先パス]

例(ローカルからS3へ) aws s3 cp test.txt s3://mybucket/test2.txt
例(S3からローカルへ) aws s3 cp test.txt s3://mybucket/test2.txt
例(S3からS3へ) aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt

AWS CLIコマンド一覧

AWS CLIのコマンド一覧は以下から確認することができます。

AWS CLI Command Reference — AWS CLI 2.7.35 Command Reference

コマンドのヘルプを見るには

各コマンドの後ろにhelpと入れると、細かなhelpを見ることができます。

例えば、aws s3のコマンドのヘルプを見る場合は、aws s3 helpと入力します。

Getting help with the AWS CLI - AWS Command Line Interface
Getting help with the AWS Command Line Interface.

コマンド補完を行うには

コマンドを記載して使うだけですが、この際に便利になるのがAWS CLIはコマンドを補完する機能があります。

コマンド補完は、Tabを押すとコマンドの補完を行ってくれるものになります。例えばaws sと入力して、Tabを押すと、aws s3のように候補を補完してくれる機能になります。便利なので使用することをオススメします。

Command completion - AWS Command Line Interface
Configure autocompletion for AWS CLI commands.

結果をファイルに保存する

結果をファイルに保存する場合は、リダイレクトを以下のように使用します。以下の例の場合、コマンドの結果が、s3_list.txtに保存することができます。

aws s3 ls s3://test-remix-01/ --recursive > s3_list.txt

コメント