浅野直樹の学習日記

この画面は、簡易表示です

cronの出力をslackに通知するシンプルな方法

cronを使うとコマンドやスクリプトを定期的に自動実行できるので便利です。

自動実行ですから、少なくともエラーが発生した場合には通知を受け取りたいです(通知がないとエラーが発生していても気づかず放置してしまいがちです)。

cronで実行するスクリプト内に通知を行うコードを書くことが多いですが、そもそもそのスクリプトが実行されなければ通知もされません。

cronにはデフォルトでエラーを含む出力をメール通知する機能が備わっています。

しかし、外部にメールを送信できるようにサーバーを構築するのは面倒なので、slackに通知しようというのがここでの問題意識です。

その方法を調べると、いろいろなやり方が出てきて混乱したので、なるべくシンプルな方法をここにまとめます。

 

1.事前準備(slackに通知をするシェルスクリプトを用意する)

事前準備として、標準入力から受け取った内容をslackに通知するシェルスクリプトを用意します。

標準入力からの受け取りやjsonの組み立て、特にダブルクォートのエスケープに苦労しつつも、最終的には次のシンプルなシェルスクリプトに落ち着きました。

webhookurlはご自身のものを指定してください。

#!/bin/sh

webhookurl='https://hooks.slack.com/services/XXXXXXXX/YYYYYYYY/ZZZZZZZZ'
stdin=$(cat)
message=$(jq --arg text "$stdin" -n '{text: $text}')
curl -X POST -H 'Content-Type: application/json' --data "$message" "$webhookurl"

ここでは、このシェルスクリプトを、/usr/bin/local/slack_notification.shという名前で保存し、パーミッションを755に設定します。

 

2.ジョブごとに通知を設定する

ジョブの出力をパイプでslack通知スクリプトに渡せば、ジョブごとに通知を設定できます。

この記事では、実験のため、エラーが発生しないecho "cron slack test"とエラーが発生するnotexistingcommandを例に取ります。

 

標準出力と標準エラー出力の両方を通知するcrontabの例

* * * * * echo "cron slack test" 2>&1 | /usr/local/bin/slack_notification.sh 
* * * * * notexistingcommand 2>&1 | /usr/local/bin/slack_notification.sh

標準エラー出力だけを通知するcrontabの例

* * * * * echo "cron slack test" 2>&1 1>/dev/null | /usr/local/bin/slack_notification.sh 
* * * * * notexistingcommand 2>&1 1>/dev/null | /usr/local/bin/slack_notification.sh

3.一括で通知を設定する

cronで実行するジョブの数が少なければジョブごとに通知を設定すればよいのですが、たくさんのジョブをまとめて通知の設定をしたい場合は、cronにデフォルトで備わっているメール通知を活用すると楽です。

この方法では、メールの件名に実行コマンドが書かれているなど、詳細情報を取得できるという利点もあります。

postfixをインストールして、/etc/aliasesにcronslack: |"/usr/local/bin/slack_notification.sh"を追記し、newaliasesコマンドを実行します。

詳しくは「postfix スクリプト」などと検索してください。

標準出力と標準エラー出力の両方を通知するcrontabの例

MAILTO=cronslack
* * * * * echo "cron slack test"
* * * * * notexistingcommand

標準エラー出力だけを通知するcrontabの例

MAILTO=cronslack
* * * * * echo "cron slack test" 2>&1 1>/dev/null 
* * * * * notexistingcommand 2>&1 1>/dev/null 

4.細かい話

crontabの実行結果をSlackで受け取る方法 | 北進総業と問題意識を共有していますが、私は既存のcronをなるべく変更せずにcronの記載自体から何をしているかわかるようにしたかったので、上に書いたような方法にしました。

【AlpineLinux】Cron(busybox)でMAILTOを指定してもメールが届かない件 – TokunagaKazuya.tkとか、sendmailコマンドを差し替えて、sendmailコマンドにくるメールをSlackに投稿する #Docker – Qiitaとか、cronの出力をメールでなくSlackに送る方法 #Slack – Qiitaとか、みなさんが書かれているいろいろな方法を参考にしました。

