書評『PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説』

 


 

PowerShellやDSCの最新情報についていつも参考にさせていただいている
@guitarrapc_techさんが本を出版されたとのことで、
これは買わねばなるまいと思っていました。

そんな時、マイナビ出版さんが先行レビューの希望者を募集されていましたので、
イチかバチかで申し込んでみたところ、
ご恵贈いただきました。

マイナビ出版さん、ありがとうございましたm(__)m

 

わたしの周辺のPowerShell事情

 
ここ数年、仕事ではもはやクラウド(主にAWS)関連のコンサルやデリバリーばかりやっています。
Serverless、Container等の新しい潮流は増えてきているものの、
わたしがビジネスを行っているエンタープライズ領域のシステム開発では、
未だWindowsやLinuxを利用するIaaSの活用が主流です。

当然ながら、ビジネスのバックエンドで動くシステムでは運用を自動化します。
AWSならLambdaのcronライクな機能を使って運用タスクのスケジューリングを行うこともできますが、
エンタープライズ領域ではオンプレミスに構築された統合ジョブ実行基盤(JP1、Systemwalker、WebSAM、Senju等)や、
クラウド上に構築したジョブ実行基盤を利用して運用タスクの自動化を行うケースがほとんどです。

運用タスクを自動化するスクリプトは、Linux環境であればbashやPythonが多いのですが、
Windows環境は近年やはりPowerShellがメインになってきています。

 
PowerShellが出始めた頃(2006年頃)は、どうもあのコマンドレットというものの羅列に馴染めず、
WSHやコマンドプロンプト(.bat)で十分、と思っていた時期が私にもありました。

が、Infrastructure as Codeが流行りだし、CloudFormationやAnsibleの勉強をする中で、
PowerShell DSCというものに出会い、少しずつPowerShellに触れるようになってきました。

慣れてくると、WSHや.batよりも、PowerShellの方がコードがすっきりしますし、
例外処理やOSの機能を活用するような処理もやりやすいですね。

現在、AWSのEC2上で運用スクリプトを書く場合は、PowerShellでAWS CLIをラップして
作成しています。
AWSでWindowsインスタンスを起動すると、AWS Tools for Windows PowerShellがプレインストールされているのですが、
敢えてAWS CLIをインストールしています。

理由としては、AWS CLIであればWindows環境で作成した運用スクリプトのAWS CLI部分を
Linux環境に移植しやすいですし、
AWS CLIであれば、S3とEC2間のファイル転送時に最大同時リクエスト数やマルチパート処理が採用されるファイルサイズの閾値(デフォルト5GB)を変更できるからです。
(AWS Tools for Windows PowerShellではまだそこまで細かい制御はできない・・はず)

AWS CLI S3 Configuration — AWS CLI 1.15.28 Command Reference

 
そんなわけで、Windows環境の運用スクリプトはPowerShellで統一しているわけですが、
クラウドチームの若者たちは、かつてのわたしがそうだったように、
どうも始めはPowerShellに抵抗があるようです。

 
そんな時におすすめの一冊が、本書『PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~』だと思います。

PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~
吉崎 生
マイナビ出版 (2018-05-30)
売り上げランキング: 14,584

 

なぜ若者におすすめか

 
先ず、本書は1章で「ファイルのリネーム」であったり、「Webサイトのヘルスチェック」のような
PowerShellを使った便利機能の紹介から始まります。
サンプルを写経することで、とりあえず動かして「おお!」という感動を得られる点がよいです。

通常の言語本では、基本的なシンタックスや変数の定義等の文法の説明から入りますが、
そういうのは2章以降、豊富なサンプルと一緒に解説されますので、
読み始めでいきなり挫折、という悲劇を回避できます。

 
また、PowerShellの機能が網羅的に説明されている一方、
5章では「実世界のPowerShell」として、
PowerShellでハマりやすいポイントについて事例が紹介されており参考になりますし、
AWS、Azure、GCPといったクラウド対応や、DSCについての記述もあり
PowerShellの運用スクリプト以外の使い方についても学べるところが良いですね。
リファレンスとして身近に置いておきたい一冊です。

クラウドの中でも、AzureについてはGUIがイケてないPowerShellの方が操作がしやすい、というのもあります。
AzureのPowerShellツールは現状クラシックなASMと最新のARMが混在している状況でちょっとわかりづらいところもありますが、
Azureの認定試験でも頻出問題でもありますし、また実際の運用でも多用しますので、
AWSとAzureのマルチクラウドエンジニアを目指すのであれば、PowerShellは必須スキルと言えます。

 

というわけで

 
PowerShellをこれから学びたいという方に、
雰囲気で使っているのできちんと学びなおしたい方にも、
本書は大いにおすすめできます。

恥ずかしながら、PowerShell6.0と、現行のWindows Server 2016で既定のPowerShell5.1には
大きな違いがあるということを、本書を読んで初めて知りました。
そのあたりについてもPowerShellの歴史と共に詳しく記述されていますので、
ぜひ読んでみて下さい。

 
なお、本書のページ数は600ページ、厚さにする3.5cmとかなり鈍器感ありますので、
通勤のお供にされる方は電子書籍版やPDF版もどうぞ!!!