綺麗に死ぬITエンジニア

Amazon Web Servicesを管理するためのCLI「awless」

2017-02-23

Amazon Web Services(AWS)の管理や操作ができるコマンドといえば、公式にAWSによって開発されているawsコマンドがあります。

今回は、新たにもう一つの選択肢として、awlessなるコマンドラインツールを見つけたので、紹介します。

「awless」とは

awlessは、AWSを管理するための、高速で強力で使いやすいコマンドラインインターフェース(CLI)です。

GitHub上でオープンソースで開発されています。2017年2月現在はまだAlpha releaseとなっており、現在進行形で活発に開発が行われているプロジェクトです。

awlessコマンドを利用することで、AWSインフラストラクチャーを管理する新しいアプローチをもたらします。

利用方法

awlessコマンドは、awless [command]の形式でサブコマンドと一緒に利用するのが基本の形です。それぞれ、コマンドやオプションによって以下のような特徴を持ちます。

  • awless list: AWS EC2、IAM、およびS3のマルチリージョンクラウドリソースのわかりやすい一覧表示
  • --format: 人間も機械も理解しやすい複数の出力フォーマット(テーブル、ツリー、csv、json等)
  • awless show: 特定のIDや名前を持つリソースの探索
  • awless run my-awless-templates/create_my_infra.txt: 強力なawlessテンプレートを使用した、クラウドリソースの作成、更新、削除(CRUD)
  • awless create instance ... awless create vpc ... awless attach policy ...: 強力なCRUD
  • awless log: すべてのCLIテンプレート実行のレポート
  • awless revert: 実行されたテンプレートとリソースの作成の取消
  • awless inspect: クラウドリソースグラフの分析を実行するCLIユーティリティ
  • awless sync: ローカルでリソースを読み込んで保存する、手動同期モード
  • awless completion: Unix / Linuxのbashとzshにおける自動補完機能
  • awless history: ローカルの変更履歴とバージョン管理

わかりやすい表示であったり、親切なその他の機能によって、awsコマンドにはない便利さを持っています。

インストール方法

以下のいずれかの方法でインストールできます。

  • GitHubから最新版のバイナリを取得する
  • Golangを既にインストールしている場合は、次のコマンドでソースをビルドする:go get github.com/wallix/awless
  • macOSの場合は、Homebrew経由でもインストールできる:brew tap wallix/awless; brew install awless

インストール後は、AWSの認証情報を設定します。

既にawsコマンドやaws-shellを利用できている方は不要です。~/.aws/credentialsから自動で認証情報を読み込みます。

認証情報を設定したことがない場合は、IAMコンソールからAWS資格情報を取得します。その後、~/.aws/credentials(Unix)または%UserProfile%\.aws\credentials(Windows)にダウンロードして保存することで、設定できます。

インストールと認証情報の設定が終わったら、以下のコマンドを入力してみましょう。S3のバケット一覧がテーブル形式で表示されるはずです。

awless list buckets

初めてコマンドを利用した際には、初期設定内容と初期設定が終了した旨を告げるメッセージも共に表示されます。2回目以降は表示されないので安心しましょう。

awlessの詳しい利用方法は、awless --helpと入力するか、こちらこちらに記載されています。

まとめ

今回はAWSを管理するためのコマンドラインツール「awless」を紹介しました。

2017年2月現在、まだ開発が進んでいる最中なので、ドキュメントの充実や更なる機能追加などは今後に期待といった感じです。

AWSが公式に用意しなさそうな便利機能をawlessコマンドの導入で補うというアプローチはとても良さそうなので、興味をお持ちの方がいましたら、ぜひ試してみてはいかがでしょうか