スクリプト言語に頼らずUNIX哲学に則った解決法を見出だせたのではないかなと思っています。

 

 

 

 

 



ITエンジニアとしてのプロフィール(2)ポートフォリオにつながる話

私のITエンジニアとしてのポートフォリオにつながるプロフィールを箇条書きにするなら以下のとおりです。

  • 2000年代初頭にホームページを作成した
  • PCを自作した
  • 2010年頃にPerlとJavaScriptを使って動的なサイトを一から作成して実際に利用した
  • 20年以上塾講師の仕事をすることにより英語と数学を鍛えてきた
  • Linuxを10年以上利用している
  • WordPressで構築したブログに学習記録を蓄積してきた
  • 日常的なデータをSQLで管理する仕組みを作った
  • スクリプト言語(PerlやPython)で業務を効率化してきた
  • 法律や経済に関係する仕事をしたことがある
  • LaravelとDjangoでWebアプリをいくつか作った
  • AWS、Google Cloud(GCP)、Firebaseなどのクラウドサービスを利用しながら勉強中
  • エンジニアの業務に加えてIT翻訳やプログラミングスクールの講師をしている

以下は物語形式です。ITエンジニアとしてのプロフィール(1)昔話の続きです。Webサイト制作の個人史Webサイト制作の個人史2を前後の話も加えて再構成しました。

大学1回生のときに、半期でホームページを作るという授業を取りました。HTMLとCSSが未分化だった時代ですから、太字にするなどの装飾のためにHTMLタグを使いました。出身地の紹介ページを作る学生が多い中、私は国語や数学などの勉強法を書いたページを作りました。今とやっていることが変わりませんね…。必修科目というわけでもなく、興味本位の軽い気持ちから参加したのですが、まさか後々これを仕事にすることになるとは思ってもみませんでした。何がどうつながるかわからないものです。

そこで得た知識を活用して茨木高校陸上部OB会のホームページを作りました。そのhtmlファイルを発掘したので、当時の雰囲気を味わうために貼り付けます。

最終更新から計算すると20年以上前ですね。左上の領域には何があったのでしょうか。アクセスカウンターだったような気がします。

掲示板はWEB PATIO : KENT-WEB CGI/Perl フリーソフトの古いバージョンだと思われます。パーミッションに悪戦苦闘しながら試行錯誤を繰り返してどうにか設置した記憶が蘇りました。

同じ頃にPCを自作しました。夏休みにアルバイトに精を出して貯めた約10万円を握りしめて大阪の日本橋に行き、一日でパーツを買い集め、次の日には使える状態にしました。AMDの1.3GHzくらいのCPUで、メモリは忘れましたがハードディスクが40GB、OSはWindows XPです。ブラウン管のテレビに画面出力しました。動いたのが奇跡だと感じました。このときの経験がインフラエンジニアとしての仕事の原点になっています。

ここで私のマシン遍歴をまとめます。自作PC→HPのノートPC(型番は忘れました)→ThinkPad X40→ThinkPad X220、以上です。ThinkPad X220を10年以上使っています。キータッチが気に入っていて、この記事もそのキーボードで入力しています。メモリとストレージを増強すれば、今でも現役で十分使え、現に私はこのマシンで仕事をしています。軽量のLinux(Linux Mint 21 Xfce)を使っているおかげとも言えます。

茨木高校陸上部OB会のホームページを作ってからしばらくの間は、本格的なITエンジニアとしての活動をしませんでした。学業と塾講師を中心とするアルバイトに力を入れていました。今から振り返ると、英語と数学に取り組むことで、ITエンジニアとしての足腰を鍛えていたことになります。また、WordPressやその他サービスのブログ記事を投稿したり、動画の編集をしたりと、ITサービスやソフトウェア利用者としての活動は積極的にしていたほうなのではないかなと思います。

