Above & Beyond

日々のアウトプット記録

むつきくんと学ぶ AWS CLI を読みました

むつきくんと学ぶ AWS CLI

技術書典で購入した本の感想の2冊め。長村ひろさんの「むつきくんと学ぶ AWS CLI」を読みました。

f:id:kabukawa:20181010090716p:plain

内容ですが、AWSでよく使うと思われるいくつかのサービスの情報を取得したりリソース操作をAWS CLIを使って行う手順が分かりやすく説明されています。直近までAWS CLIを使って仕事をしていたということもあって、買ってみました。

以下の4章構成になっていて、AWS CLIのインストールから環境設定、実際の操作までを実際のコマンドを例に丁寧に解説されています。

  1. AWS CLIを導入しよう
  2. AWS CLIで情報を取得しよう
  3. AWS CLIで設定を変更しよう
  4. AWS CLIになれたら環境構築しよう

イラストを使って、むつきくんとさつきちゃんという二人の登場人物が会話をしながら学習を進めるという構成になっているので、初心者でも非常にとっつきやすく、読みやすいと思いました。

AWS CLIを導入しよう

はじめにAWS CLIの導入です。環境は Mac を想定しているようですが、手順はLinuxでも変わらないと思います。

Windows10のWSLではpip自体が入っていないので、以下のページで書かれている手順に従ってpip(pip3)をインストールすれば、同じ手順でインストールできます。

algorithm.joho.info

環境設定についても、クレデンシャルや AWS CLI のコマンド補完(Tabキーで補完)の設定、jsonパーサー(jq)のインストールまで解説されており、きちんと使えるように解説されているのがいいなと思いました。

個人的には、jq がWindows環境では使いづらかったので AWS CLIの --query と --filter オプションをつけて使っていました。絞り込んだ結果を --output text オプションでタブ区切りテキストにすると 結果をシェルスクリプトで簡単に扱えるので、そういう使い方をしたい場合はおすすめです。

AWS CLIで情報を取得しよう

ここで扱われているAWSのサービス/リソースは以下の9つになります。

  1. EC2(Elastic Computing Cloud:仮想マシン)
  2. Security Group(セキュリティグループ)
  3. Auto Scaling(オートスケーリング)
  4. ELB(Elastic Load Blancer:ロードバランサー)
  5. RDS(Relational Database Service:データベースサービス)
  6. S3(Simple Strage Service:オブジェクトストレージサービズ)
  7. IAM(Identity and Access Management:認証・認可に基づくアクセス権の管理)
  8. CloudWatch(モニタリングサービス)
  9. Lambda(サーバーレスコンピューティングサービス)

主要なサービスやリソースについて扱われていて、いいなと思いました。 情報の取得は日常的に使うときに必要になりますし、何かを操作して壊すような心配は無いので安心して操作できますね。

1点だけ気づいたことを書いておくと、S3では --recursive と --summarize を使うと再帰的に配下のファイルを手繰って、容量を取得できるのですが、容量を知りたいときには CloudWatch メトリクスを使ったほうが(特に大量のデータが有るときは)いいかなと思いました。

AWS CLIで設定を変更しよう

各種リソースの起動/停止やバックアップ/レストア、作成/設定変更などについて書かれています。 ここで扱われているAWSのサービス/リソースは以下の6つになります。

  1. EC2(Elastic Computing Cloud:仮想マシン)
  2. Auto Scaling(オートスケーリング)
  3. EBS(Elastic Block Strage:ブロックストレージ)
  4. RDS(Relational Database Service:データベースサービス)
  5. ELB(Elastic Load Blancer:ロードバランサー)
  6. S3(Simple Strage Service:オブジェクトストレージサービズ)
  7. IAM(Identity and Access Management:認証・認可に基づくアクセス権の管理)

どれも普段良く使う操作なので、実用的な内容だなと思いました。

EC2インスタンスの作成(run-instances)はサラッと書かれていますが、運用で作成するときは

  • インスタンスタイプ
  • サブネット
  • セキュリティグループ
  • 削除保護有無

等のオプションを指定することが多いと思うので、よく使いそうなオプションについての簡単な解説があると更に良いなと思いました。

AWS CLIになれたら環境構築しよう

この章は、ここまで学んだ内容を使って環境構築をしてみるという課題になっています。 せっかく学んだ内容なので実際に使ってみる、というのは良いですね。 ヒントとして使うと思われる AWS CLI の例も載っているので、親切だなと思いました。

まとめ

実は前職で、この本の内容とほぼ同じものを引き継ぎ資料としてWikiで書いて実際に操作をして覚えてもらうというのをやりました。 もしそのときにこの本があったら、自分で書かずにこの本を渡して「自分で読んで覚えて」と言えば済んだのかもしれませんが、そうやって書いたり操作したりすることで自分でも忘れていたり、知らないことに出会えたので良かったと思っています。

AWS CLIの入門書として分かりやすく書かれているので、初めてAWS CLIを使う人にもおすすめできると思います。 いい本を読ませていただきました。

なお、可能であれば各 AWS CLI のサブコマンドについて、ヘルプページのURLがあると尚よかったかな、と思います。 英語であっても、この本で覚えたものの先にあるのはヘルプページに有る内容だと思いますので。