はじめに
タイトルの通りです。備忘録として残しておきます。
AWS CLIのインストール手順自体は、公式ドキュメントに記載されています。
「AWS CLIっていまいち分からない!」という方は、なんだかんだ言ってブラックベルトを見るのが手っ取り早いと思います。
公式動画
[AWS Black Belt Online Seminar] AWS Command Line Interface
本記事の対象環境は以下となります。
・Windows10
・Windows PowerShell、VScodeなどのローカル環境からの利用。
手順は以下となります。
順番 | 内容 |
---|---|
1. | Python3をインストール |
2. | AWS CLIをインストール |
3. | AWS CLIの初期設定 |
1. Python3をインストール
既にインストールされている方は、飛ばして下さい。
本記事でPython3のインストール方法は解説しませんが、こちらの記事などが参考になると思います。
Python2は既にサポートが終了しているため、古いバージョンがインストールされている場合は、Python3へのバージョンアップを行いましょう。
2. AWS CLIをインストール
冒頭にも記載したこちらのページから、AWS CLIをインストールします。
インストーラーに従っていけば大丈夫です。
3. AWS CLIの初期設定
AWS CLIのセットアップを行います。
IAMユーザーのアクセスキーとシークレットキーが必要です。
なお、シークレットキーはユーザー作成時にしか確認できない(CSVを取得できない)ので、注意しましょう。
アクセスキーとシークレットキーの用意ができたら、ターミナルを開きます。
aws configure
と入力し、以下の設定を行います。
aws configure
# 例
AWS Access Key ID [None]: hogehogehoge
AWS Secret Access Key [None]: hogehogehoge
Default region name [None]: ap-northeast-1
Default output format [None]: json
バージョン2からは、出力フォーマットにyamlの指定なども可能となったようです。
設定を行えば、yq
コマンドも使用可能です。
再設定を行う場合も、aws configure
と入力します。
AWS CLIの設定自体はこれで完了です。
コマンドが使えるかどうか、確かめてみてください。
# 例:EC2インスタンスのidを取得
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,
InstanceType, State.Name]' --output table
念の為書いておきますが、アクセスキーとシークレットキーを外部に公開するのは絶対にやめましょう。
「不正アクセスされて膨大な請求が!」なんて話はよくネットで見かけます。
以下、windows環境で想定されるエラーケースを記載します。
エラーケース① <>が使えない
例えばこんなコマンドを入力したとして、
# EC2インスタンスの停⽌
aws ec2 stop-instances --instance-ids <インスタンスID>
こんなエラーが返ってきます。
The '<' operator is reserved for future use. #演算子は将来の使用のために予約されています。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
powershellでは、<>(演算子)
は予約されているので使えないとのこと。
解決方法としては、コマンドの<>を外すだけで大丈夫です。
# EC2インスタンスの停⽌
× aws ec2 stop-instances --instance-ids <インスタンスID>
○ aws ec2 stop-instances --instance-ids インスタンスID
エラーケース② スクリプトを実行できない
スクリプトを実行したとして、こんなエラーが想定されます。
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
原因は、powershellの実行ポリシーです。
windows powershellの規定の実行ポリシーは、Restricted
となっています。
コマンドは許可し、スクリプトは許可しない設定です。
マルウェアの実行を防ぐためなど、セキュリティに配慮した設定となっています。
実際に、ターミナルから実行ポリシーを確かめてみましょう。
# 実行ポリシーの確認
Get-ExecutionPolicy
実行ポリシーの変更方法としては、以下の記事が参考になります。
個人的には、不用意に実行ポリシーを変更したくないので、セッション中のみスクリプトの実行を許可するよう変更する、以下のコマンドがおすすめです。
Set-ExecutionPolicy RemoteSigned -Scope Process -Force
以下のコマンドで、スコープごとの実行ポリシーの確認ができます。
Get-ExecutionPolicy -List
おわりに
AWS Toolkitなどの拡張機能も用意されているので、気になる方は是非試してみて下さい。
この記事が少しでも参考になれば幸いです。