次の転機は京都アカデメイアサイトの制作です。2010年頃に当時の大学院生を中心に立ち上げた団体です。ホームページ作成の経験があるということで、私がサイト制作担当の中心になりました。最初はよくわからないままに先輩から教えてもらったDreamweaverでいじっていました。しかしそれでは掲示板などの機能が作れないと気づき、F先生の教えを受け、PerlでMVCモデルに則ったWebサイト(Webアプリ)を作るところまで到達しました。

 

この図もまた当時の雰囲気をよく伝えてくれます。デザインはさておき、動きのあるサイトを最初から作って実際に公開して利用したという経験は大きいです。サーバー、データベース、バックエンド、フロントエンド(JavaScript)といったWebサイト(Webアプリ)の全体像を掴むことができましたし、顧客(メンバー)の希望により苦労してイベントカレンダーを作り上げたのに入力が面倒だという理由ですぐに使われなくなったという、ありがちな経験をしたのもエンジニアとして仕事をする上での財産になっています。

このときに開発環境としてLinux(Ubuntu)を導入したことが人生を変えました。最初はWindowsと併用していましたが、徐々にLinuxの比重を高めてきました。日常的にLinuxを使っていると、本格的な開発業務をしていなくてもトラブル解決のためにLinux関係の事柄を調べますし、ちょっとしたテキスト変換などをプログラム的に解決しようという発想になります。塾講師の仕事で使う数学の教材をLaTeXできれいに作ったりもしました。

WordPressで構築したブログに学習記録を蓄積し始めたのもこの頃です。更新頻度は決して高くありませんが、長い期間にわたって多様な分野で苦闘してきた記録はあまり類例を見ないのではないでしょうか。初期に書いた記事の中では、残業代をエクセルで計算するの反響が大きかったです。

日常的なデータ管理にもSQLを使うようになりました。小さな団体の会計管理にはLibreOfficeのCalc(Microsoft Excelに相当)とBase(Microsoft Accessに相当)が適していて、今でもそれらを使って管理しています。わざわざ大規模な会計ソフトを導入しなくても、LibreOffice Calcのマクロで仕訳帳から総勘定元帳を作成するのようなミニマムな機能でいいと思っています。

ただし、現状ではLibreOfficeのCalcと比べてMicrosoft Excelのシェアが圧倒的ですから、顧客の依頼を受けて仕事をする場合はExcelを使うことが多いです。私が初めて対価を得たエンジニアの仕事は、ExcelのVBAとLibreOffice Baseを連動させて従業員の勤怠と利用者の送迎の座席などを管理するシステム制作でした。Microsoft Accessを持っていないということだったので無料でインストールできるLibreOffice Baseにしました。業者の見積もりが高すぎると相談された知り合いからの依頼でした。顧客が求めているのは、案外、見栄えがよくて汎用的だけれども高価なシステムではなく、地味だけれども安くて使えるシステムなのかもしれません。

事務員として勤務しながら自分の業務をPythonで効率化することにも取り組みました。別の人が作ったシフト表から、元請けが求める形式のExcelファイルへと、データを転記するためのプログラムなどを書きました。毎月わざわざ間違えやすいのに手でそのような作業をするのが嫌だったのです。また、業務記録を入力するExcelファイルが使いづらくよく壊れていたので(関数部分を触ってしまって壊れたのでしょう)、Djangoで入力システムを作りました。機密データを取り扱っていましたから、インターネットに接続して利用するのではなく、USBメモリに保存したSQLiteからデータを読み込んでローカルで起動する仕組みにしました。入力インターフェイスとしてブラウザを利用したかったので、Djangoで開発しました。当時はリファクタリングという概念を知らず、ぐちゃぐちゃのコードでしたが、自分で使う分にはどうにかなりました。

