プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AWS コマンドラインインターフェイス(CLI)とAmazon EC2 API Toolsの違い

 慣れている方でもわりと混同されているものに、AWSのコマンドラインインターフェイス(CLI)とAmazon EC2 API Toolsがあります。元々あったのがEC2 API Toolsで、Javaベースで作られています。名前の通り、EC2を操作するコマンドを中心に展開されています。それに対してCLIは後発のツールで、Pythonベースで作られています。こちらは、EC2に限らず包括的にAWSを操作する為のツールとなっています。

CLIとEC2 API Toolsのコマンド

 言葉で説明するより、具体的なコマンドを見たらピンとくると思います。

 まずはCLIです。awsコマンドの後に対象のサービス(ec2等)、実行したいコマンドと続けます。下記の例は、インスタンス一覧を表示するコマンドです。実際には、この後に様々なオプションを付けます。

$ aws ec2 describe-instances

 次にEC2 API Toolsのコマンドです。ec2-から全てのコマンドが全て続いています。

$ ec2-describe-instances

 CLIはEC2 API Toolsのコマンド体系を引き継いでいるため、コマンドも非常に似ています。そのため、EC2 API Toolsに習熟していると、CLIもほぼ同様の操作で利用できます。反面、Googleで検索すると、検索結果が両者が混じりあうことが多いので、注意が必要です。

CLIとEC2 API Toolsの関係



 CLIとEC2 API Toolsの関係を、非常に大雑把に捉えると下記のような関係になります。

f:id:dkfj:20150321222250p:plain

 ポイントはCLIはEC2 API Toolsの大部分を包含するものの、完全に包含するものではないという点です。例えば、VM Importを行うec2-import-instanceコマンドは、EC2 API Toolsしかありません。

CLIとEC2 API Toolsのどちらを使うべきか?



 特別な事情がない限り、CLIを使うべきです。カバー範囲の広さや更新頻度など、CLIに分があります。また、見過ごせないのは、EC2 API ToolsはJavaベースということです。コマンドラインで実行するには、意外に負荷が大きいのです。CPUを結構使うので、microなどの小さなインスタンスの場合、高頻度で利用するとCPUが100%で張り付く場合もあります。

まとめ



 ということで、CLIがお勧めです。3/25に発売の「Amazon Web Services パターン別構築・運用ガイド」にも、結構CLIを取り上げています。Windows,Mac,Linuxそれぞれへのインストール方法や、基本的な使い方の解説の他に、随所にCLIを使った構築法も記載しています。

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド

  • 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2015/03/25
  • メディア: 大型本
  • この商品を含むブログを見る

See Also:
「Amazon Web Services パターン別構築・運用ガイド」の執筆環境
「Amazon Web Services パターン別構築・運用ガイド」の目次
AWSパターン別本の狙い。例えばAutoScalingを使えるように。「Amazon Web Services パターン別構築・運用ガイド」の裏話
『Amazon Web Services パターン別構築・運用ガイド』を書きました
『Rubyによるクローラー開発技法』を書きました
本を書く前に準備したこと、執筆中にしていたこと