AWS CLI IT

AWS CLI のメリットとデメリット

AWS CLI のメリット

AWS CLIのメリットを3つに絞って記載しました。

  1. AWSコンソール(GUI, マウスでポチポチできる画面)が更新されても使用可能
  2. 作業工数と作業ミスの削減が可能
  3. AWSコンソールでできない操作が実施可能

AWSコンソールが更新されても使用可能

AWSコンソールは、Amazon Web Services(AWS)というクラウドサービスを使うための画面です。この画面では、マウスを使ってボタンをクリックしたり、操作をすることでAWSを利用できます。

AWSのコンソール

しかし、この画面は時々変わることがあります。それによって、使い方が少し変わることがあります。

ALB作成画面 左:旧画面 右:新画面

作業時のことを考えてみます。作業手順書にコンソールのキャプチャが挿入されていて、作業時にコンソールが更新されている場合、手順書と異なりますよね。企業の作業方針によりますが、一旦上長に報告したり作業日を変更したりしないといけないかもしれませんよね。

一方、AWS CLIというツールを使うと、コンソールが変わっても同じ方法でAWSを操作できます。AWS CLIは、マウスではなく、キーボードからコマンド(指示)を入力してAWSを操作するツールです。なのでコンソールに依存せずAWSを操作することができます。

コマンドが変わるときはあるか?

ある。

AWS CLI は2020年2月10日にバージョン1からバージョン2に更新されています。この更新でコマンドが変わっています。

作業工数と作業ミスの削減が可能

まず作業工数とは、作業を完了するためにかかる時間のことです。AWS CLIを使うと、同じ作業を何度も繰り返すことなく、コンピュータに指示を出すことで自動的に作業をさせることができます。これによって、手作業で行うよりもはるかに速く、簡単に作業ができるようになります。

例えば、同じ権限を持つIAMポリシーを100個作成しないといけない場合(そもそもそんな作業はどうかという話は置いておいて)、AWSのコンソールからIAMポリシーを100個作成しようとすると1ポリシーずつ作成しないといけないので作業工数が多い。しかし、CLIなら下のようなコマンドを実行するだけなので作業工数が少ない。

#!/bin/bash

# ポリシーが含む権限のJSONドキュメント(ポリシー本文)を作成
policy_document='{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:*"
            ],
            "Resource": "*"
        }
    ]
}'

# 100個のIAMポリシーをループで作成
for i in {1..100}
do
    policy_name="MyPolicy-${i}"
    echo "Creating Policy: ${policy_name}"
    aws iam create-policy --policy-name ${policy_name} --policy-document "${policy_document}"
done

また、人間が作業をすると、時々ミスをしてしまうことがあります。しかし、AWS CLIを使うと、作業を自動で実施してくれるのでミスが減る可能性が高くなります。手作業がなくなる分、安心して作業をすることができます。

AWSコンソールでできない操作が実施可能

AWSの一部の操作はCLIやAPI からでないと実施できないものもあります。

例えば、S3 MFA削除の設定があります。

AWS Management Console を使用して MFA Delete を有効にすることはできません。AWS Command Line Interface (AWS CLI) または API を使用する必要があります。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html

デメリット

AWS CLIのデメリットを3つに絞って記載しました。

  1. コードに慣れていないと扱いにくい
  2. 視覚的にわかりにくい
  3. 検証しにくい

コードに慣れていないと扱いにくい

CLIはコマンドで操作するためのものなので、コマンドやプログラムに慣れていないと作成・改修・正当さなどの観点から扱いにくいと感じられる方もいるでしょう。

例えば、CLIスクリプトを作成するにも改修するにもAWS CLIリファレンスや誰かが書いたブログを読みながらまたは、生成系AIと対話して実施するでしょう。また、どこかから拾ってきたコマンドのや生成系AIが作成したコマンドの正当さもコードに慣れていないCLI初学者にとっては判断がつきにくいところでしょう。

視覚的にわかりにくい

CLIではコマンドでAWSを操作します。コマンドでAWSの操作する時は下の図のような画面で行われるので、AWSコンソールで行うクリック操作と比較すると視覚的にわかりにくいですよね。

AWS CloudShell上でAWS CLIを実行してVPCを作成するイメージ
AWSコンソールでVPCを作成するイメージ

検証しにくい

デメリットで記載した「コードに慣れていないと扱いにくい」と被る部分もあるが、コードに慣れていたとしても検証しにくい場合もある。例えば、AWSのサービスで機能追加が行われたとして、その機能の検証をする場合を考える。一旦はコンソールからどんなことができそうかを探っていく方が、コンソール上での説明も記載してくれている場合もあり機能のイメージが付きやすい。

また、誰かから機能検証を依頼されその報告書をまとめる際に、「CLIでこのコマンドを実行した結果こうなりました」と記載するより、コンソールのキャプチャを取得して操作説明を記載した方が喜ばれる場合が多い(体験談)。

-AWS, CLI, IT