私は経済や法律に関係する仕事もしてきたので、その分野に関わるプログラムやアプリケーションを作ることに強みがあります。IT×○○というかけ算の力ですね。ビジネスドメインの知識を持っている人がプログラムを書くと無駄なく早いです。コードを書ける経理担当者として、給与計算をしてから給与明細を自動でメール送信するシステムを自分で作って使っていると(GASで宛先ごとに添付ファイルを差し込みメール送信する)、いざ定額減税が導入されても既存のコードを少し書き換えるだけで対応できました。

次の転機は2020年頃に訪れました。知り合いに誘われてWebアプリの開発を目指すスタートアップでエンジニアの業務を行うことになったのです。これまでの流れから、Perlを使ってGoogle, Yahoo, Facebook, Twitter, LINEの5種類のソーシャルログインまで実装したり、Gitを使ったほうがいいと中途半端に聞いてVPSに自前のGitリモートリポジトリを構築したりと、今から振り返ると努力の方向が間違っているように思われて仕方ありませんが、必死で食らいついていきました。さすがに途中で方針転換してLaravelを使うようになり、Vue.jsを導入して、リモートリポジトリにはGitHubを用い、Dockerを活用するようになりました。最終的には、Google Cloud(GCP)上のKubernetesで動くサービスを構築し、CypressのE2Eテストを実行して、GitHub ActionsによりCI/CDを実践するまでになりました。エンジニアは私一人で曲がりなりにもそこまで到達したのは奇跡的です。

それからはプログラミングスクールのインストラクターとして教えるために必要な技術をキャッチアップし、知人やクラウドソーシングサイトを通じて受けたエンジニア案件の仕事を完成させ、興味のおもむくままに新しい技術を学ぶなどして、現在に至ります。書き始めると脱線が多くなってしまったので、ポートフォリオはまた改めて別にまとめたいです。

 

 



ITエンジニアとしてのプロフィール(1)昔話

塾講師としての仕事を念頭に置いて10年以上前に書いたプロフィールはありますが、現在主に従事しているITエンジニア関係の記述が薄いので、ITエンジニアとしてのプロフィールを書きました。

 

1982年生まれで、いわゆるデジタルネイティブ世代ではありません。コンピュータとの関わりはこの世代の平均的な姿だと思います。

初めて本格的に触ったコンピュータはファミリーコンピュータです。ビデオゲームの代名詞と言えるあのファミコンです。ドラゴンクエストIVが発売されたくらいの頃で、私は小学生でした。当時はインターネットが普及していませんでしたが、カジノで838861枚のコインを4ゴールドで買えるとか、8回逃げたら常に会心の一撃が出るようになるとか、口コミで伝わってきました。それがオーバーフローによるものだと理解したのは最近のことです。また、ドラゴンクエストIIIでは、マドハンドが現れたときに洗濯バサミでコントローラーのAボタンをずっと押しっぱなしにして一晩放置すれば勝手にレベルが上がるのではないか、と試行錯誤した思い出があります。これは業務効率化のための自動化処理に通じる考え方です。

私が小学生の頃と言えば、「コンピュータ」が社会科の教科書で習うような用語でしたし、ファミコンを除けば身の回りのコンピュータは銀行のATMくらいでした。社会見学で郵便局に行き、ハガキを大きな機械に入れると手書きの郵便番号(当時はたったの3桁でした)を読み取って自動的に仕分けをするのを見た記憶があります。最先端のハイテク機械を見学するという文脈でした。今では手書き数字の分類は機械学習の入門的な内容ですから(scikit-learnでMNIST手書き数字の分類機械学習)、時代が進んだものです。

時代の進化ということでは、当時導入されつつあった図書館の検索システムが思い出されます。ある時、地元の公共図書館にコンピュータ検索システムが導入されました。これは画期的なシステムだったのですが、大きな欠点がありました。「あ」などの短い文字を入れて検索すると、数十分から数時間程度、検索中の状態になって操作を受け付けなくなってしまったのです。そのような状態になってしまったコンピュータについては、図書館職員の方が「調整中」のような紙を用意して画面を隠していました。現代の水準で考えると、文字数でバリデーションをする、タイムアウトを設定するなど、初歩的な対応をすぐに思いつきますが、当時はそれなりの規模の市の公共図書館でもそれくらいのレベルだったのです。牧歌的な時代ですね。

