AWSのコマンドについてまとめています。
AWSのコマンドラインインタフェース(CLI)
AWSには、AWSマネジメントコンソールから開ける各種AWSサービスのGUI画面のほか、コマンドラインで操作できるコマンドラインインタフェース(AWS CLI)やプログラムやシェルスクリプトに組み込みが可能なAPI(AWS API)といったインタフェースが提供されています。
コマンドラインインタフェースのメリットは、複数の異なるAWSサービスを同一のインタフェースから連続して操作できるという点、操作記録のログが取りやすいという点、BATファイルのように単純な処理を自動化しやすいというメリットがあります。デメリットは、コマンドを知らないと実行できないという点です。
【関連記事】
▶AWSをエンジニアっぽく黒画面でコマンド操作「AWS CLI」 | ポテパンスタイル
AWSのコマンドラインインタフェース(CLI)のインストール
AWSのコマンドラインインタフェースを利用するには、AWS CLIをインストールする必要があります。AWS CLIは、Linux、Mac OS、Windows用が用意されています。
たとえばLinux版のAWS CLIは、CentOS、Fedora、Ubuntu、Amazon Linux 1、Amazon Linux 2、LinuxARMといった最近のディストリビューションの64ビットバージョンに対応しています。
【関連記事】
▶AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認
お使いの環境にAWS CLIがインストールされているかを確認するには、以下のコマンドでawsのバージョンを表示させます。
$ aws --v aws-cli/2.2.31 Python/3.8.8 Linux/5.4.72-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off
AWS CLIは64ビット専用です。32ビット環境にインストールしても、以下のエラーが出力されてコマンドの実行ができません。(Ubuntu 32ビットで実行した例)
$ aws -bash: /usr/local/bin/aws: バイナリファイルを実行できません: 実行形式エラー
aws cliでAWSサービスを操作するには、アクセスキーの登録が必要です。
【関連記事】
▶AWSのアクセスキーの作成や管理方法 シークレットアクセスキーの確認方法は無い
aws configreで、AWS CLIにアクセスキーを登録
aws configureを実行してアクセスキーIDと、シークレットアクセスキーを登録します。すでに登録されている場合には、AWS Access Key ID(アクセスキーID)とAWS Secret Access Key (シークレットアクセスキー)の一部が表示されます。
$ aws configure AWS Access Key ID [****************WQII]: AWS Secret Access Key [****************sGj1]: Default region name [ap-northeast-1]: Default output format [text]:
アクセスキー情報は、Linux版AWS CLIだと、~/.aws/configと、~/.aws/credentialsにファイル保存されます。
$ ls ~/.aws cli config credentials $ cat ~/.aws/config [default] region = ap-northeast-1 output = text $ cat ~/.aws/credentials [default] aws_access_key_id = ############## aws_secret_access_key = ################
実際には、~/.aws/credentialsのアクセスキーIDと、シークレットアクセスキーは暗号化されていない平文で保存されています。AWSの公式サイトによると、「アクセスキーを定期的に変更する」ことが推奨されています。
また、非公式のaws vaultというオープンソースソフトウェアを使用することで、Linux端末に保管されるアクセスキーIDとシークレットアクセスキーを暗号化することができます。aws vaultはGitHubに共有されています。
関連)AWS Vaultで端末内のAWSアクセスキー平文保存をやめてみた | DevelopersIO
AWS CLIのコマンド一覧
AWS CLIのVer2以降では、コマンド補完機能があり、以下のように「–cli-auto-prompt」オプションを付加して実行すると、1文字入力するごとに候補が表示されます。
aws --cli-auto-prompt
コマンドラインインタフェースでありながら、メニュー選択のような感覚でコマンドを選べるんですね。
aws コマンドは以下のように、awsに続けて<コマンド> <サブコマンド> <オプション>といったふうに必要な値を指定します。
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
例えば、ec2のインスタンスを起動するコマンドは以下のようになります。
aws ec2 run-instances \ --image-id ami-xxxxx\ --count 1 \ --instance-type t2.micro \ --key-name example_key_pair \ --security-groups example-sg-group
<command>に当たる部分の一覧は、「aws xxx」のように存在しないコマンドを指定すると表示されます。
$ aws xxx usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: : : aws: error: argument command: Invalid choice, valid choices are: accessanalyzer | acm acm-pca | alexaforbusiness amp | amplify amplifybackend | apigateway apigatewaymanagementapi | apigatewayv2 appconfig | appflow appintegrations | application-autoscaling application-insights | applicationcostprofiler : :
AWSのコマンドのまとめ
- AWSはコマンドラインインタフェースが用意されていて、AWS CLIコマンドをインストールすると使えるようになる
- AWS CLIコマンドを使用するには、アクセスキーの登録が必要
- AWS CLI(Ver2以降)では、コマンド補完機能があり、1文字入力すると候補が表示され、メニュー選択形式のように使用できる