AWS CLIにv2が出ていたので、試します。
インストール
Pythonがいらなくなったので、バージョンに悩むことはなくなりました。
公式サイト通りのコマンドを入力してインストールしていきます。 https://aws.amazon.com/jp/blogs/news/aws-cli-v2-is-now-generally-available/
centosで行っていきます。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip $ sudo ./aws/install $ aws --version aws-cli/2.0.7 Python/3.7.3 Linux/3.10.0-957.1.3.el7.x86_64 botocore/2.0.0dev11
特に問題なくインストールできました。
ちなみにRaspberry PiのRaspbianでインストールを試みようとしたら、エラーが出たのでおそらくまだ対応していないと思われます。
CSVインポート
AWS CLIの設定メカニズム AWS CLI v2 では、認証情報を設定するためのいくつかの新しいメカニズムが導入されています。 AWS コンソールで生成された .csv ファイルから認証情報をインポートする新しいaws configure import コマンドが追加されました。
https://aws.amazon.com/jp/blogs/news/aws-cli-v2-is-now-generally-available/
さっそくやってみます。
configure.csv
を作成します。
なお今回は以下のような情報を登録していきます
User name | Password | Access key ID | Secret access key | Console login link |
---|---|---|---|---|
test-user | Hogehoge@1234 | AKIHOGEHOGE | HOGEHOGEHOGEHOGEHOGE | https;//12345678901.signin.aws.amazon.com/console |
User name
はIAMユーザーのユーザー名です。
Password
はAWSコンソールにログインするときのパスワード
Access key ID
とSecret access key
はそのIAMユーザーに対応するもの
Console login link
はコンソールにログインするときのリンクです
$ sudo vim configure.csv User name,Password,Access key ID,Secret access key,Console login link test-user,Hogehoge@1234,AKIHOGEHOGE,HOGEHOGEHOGEHOGEHOGE,https;//12345678901.signin.aws.amazon.com/console
このようにcsvファイルを作成したらターミナルで以下のコマンドを入力してインポートします。
コマンドを実行するディレクトリはcsvファイルがあるディレクトリにしてください。
それ以外のディレクトリで実行する場合は適宜パスを変更してください。
$aws configure import --csv file://configure.csv Successfully imported 1 profile(s)
Successfully
と表示されれば成功です。
defaultプロファイルに上書きされるわけではないので、実際にコマンドを打って使うときにはprofileを指定する必要があります。
例えばEC2インスタンスを起動するコマンドのときはこうします。
$ aws ec2 start-instances --profile test-user --instance-ids i-hogehoge
登録されている一覧はcat ~/.aws/credentials
で見ることができます。
タブ補完
これは従来のAWS CLIから使用できていました。
タブ補完を利用するには以下のコマンドを入力して、有効にする必要があります。
$ complete -C aws_completer aws
再起動すると、またコマンドを打つ必要があるので、必要があれば~/.bash_profile
に追加しておくと再起動後もリセットされずに使えます。
タブ補完を有効にすると、TABキーを押して補完できます。
Auto-prompt
--cli-auto-prompt
というのを使うと、指示に従ってコマンドを入力することができます。
しかし、少しばかり問題が発生しました。
インスタンスを起動するときのawscliです(停止するときでも同様の症状を確認)
auto-promptを利用して、インスタンスを停止しようとしました。
$ aws ec2 start-instances --cli-auto-prompt --instance-ids:i-hogehoge --instance-ids [list]: The IDs of the instances.
選んでねって出るので、最後のやつ押すと
--additional-info [string]: Reserved. --dry-run [boolean]: Checks whether you have the required permissions for the action, without actually making ... --no-dry-run [boolean]: Checks whether you have the required permissions for the action, without actually maki... > [DONE] Parameter input finished
cliを実行するか、表示するか選べるので、実行を選択すると
> Run CLI command Display CLI command
なんかエラーになってしまいます…
An error occurred (InvalidInstanceID.Malformed) when calling the StartInstances operation: Invalid id: "i"
解消できなかったので、Display CLI command
のほうを選択します。
すると、このようにコマンドが表示されます
aws ec2 start-instances --instance-ids i-hogehoge
これを実行すると
$ aws ec2 start-instances --instance-ids i-hogehoge STARTINGINSTANCES i-hogehoge CURRENTSTATE 0 pending PREVIOUSSTATE 80 stopped
このように実行できます。
まだリリースされたばかりなので、不具合的なものでしょうか
おわりに
AWS CLI v2はv1とほぼ互換性が保たれているようです。AWS CLI v2 移行ガイドに下位互換のないものが記されています。
最大の目玉はPythonがなくてもインストール出来るようになったことだと、個人的には思います。
バージョンで悩む必要がないし、様々なサーバーに導入しやすくなりました。