当然学校でコンピュータや情報を本格的に習うはずもなく、かろうじて中学校にはコンピュータ室がありましたが、背景が黒い画面によくわからないまま文字を打ち込む授業があったくらいです。おそらくMS-DOSだったのではないかと思います。中学数学で習う公式が適用できない不規則な形の閉じられた図形の面積を、ランダムに表示したドットの数から推計するデモンストレーションを技術の先生がしてくれたことに感動したのは妙によく覚えています。モンテカルロ法による求積ですね。コンピュータを使って力ずくで問題を解決するという、これまでとまったく異なる発想に魅力を感じたのです。

高校ではそのレベルの授業さえありませんでした。オタクっぽい友人が自分で作ったホームページを学校の図書室からインターネット接続して見せてくれたことがあるくらいです。トップページの入口となっている画像をクリックするとリンクされたページがいくつかあるような、初期に典型的なホームページです。私は携帯電話を持つのが遅かったほうで、高校を卒業する直前(2001年)にようやく携帯電話でメールを送れるようになりました。このあたりの事情は私の業務効率化ツールとの付き合い方でも触れました。

パソコンを使い始めたのもその頃で、初めて本格的に触るようになったPCのOSはWindows Meでした。定期的にデフラグをしても起動に数分以上かかりました。インターネット接続は関西電力が提供していたeo64エアで、月3千円で時間を問わず使い放題でした。テレホーダイとは異なり時間を問わず使い放題だったのは、夜が苦手な私にとってありがたかったです。

公式サイトを探したければエキサイト、カテゴリから階層をたどるならヤフー、単語を入力して検索するならgooのように使い分けていたような気がします。IT関係の事柄でも雑誌から情報を得るのが主流で、ネットランナーとかその手の雑誌の付録CD-ROMからソフトをインストールした覚えがあります。ソフトのダウンロードは窓の杜からもしましたし、とほほのWWW入門を読んでホームページを作ろうとしました。

昔話が長くなってしまったので、ここで一旦区切ります。ITエンジニアとしてのプロフィール(2)ポートフォリオにつながる話に続きます。

 

 

 

 



LPIC-3(305)に合格しました

LPIC-3(305)に合格しました。

合格できてよかったです。

LPIC305試験を受けようと考えている人ならご存知でしょうが、2024年12月現在、305試験専用の参考書が存在せず、対策に苦労します。

私はその中でもベストだと自分で考えた対策をしてきましたので、本記事で紹介します。

 

要約

教材を手に入れやすい旧304試験の対策を徹底的に行い、305試験で追加されたコンテナなどの範囲を別途補います。

 

試験範囲

Exam 305 Objectives – Linux Professional Institute (LPI)の試験範囲は折りに触れて確認することをおすすめします。

351: Full Virtualizationは旧304試験の仮想化部分とおよそ対応します。

352: コンテナ仮想化と353: VMのデプロイとプロビジョニングは、旧304試験でごくわずか出題されていましたが、305試験で大幅に追加されました。

この試験範囲に載っている用語でわからないものはないようにします。

 

動画

公式筋であるLPI日本支部が公開している4本の動画は、305試験に準拠しているので、これを最初に見ると全体像を把握しやすいです。

 

現状では305専用の参考書がなく、304の参考書さえ少ないので、選択の余地がほとんどありません。

(1)試験対策


LPIC Level3 304教科書+問題集 : 試験番号LPI 304 Virtualization & High Availability Exam


作 者: 

出版社: インプレス

発売日: 2016年05月10日

304用の黒本が第一選択になるでしょう。

 


LPI問題集 : level 3「303/304」対応


