Article
「バックエンドエンジニアのためのインフラ・クラウド大全」の感想
AIの普及で一人が扱う開発範囲が広がる中、「バックエンドエンジニアのためのインフラ・クラウド大全」を読んで感じたことを整理した。
目次
はじめに
最近、AIを使って開発を進める機会が増えてきた。
以前であれば、個人開発やハッカソンであっても、実装できる範囲にはそれなりに限界があった。画面やAPIを作るだけでも時間がかかるし、インフラやデプロイまで手を伸ばす余裕がないことも多かった。
しかし、AIを使うようになってから、一人で進められる範囲がかなり広がったように感じる。実装のたたき台を作る、エラー原因を調べる、設定ファイルを読み解く、知らない技術の概要を把握する、といった作業のハードルがかなり下がった。
その一方で、扱える範囲が広がったぶん、自分が判断しなければならない範囲も広がっている。アプリケーションコードだけでなく、コンテナ、ネットワーク、DNS、ロードバランサ、クラウドサービス、監視、デプロイ、権限管理などに触れる機会が増えた。
AIに聞けば設定例やコマンドは出てくるが、その内容が妥当かどうかを判断するには、結局こちら側に基礎知識が必要になる。特にインフラやクラウドは、動けばよいというものではなく、セキュリティ、運用、障害対応、コストにも関わってくる。
そう感じていたタイミングで、「バックエンドエンジニアのためのインフラ・クラウド大全」という、今の自分の気持ちにかなり合うタイトルの本を見つけたので読んでみた。
きっかけ
この本を読もうと思った一番のきっかけは、AIを使うことで一人で触れる領域が広がり、インフラやクラウドの理解不足を感じる場面が増えたからである。
たとえば、AIに相談しながらAPIの実装自体は進められても、以下のような場面ではアプリケーションの知識だけでは判断しづらい。
- なぜDBへの接続が特定の環境だけ失敗するのか
- なぜ一時的な負荷でレスポンスが遅くなるのか
- ログやメトリクスをどこまで見れば原因に近づけるのか
- バックエンド側で考えるべき責務とインフラ側に寄せるべき責務の境界はどこか
もちろん、実務ではインフラに詳しい人やSRE、クラウドに強いメンバーに相談できることも多い。ただ、相談する側に最低限の前提知識がないと、状況説明も曖昧になるし、もらった説明を自分の中で整理しきれない。
また、個人開発やハッカソンのように、設計からデプロイまで自分で一通り進める場面では、バックエンドとインフラを完全に分けて考えることができない。APIを作るだけでなく、どこで動かすか、どのDBを使うか、どうログを見るか、障害時にどこを確認するかまで考える必要がある。
AIによって手を動かす速度は上がったが、最終的に設計や構成の責任を持つのは自分である。だからこそ、バックエンドエンジニア向けにインフラ・クラウドを横断的に説明している本を読みたいと思っていた。
本題・感想
タイトル通り、バックエンドエンジニアが実務でよく使う内容を中心に、(まあまあ分厚くそれなりのページ数があるがそれでも)過不足なく書かれていると感じた。
インフラやクラウドの本は、ネットワーク、Linux、セキュリティ、クラウドサービス、運用などの範囲が広くなりやすい。そのため、入門書だと浅すぎて実務の判断に使いづらく、専門書だと細かすぎてバックエンドエンジニアが最初に読むには重いことがある。
本書はその中間あたりの立ち位置で、バックエンドエンジニアが理解しておくと実務で助かる内容に焦点が当たっている。インフラ専任者になるための本というより、バックエンド開発を進めるうえで必要になる周辺知識を、実務目線で一通り整理する本という印象である。
技術書には読みにくいものも多いが、本書は文章に冗長さや繰り返しが少なくてとても読みやすい。また、内容が体系的に整理されていて、話の運びが上手なので受動的に読み進めることが出来る。
この本を読むことで、知識と経験のあるベテラン上司からマンツーマンで教わっているような感覚を得られる一冊だと感じた。
特に良いと思ったのは、単語の説明だけで終わらず、「なぜバックエンドエンジニアがそれを知っておく必要があるのか」が見えやすい点である。
たとえば、ネットワークの知識は資格試験のために覚えるだけだと退屈に感じやすい。しかし実務では、APIが外部サービスに接続できない、DBに接続できない、ロードバランサ経由だと挙動が変わる、DNSの反映を待つ必要があるなど、かなり身近な問題として現れる。
同じように、Linuxやコンテナの知識も、普段の開発では意識しないかもしれない。しかし、ログの出力先、プロセスの起動、環境変数、ファイル権限、ポート、ヘルスチェックなどを理解していないと、デプロイ後のトラブルシュートが一気に難しくなる。
このように、バックエンド開発の延長線上にあるインフラ知識として説明されているため、抽象的な勉強で終わりにくい。自分が普段触っている開発作業と結びつけながら読める点が良かった。
良かった点
一番良かった点は、扱う範囲の広さと読みやすさのバランスである。
インフラ・クラウド周りは、学ぼうと思えばいくらでも細かく学べる領域である。ネットワークだけでもかなり深いし、Linux、Docker、Kubernetes、クラウド設計、セキュリティ、監視、CI/CDなどを個別に学ぼうとすると、何冊も本を読む必要がある。
一方で、バックエンドエンジニアが最初からすべての領域を深掘りするのは現実的ではない。業務で必要になったタイミングで深く学ぶとしても、その前段階として全体像を持っておくことが重要だと思う。
本書はその全体像をつかむ用途にかなり向いている。広い範囲を扱いながらも、説明が散らかっておらず、「今どの話をしているのか」「それがバックエンド開発とどう関係するのか」が追いやすい。
また、各トピックの粒度も良い。細部に入り込みすぎず、それでいて表面的な用語集にもなっていない。初めて聞く言葉があっても前後の説明で理解しやすく、すでに知っている内容については復習として読み進めやすい。
特に、インフラやクラウドに対して苦手意識がある人にとっては、最初の一冊として読みやすいのではないかと思う。専門用語を前提に突き放すような書き方ではなく、バックエンドエンジニアの目線に寄せて説明されているため、読み進める心理的な負担が少ない。
読者想定
読者想定レベルは、応用情報に合格するくらいのジュニアエンジニアかなと思う。
完全な未経験者が読む場合、ネットワークやOS、クラウドの単語が少し難しく感じるかもしれない。ただ、何らかのWebアプリケーション開発を経験していて、API、DB、デプロイ、環境変数、ログといった言葉にある程度触れたことがあれば、かなり読みやすいと思う。
具体的には、以下のような人に向いていると感じた。
- バックエンド開発を1〜3年ほど経験し、そろそろインフラやクラウドも体系的に学びたい人
- Dockerやクラウドサービスを使っているが、なんとなく動かしている感覚が残っている人
- 障害調査や本番環境の不具合対応で、どこから確認すればよいか迷うことが多い人
- SREやインフラ担当者と会話するときに、最低限の前提知識を揃えたい人
- 個人開発やハッカソンで、アプリケーションの実装からデプロイまで一通り自分で進めたい人
逆に、すでにインフラ設計やクラウド運用を主業務にしている人にとっては、少し物足りない部分もあるかもしれない。あくまで「バックエンドエンジニアがインフラ・クラウドを理解するための本」として読むのがちょうど良いと思う。
気になった点
大きな不満はないが、広い範囲を扱う本であるため、各テーマを深く掘り下げる本ではない。
そのため、この本だけでネットワーク設計やクラウドアーキテクチャ、セキュリティ設計、監視設計をすべて実務レベルでできるようになるわけではないと思う。あくまで全体像をつかみ、どの領域を追加で学べばよいかを見つけるための本として捉えるのがよさそうである。
ただし、この点は欠点というより本の役割の問題である。もし各分野を深掘りしようとすると、分厚くなりすぎて読み通しにくくなるし、バックエンドエンジニア向けの実務的な導入書という良さも薄れてしまう。
個人的には、まず本書で全体像をつかみ、業務でよく触る領域や苦手な領域だけ別の専門書や公式ドキュメントで深掘りする読み方が良いと思う。
読んで考えたこと
この本を読んで改めて感じたのは、バックエンドエンジニアに必要な知識の範囲はかなり広いということである。
特にAIを使うようになると、この傾向はさらに強くなると思う。AIは自分が詳しくない領域にも手を伸ばすきっかけを作ってくれるが、同時に、自分が十分に理解していない構成や設定を採用してしまう危うさもある。
APIを実装するだけなら、フレームワークや言語、DBの知識が中心になる。しかし、実際のサービスでは、アプリケーションは必ずどこかの環境で動き、ネットワーク越しに通信し、ログを出し、監視され、障害時には復旧される。
そう考えると、バックエンドエンジニアがインフラやクラウドを学ぶことは、担当範囲を無理に広げるというより、自分が書いたコードが実際に動く場所を理解することに近い。
実務では、コードの品質だけでなく、運用しやすさや障害時の調べやすさも重要である。エラー時に十分なログが出ているか、環境ごとの差分が整理されているか、外部サービスへの接続失敗をどう扱うか、スケールしたときにどこが詰まりそうか、といった観点は、バックエンド側でも意識しておいたほうがよい。
その意味で、本書は「インフラの勉強」というより、「バックエンドエンジニアとして実務の解像度を上げるための本」として読むとしっくりくる。
まとめ
「バックエンドエンジニアのためのインフラ・クラウド大全」は、AIによって一人で扱える開発範囲が広がっている今、バックエンドエンジニアが読んでおくと役立つ本だと感じた。
バックエンドエンジニアが実務で必要になりやすいインフラ・クラウド知識を、かなり読みやすく整理してくれている本だった。
文章に無駄が少なく、内容も体系的にまとまっているため、インフラやクラウドに苦手意識がある人でも読み進めやすいと思う。
一方で、各分野を深く学ぶ専門書ではないため、この本を読んだあとに、自分の業務で必要な領域を追加で深掘りしていくのが良さそうである。
個人的には、バックエンド開発に慣れてきて、次の段階としてインフラやクラウドも理解したいジュニアエンジニアにかなりおすすめしやすい一冊だと感じた。
アプリケーションコードの外側にある仕組みを理解すると、設計、実装、デバッグ、障害調査のすべてで判断しやすくなる。そういう意味で、バックエンドエンジニアが一度読んでおく価値のある本だと思う。