AWS認定ソリューションアーキテクト試験対策を含む、『AWS認定アソシエイト3資格対策』という本を書きました

AWS Summit Tokyo 2019の期間中、

AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~

という本が刊行されます。

AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~

AWSプレミアムコンサルティングパートナーの某大手企業のトップエンジニアの方々と共同で執筆し、

元AWSのSAの平山さん、元AWSのエヴァンジェリストの堀内さん、私の上司の福垣内さんに監修していただきました。

一冊の紙の本で「Solution Architect」「Developer」「SysOps Administrator」試験を

網羅した本はAmazon.comでもみつけられませんでしたので、

(たぶん)世界ではじめての試みなのではないかと思います。

執筆することになった経緯

今回の本の出版社さんは、

AWS認定試験が2018年にリニューアルされるまで AWS認定試験対策本としてド定番だった

合格対策 AWS認定ソリューションアーキテクト -アソシエイト』 のリックテレコムさんです。

(この本、AWSの基本的な概念やベストプラクティスの考え方は変わりませんので、今でも良い本だと思っています)

合格対策 AWS認定ソリューションアーキテクト -アソシエイト

リックテレコムさんから平山さんに本の執筆の打診があり、

平山さんから堀内さん、鳥谷部さん、福垣内さんにお誘いがあり、

箱崎の某所で行われた企画会議に私も同席させてもらった、というのがきっかけです。

なぜ、3資格対策なのか?

実は、企画会議でリックテレコムさんから依頼があったのは、

AWSのSysOpsアドミニストレーター試験の対策本を書いてもらえないか?

というものでした。

実際、平山さんの方でもSysOpsアドミニストレーター対策書を前提に、章立てのたたき台を作成されており、

役割分担の相談などしていたのですが、最終的には

やっぱり、アソシエイトレベルの3試験を網羅した本を書きません?

となりました。



なぜそういう話の流れになったかは正直忘れてしまったのですが()、

ポイントとしては

  • SysOpsアドミン試験「だけ」の対策書だと、マーケットに需要があるか、執筆陣も正直自信がない

  • 需要としては「AWS認定ソリューションアーキテクト – Associate(Feb, 2018)」試験対策が
    一番多いと思われるが、今後競合本も増えるだろうし、差別化が難しい(実際そうなった)

  • アソシエイトレベルの3試験は勉強すべき内容で重複する部分が多々あるので、
    1冊で3つともカバーしたらおもしろくない?


  • という議論の流れだったかと思います。



    特に3つめのポイントについて、平山さん、鳥谷部さん、福垣内さんが、

    多少大変になっても、おもしろくて役に立つ本を書きたいよね

    というノリだったのが大きいと思います。



    1試験の対策書を書くのも大変なのに、3試験分をカバーする本を書こう、

    となっても「ああ、おもしろいね」とあっさり賛成される、

    技術レベルの高い方たちとご一緒できて、本当によかったと思います。

    ソリューションアーキテクト(アソシエイト)だけでよくない?

    昨年ぐらいからでしょうか、AWS関連の案件でお客様とディスカッションさせていただく時に感じるのですが、

    4~5年前と比べて、AWSにお詳しいお客様が本当に多くなりました。



    AWSのサービスアップデートも常にチェックされていますし、

    Well-Architected FrameworkのようなAWSの設計・構築・運用のベストプラクティスも理解されています。

    本番環境のワークロードをAWS上で動かし、実際に運用されていますので、

    お客様も必死で勉強なさっているのだと思います。



    個人的にものすごく危機感を抱いているのですが、

    AWS関連のサービスを提供する我々エンジニアやアーキテクトも、

    常に知識や技術をアップデートし、お客様の期待にお応えできるように精進しなければ、

    お客様からお仕事をいただけなくなるのではと思っています。



    資格を持っているからといって、必ずしも実力があるとは言えません。

    リニューアル前のDeveloper試験やSysOps試験は正直、

    Solution Architect – Associateに毛の生えたような内容でした(失礼)。



    しかし、

    リニューアル後のDeveloper試験は、

    サーバーレスやCI/CDパイプライン、クラウドネイティブなアプリケーション開発の知識・技術経験も問われるようになりましたし、

    SysOps試験は、

    運用のベストプラクティスに則った監視、セキュリティ、コスト管理、自動化など、幅広い知識・技術経験が問われます。

    AWS認定試験の受験は、ハンズオン(ここ重要)も含めて、

    AWSの知識やベストプラクティスを学ぶ非常に良い機会になると言えます。

    能書きはわかった。で、どう勉強すればいいんだ?

    本書の第1章で、元AWSのSAの平山さんが解説してくれています。

    各試験の特徴、リニューアル後の各試験で新しく問われるようになったポイント、

    AWSを理解するための要点について解説があります。

    また、1.2「AWSサービスのカテゴリ分類と対応試験」において、

    試験毎に、第2~15章のどの章を重点的に勉強すべきかを示してあります。

    ぜひ、ご確認下さい。

    本書の章立てについては、リックテレコムさんのサイトをご覧ください。

    http://www.ric.co.jp/book/contents/book_1199.html

    というわけで

    2019年3月時点のAWS公式ドキュメントの情報をベースに、

    AWSのアーキテクト、開発者、運用者に求められる基礎を網羅的に解説していますので、

    これからAWS認定試験にチャレンジされる方、

    既に資格取得済みであるが、再認定試験を受けられる方、

    みなさまぜひ、書店でお手に取っていただけますと幸いです。

    AWS認定アソシエイト3資格対策~ソリューションアーキテクト、デベロッパー、SysOpsアドミニストレーター~ 

    “Stream to Amazon Elasticsearch Service” does not work

     


     

    なんということもない、CloudWatch LogsデータのElasticsearch Serviceへのストリーミングが動かない(というか設定できない)。

    マネジメントコンソールの設定に沿って手順を進めると、

    最後の”Start Streaming”のところでエラーが発生して

    ストリーミングが開始できない。


    There was a problem
    There was an error creating your Lambda Function. Please try again.

     

    CloudTrailを確認すると、

    どうやら「CreateFunction20150331」なるファンクションが実行され、

    それが「InvalidParameterValueException」で落ちている模様。


     

    実際のログを確認すると、


    "errorMessage":"The runtime parameter of nodejs4.3 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs8.10) while creating or updating functions."

    とエラーが吐かれている。

    どうやら、マネジメントコンソールからElasticesearch Serviceのストリーミングを開始した際、

    裏で実行されるLambdaがNode.js4.3で書かれていることが原因のように見える。

     
    確かに、Node.js v4.3で書かれたLambdaファンクションは今年EOLになった。

    AWS Developer Forums: Node.js v4.x is now EOL, please migrate your functions to a newer runtime version
    https://forums.aws.amazon.com/ann.jspa?annID=5694
     
    ググると、同じバグを踏んだ人がいた模様。

    Had a strange case with Cloudwatch Logs Stream to ElasticSearch today… AWS says it’s a bug on their end? : aws https://www.reddit.com/r/aws/comments/a7eup5/had_a_strange_case_with_cloudwatch_logs_stream_to/

     
    いや、まあLambda書きゃいいんですけど、面倒だ。とゆうか初学者はエラーの原因も探れず困ると思う。
     

    AWSによるサーバーレスアーキテクチャ
    Peter Sbarski
    翔泳社
    売り上げランキング: 107,099

    書評『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版もどうぞ!!!

    カテゴリー: PowerShell | コメントは受け付けていません。