作 者: 

出版社: インプレスジャパン

発売日: 2012年03月07日

私は本に飢えていたので、一つ前の版の黒本にも手を出しました。

 





作 者: 

出版社: 

発売日: 1970年01月01日

まとまった文章の説明を読みたかったので、この本の仮想化部分を2, 3回読みました。

 

(2)個別テーマ


KVM徹底入門 : Linuxカーネル仮想化基盤構築ガイド


作 者: 

出版社: 翔泳社

発売日: 2014年04月03日

10年以上前に出版された古い本ですが、KVMまわりの事柄がよくまとまっていて、重宝しました。

 

ふわっと知りたいLXD(電子書籍のみ) – dogezalien – BOOTH

LXC(LXD)関係はこの本しかないと思います。

 


Docker実践入門 : Linuxコンテナ技術の基礎から応用まで : Docker Hub、Dockerfile、Kubernetes、Atomic Host


作 者: 

出版社: 技術評論社

発売日: 2015年11月12日


Docker/Kubernetes実践コンテナ開発入門


作 者: 

出版社: 技術評論社

発売日: 2024年03月11日

Docker関係の本はいろいろありますが、LPICの試験と近そうなのはこのあたりです。

 





作 者: 

出版社: 

発売日: 1970年01月01日

Vagrantは試験の重量が小さいのでこれくらいでいいです。

 

問題演習

LPICの問題演習と言えばPing-tですよね。

残念ながらまだ305に対応しておらず304しかありませんが、それでも問題数は多いので、304の仮想化の問題をやり込むことができます。

コマ問も含めて9割くらい正解できるような状態で試験に臨みました。

 

ハンズオン(手を動かす実践的な練習)

何らかのコースに参加したわけではなく、自己流で手を動かしました。

この試験を受けると決める前から、DockerとKubernetesは実務でそれなりに触っていたので、取り立てて試験対策として手を動かすことはしませんでした。

VirtualBoxもそこそこ使ったことがあり、イメージできたので、改めて動かしはしませんでした。

Xenは動作確認だけして、私の環境では重くて使い物にならなかったのでやめました。

KVMは使いこなせるまでになりました。普段使っているのとは別のLinux環境を試してみるのに便利です。

LXCは一通りの動作確認だけしました。

クラウド管理ツールも試したほうがよいと思いましたが、手間がかかりそうなので断念しました。

 

個人的な感想

かなり前からいつかはLPIC-3を取得しようと思っていて、もっぱら個人で小規模な開発に携わっている身としては304かなと思っていたところ305と306に分離されたので、迷わず305を選びました。

それまでまったく触っていなかったKVMを使うという選択肢を持てたのが大きな収穫です。

クラウド管理ツールを使いこなせるには至っていませんが、名前くらいは聞いたことがあるという状態にはなっているので、未知の事柄に対する怖さのようなものはなくなりました。

 

 



AWSのCLFとアソシエイト3資格(SAA、SOA、DVA)を取得しました

AWSのCLFとアソシエイト3資格(SAA、SOA、DVA)の合格体験記や勉強方法を解説した記事はたくさんありますが、私なりの観点からまとめます。

AWSそのものはゼロからのスタートだけれども、Linuxを普段から使っていて、極めて小規模なウェブ系や業務効率化系のプログラミングを継続的に行っており、なるべくお金をかけたくなく、学習教材では動画よりも本を好む者の体験記です。

リージョンとアベイラビリティゾーン(AZ)の違いもわからない状態からスタートしました。

 

1.結果

試験結果PDF 受験日 スコア
CLF 2024/01/31 916
SAA 2024/07/17 836
SOA 2024/09/12 753
DVA 2024/10/30 789

 

2.受験を決めるまで

オンプレミスのデータセンターを構築運営したことはありませんが、レンタルサーバーから始めてVPSを使うようになり、柔軟にリソースを変更したくてGCP(Google Cloud)やAWSを使うようになったという道筋は、王道と言ってよいでしょう。2022年頃からGCPを、2023年頃からAWSを使い始めました。

業務でAWSを使うことが多くなり、プログラミングスクールのインストラクターとしての仕事の需要もありそうだったので、資格取得を一つの目標に据え、本腰を入れて勉強を開始しました。それが2023年から2024年にかけてのことです。

 

3.AWSの全般的な学習法

(1)本

冒頭でも述べましたように、私は動画よりも本を好むので、手当たりしだいに乱読しました。

版の新旧は気にせず読んできたので、必ずしも以下で紹介している版を読んだわけではありません。

 


AWSの基本・仕組み・重要用語が全部わかる教科書 : 見るだけ図解


作 者: 

出版社: SBクリエイティブ

発売日: 2022年09月20日

最初に全体像をつかむにはちょうどよいと思います。

 


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


作 者: 

出版社: リックテレコム

発売日: 2019年06月26日


AWS認定ソリューションアーキテクト-アソシエイト問題集


作 者: 

出版社: リックテレコム

発売日: 2024年03月04日

試験をより意識した全体像の把握にはこれがおすすめです。

 


Amazon Web Services徹底活用ガイド : 先行ユーザー20社の事例に学ぼう


作 者: 

出版社: 日経BP社

発売日: 2015年01月05日


Amazon Web Servicesクラウドデザインパターン設計ガイド


作 者: 

出版社: 日経BP社

発売日: 2025年04月04日


Amazon Web Servicesクラウドデザインパターン実装ガイド


作 者: 

出版社: 日経BP社

発売日: 2025年04月04日


Amazon Web Services基礎からのネットワーク&サーバー構築 : さわって学ぶクラウドインフラ


作 者: 

出版社: 日経BP

発売日: 2023年05月24日

古い版のものをまとめて安く手に入れられたので、ざっと読んでみました。

現在の進化して複雑になった姿ではなく、昔のシンプルなサービスを現場でどう使おうとしていたかという息吹が感じられて、これはこれで有益でした。

 





作 者: 

出版社: 

発売日: 1970年01月01日

ほぼすべての操作をCLIで行おうという趣旨の本ですから試験には直結しませんが、考え方は共通しているので、深い部分で活きたと思います。

 

(2)ハンズオン

ハンズオン資料 | AWS クラウドサービス活用資料集を全部やりました。初心者向けハンズオン( Hands-on for Beginners)と呼ばれているものです。内容的にも分量的にもこれがベストだと思います。

Amazon Web Services (AWS) のハンズオンチュートリアルAWS Workshopsも検討しましたが、見づらいように感じましたので、見送りました。

Black Beltやホワイトペーパーもちらっと見てこれに深入りするのはしんどそうだと判断し、ほとんど触れていません。

 

4.AWSの試験別学習法

例によって本が中心です。それに加えて、試験ですから、問題演習をやりました。公式が発表している試験範囲と模擬問題を熟読しました。

(1)CLF

国語力やクラウドの常識で解ける問題と、AWSの具体的なサービスの概要を知っていれば解ける問題とで構成されていると捉えました。

前者はよいとして、後者は軽く100個以上のサービスがありますから、入念に準備しました。

 





作 者: 

出版社: 

発売日: 1970年01月01日

無料であることが信じられないくらいクオリティが高いです。特にまっさらの状態からCLFを受けようかと考えている人には、最初に読むことをおすすめします。

 


AWS認定クラウドプラクティショナー


作 者: 

出版社: SBクリエイティブ

発売日: 2024年04月10日

この本もよくまとまっています。私は2, 3回読みました。

 

あとは【AWS資格】無料WEB問題集&徹底解説 | クラウドプラクティショナー(CLF)を一通り解き、インストラクターをしているために見ることができるプログラミングスクールの教材の問題に目を通しました。

 

(2)SAA

SAAになると各サービスの内容を本格的に問われます。実務やハンズオンで触れたことがあるところが問われると自信を持って答えられることが多かった印象です。

 





作 者: 

出版社: 

発売日: 1970年01月01日

無料であるにもかかわらず内容が充実しています。

 


AWS認定ソリューションアーキテクト〈アソシエイト〉


作 者: 

出版社: SBクリエイティブ

発売日: 2023年10月16日

安定の内容です。

 


AWS認定ソリューションアーキテクト-アソシエイト教科書 : 試験番号SAA-C03


作 者: 

出版社: インプレス

発売日: 2023年03月15日

LPIC等でもおなじみの黒本です。

 

問題演習にはPing-tを大いに活用させていただきました。難易度的にちょうどCLFとSAAの橋渡しになりますし、無料でこれだけの分量の問題が解けるのはうれしいです。

【AWS資格】無料WEB問題集&徹底解説 | ソリューションアーキテクト(SAA)とプログラミングスクールの問題に目を通したのはCLFと同じです。

 

(3)SOA

SOAはSAAに近いです。私が受けたときはラボ試験がなかったのでなおさらです。とはいえ、管理系のサービスを中心に深い部分まで問われますから、ラボ試験の想定問題は積極的に実施しました。

 


AWS認定SysOpsアドミニストレーター〈アソシエイト〉


作 者: 

出版社: SBクリエイティブ

発売日: 2022年07月05日

このシリーズを信頼しています。

 


AWS認定SysOpsアドミニストレーター-アソシエイト教科書&問題集


作 者: 

出版社: インプレス

発売日: 2024年03月29日

こちらも手堅い内容です。

 


ポケットスタディAWS認定SysOpsアドミニストレーターアソシエイト : アソシエイト試験


作 者: 

出版社: 秀和システム

発売日: 2023年01月24日

3冊目がほしいならこれかなと。

 

【AWS資格】無料WEB問題集&徹底解説 | SysOpsアドミニストレーター -アソシエイト(SOA)とプログラミングスクールの問題に目を通したのはいつもと同じです。

 

(4)DVA

DVAは試験範囲が限定されているように感じました。個人的には、開発系の仕事が多いので、違和感なく入り込めました。

DVAは本と問題集が少なめです。

 


AWS認定デベロッパー-アソシエイト教科書&問題集


作 者: 

出版社: インプレス

発売日: 2024年01月31日

この本が第一候補なのでしょうけれども、試験範囲とあまりマッチしていないように感じました。まえがきによると、意図的にそのようにしているようです。

 


ポケットスタディAWS認定デベロッパーアソシエイト : アソシエイト試験


作 者: 

出版社: 秀和システム

発売日: 2023年12月15日

この本は試験範囲とマッチしていますが、これだけでは足りないかもしれません。

 





作 者: 

出版社: 

発売日: 1970年01月01日

DVAではCodeシリーズの比重が高いので、この本で補いました。

 

問題集を見つけることができなかったので、Ping-tのSAA問題で感覚を鈍らせないようにしました。

 

5.感想

私がAWSを本格的に触り始めたのは2023年頃と遅かったのですけれども、これでAWSに対する苦手意識は払拭できました。

私の業務で使うのは、IAMやCloudWatchのような管理系サービスを除くと、Lambda、Lightsail、S3、EC2くらいなので、現場の業務に直結するかと問われると微妙です。

 


AWS Lambda実践ガイド : アーキテクチャとイベント駆動型プログラミング


作 者: 

出版社: インプレス

発売日: 2022年03月30日

Lambdaを使うときには、この本にとてもお世話になりました。

 

Lightsailは他社のVPSと大差なく、必要なのは主にLinuxの知識ですしね。

そのせいか、Lightsailは基本的に試験範囲から除外されています。

 

AWSに頼り切ってベンダーロックインに陥るのもこわいですし、各種試験をきっかけとしてAWSの具体的なサービスとともにクラウドの考え方を学んで、必要なサービスを絞って使っていこうと思っています。

 




top