2025年6月26日
「オープンソースカンファレンス(OSC)」発起人 「Linux標準教科書」著者
宮原 徹
1994年に日本オラクル入社、Linux版Oracleのマーケティングに従事。その後は企業経営の傍ら、オープンソースソフトウェアや仮想化技術を中心に執筆・講演活動を行う。2004年に始めた「オープンソースカンファレンス」(OSC)は全国に広がり、その功績により2008年、IPA「日本OSS貢献者賞」を受賞。著書に『ADSLによるLinuxインターネットサーバー構築ガイド』(技術評論社)、『Linux実用Tipsリファレンス』(共著, 技術評論社)、『仮想化技術 完全攻略ガイド』(共著, インプレスジャパン)など。
皆さん、はじめまして。宮原 徹と申します。普段は仮想化技術やクラウドのコンサルタントを行いながら、「オープンソースカンファレンス」というOSS関連イベントを20年以上全国各地で開催しています。私のライフワークである「エンジニアを育てる」という観点で、これからインフラ技術を学びたい人におすすめする技術書籍をご紹介しようと思います。
そもそも、なぜインフラ技術を学ぶ必要があるのでしょうか。ソフトウェアエンジニアにとって、アプリケーションのコードを書くこと自体は生成系AIを使ってより容易になっていくので、サービスを提供するシステム全体を技術的に把握し、必要であればインフラを構築したり修正したりすることが求められてきます。このあたりを突き詰めていくと「SRE」や「オブザーバビリティ」などの話になっていくのですが、今回はまずはそのような方向に進むための第一歩を踏み出す人におすすめの技術書籍を以下の5つの観点でご紹介します。
新しい技術を学ぶなら、まずはネットで調べればいいのではないか、と思う人もいるかもしれません。ですが、私は技術書籍を紐解くことを強くおすすめしています。ネットで断片的な情報をひとつひとつ探すのは案外骨が折れることで、同じ労力をかけるなら、書籍を読む方が身につく知識やスキルといったリターンが大きいからです。
まず、技術書籍を書いている人の多くがその技術についての第一人者です。そのような人が時間をかけて自分の持っている知見を体系的にまとめ上げ、技術書籍に注入してくれています。そのようなものをネット上で探すのはかなり難しいでしょう。
ネット上の情報はカオス状態なので、それらを自分で取捨選択、整理整頓する必要があります。初めて学ぶ技術に対してそのようなことができるようになるには、学習能力そのものが高い人以外相当時間がかかるものです。技術書籍は、どのように学べば良いか順序立ててあったり、情報の種類に応じて章立てを考えてあったりなど、あらかじめ情報が整理されています。目次を見るだけでも大変参考になります。
技術書籍は1冊大体2000円から4000円です。高いと感じられるかも知れませんが、その書籍の中に1ページでも役立つ情報があり、かつそれを書籍以外で発見するために費やす時間を考えたら、こんなにコストパフォーマンスの高い情報源はありません。
技術書籍のメリットや活用方法はまだまだありますが、以上3点を考えるだけでも技術書籍をうまく活用できるエンジニアになる近道であるといえるでしょう。
では、各トピック毎のおすすめ書籍をご紹介します。
▲『コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識』矢沢久雄著、日経BP
コンピューターはなぜ動くのでしょうか。多くの人が、コンピューターの仕組みを知らなくても日常的にコンピューターを使う時代になりました。しかし、サービスを提供する側である「プロ」はきちんとその仕組みを理解している必要があります。
コードのロジックは正しいはずなのにアプリケーションがすごく遅い…という時、ハードウェアの特性を無視した無理なI/O処理などが原因かもしれません。こうした非効率な処理がデータベースに過剰な負荷をかけ、パフォーマンスに影響します。ハードウェアとソフトウェアの連携について理解していると、不具合の原因を様々な角度で検証できるようになり、より素早く解決につなげられるようになります。
本書は『なぜ動くのか』シリーズの第2弾にあたります。第1弾は『プログラムはなぜ動くのか』ですが、プログラムが動作する仕組みをある程度理解している人に、より広い視野でコンピューターの仕組みについて解説している書籍です。
本書がカバーしている範囲が非常に素晴らしく、エンジニアであれば一通り知っておいてほしいトピックを網羅しています。一方で、たとえば第3章のアセンブラ、第7章のオブジェクト指向、第10章のセキュリティといったトピックは、基本的な知識が無い人からするとなかなかに難解です。何を言っているのかサッパリ分からない、という時はとりあえず眺めて各章に何が書いてあるのかを把握する程度にしておいてもいいでしょう。
私も正直、C言語が苦手で、新卒研修の時のC言語は赤点でした。なので今でもポインターは苦手ですし、オブジェクト指向などもJavaプログラマーだったのにメリットがよく分かっていません。それでもバリバリの専業プログラマーとして仕事をしていくのでなければ何とかなる程度ですので、あくまで知識として頭の片隅に入れておく、ぐらいの感じで読むといいのではないでしょうか。
本書以外の『なぜ動くのか』シリーズには良書が多いので、是非そちらもチェックしてみてください。
▲左から『Linux標準教科書 Ver.4.0.0: LinuC(リナック)学習にも役立つ』宮原徹著、LPI-Japan、『Linuxサーバー構築標準教科書 Ver.4.0.1: LinuC(リナック)学習にも役立つ』宮原徹、塚田美香著、LPI-Japan
さまざまなサービスを提供するには、Linuxサーバー抜きでは考えられません。Linuxの操作およびLinuxサーバーの構築と運用管理の基礎知識を身につけていることはエンジニアの嗜みと言ってもよいでしょう。
「開発環境では動くのに、本番のサーバーではなぜかうまく動かない」という経験はありませんか。その原因は、ファイルのアクセス権限(パーミッション)やネットワーク設定といった環境差異かもしれません。Linuxの基本を理解していると、具体的な仮説を立てながら、コマンドを使って原因を絞りやすくなります。
この分野の技術書籍は本当に紹介しきれないくらいありますが、私が企画・執筆し、無償で提供している「Linux標準教科書」シリーズをご紹介します。
『Linux標準教科書』は2008年に専門学校などでLinuxを教える先生が授業で使用したり、副読本として手軽に読んだりできる教科書が欲しい、ということで提供が開始されました。その後何度かの改訂を経て、2024年に全面改訂を行いました。まず、仮想マシンを使って一人で自学自習するスタイルに変更しました。また、現在Linuxエンジニアとして必要とされる技術を試しながら学べるよう、項目を大幅に絞り込んでいます。結果、ページ数も大幅に削減され、最後までやり切れる、とても使いやすい教科書になっています。なにより、PDFやEPUBを無償でダウンロードできるので、まずこの教科書で勉強してもらい、基礎知識が得られたところでよりレベルの高い技術書籍でさらに学んでもらうことができます。印刷されたものが欲しい場合には実費で入手できます。
改訂された最新版は、Linuxコマンドの操作を学べる『Linux標準教科書』と、Linuxサーバーの構築を学べる『Linuxサーバー構築標準教科書』です。まずは『Linuxサーバー構築標準教科書』をやってみて、次に『Linux標準教科書』でコマンド操作などの知識の幅を広げてもらうのがおすすめの学習法です。また現在、『Linuxシステム管理標準教科書』の改訂作業も進めています。2025年夏以降のリリースを予定しているのでご期待ください。
▲『TCP/IPの絵本 第2版 ネットワークを学ぶ新しい9つの扉』株式会社アンク著、翔泳社
現在のシステムは、ネットワーク無しでは成立しないぐらいネットワークに依存しています。Linux同様、ネットワークの基礎知識を身につけておくことはエンジニアの必修科目と言えます。たとえば、Linuxサーバーの構築・運用でも、ネットワークに関係することが大きな比率を占めているぐらい重要な技術です。
アプリケーションから外部APIへ接続する際に通信エラーが起きた時、DNS解決の失敗やファイアウォールによる通信ブロックが原因かもしれません。ネットワークの知識があると、具体的な調査ポイントに目星を付け、コード外にある原因を絞り込むことができます。
しかし、ネットワークの学習の難しいところは、その動作が目に見えないことです。そのため、動作原理を視覚的に理解させてくれる技術書籍がおすすめです。
よく技術を修得するコツとして「○○のつもりになって考える」というのがあります。たとえばコンピューターの仕組みを理解するには、コンピューターのつもりになって考えます。
上記をふまえると、『絵本』シリーズの一冊、『TCP/IPの絵本』は最適です。図解されている技術書籍は多々ありますが、本書はコンピューターやプログラムを擬人化し、技術書籍とは思えないイラストで解説してくれているので、ネットワークに苦手意識を持っているような人でも気軽に読めるのが特徴です。本書も、自分がネットワークに繫がっているコンピューターやプログラムになったつもりで(たとえばCPUやメモリが頭脳、ストレージがノート、といった具合です)読むと、より理解が深まるのではないでしょうか。
『絵本』シリーズは様々な技術をカバーしているので、他のテーマを扱ったものも覗いてみてはどうでしょうか。
▲『現場のプロがわかりやすく教えるデータベースエンジニア養成講座』坂井恵著、秀和システム
データベースは、エンジニアとして、あるいはプログラマーとして自分のスキルやキャリアをステップアップさせる、非常に重要な技術に位置付けられます。特に設計などの上流工程に携わりたいのであれば、システム設計の中心となるデータベースに対する深い理解は必要です。あるいは運用などの下流工程においても、性能やシステム拡張など様々な面でデータベースが関係してきます。
たとえば、パフォーマンスを度外視したSQLのせいで、データが増えるたびにシステムの応答が遅くなってしまうと、身動きが取れずに新たな機能追加も困難になります。データベースの基本を学ぶことは、データベースの設計に起因する技術的負債を未然に防ぎ、システムの健全性を保つカギとなります。
そこでおすすめしたいのが、『現場のプロがわかりやすく教えるデータベースエンジニア養成講座』です。本書では、DBの役割などの概論から現場で役立つ知識まで、DBエンジニアとして知っておいて欲しいことが詰まっています。特に第3章の「データベースを使うということ・学ぶということ」では、DBエンジニアとしての「心得」が書かれているなど、徹底して現場主義が貫かれています。
これまで、データベースについての技術書籍は多数出てきていますが、DBというソフトウェアそのものの使い方か、SQLなどの操作言語の解説など、全体をステップバイステップで網羅的に学ぶ教科書的なものがありませんでした。この本は本当に現場で使えるDB技術を学ぶための一冊としておすすめします。
▲『図解即戦力 Amazon Web Servicesのしくみと技術が これ1冊でしっかりわかる教科書』小笠原種高著、技術評論社
ここまで紹介してきたトピックは個別の技術でしたが、クラウドはそれらの技術を組み合わせてシステムを構築する、言ってみれば横糸のようなものです。だからこそ、その横糸を1本引き抜くような些細な設定変更が、システム全体の思わぬ“ほつれ”、つまり予期せぬサービスの停止につながることがあります。
たとえば、クラウドの設定を1つ変更しただけで、予期せぬサービスまで停止してしまった経験はありませんか。こうした事態は、個々のサービスがネットワーク(VPC)や権限管理(IAM)の上で複雑に連携しているために起こります。
そこで重要となるのが、それぞれのクラウドサービスの役割を理解しつつ、満遍なくサービスについての広い理解を得ることです。この理解があって初めて設定変更の影響範囲を予測することが少しずつできるようになります。
本書はタイトルに「図解」と入っている通り、類書に比べてふんだんに図を使って解説しているのが特徴です。また、できるだけやさしく解説するというコンセプトから、解説の文字数も抑え目で読みやすくなっています。そうした意味では、丁寧に解説している分厚い“名著”を買ってつい積読してしまう人にもおすすめできます。これからクラウド、AWSを触るという人の頭の中に、まずは全体の概要図を作るようなイメージで読むとよいでしょう。一方で、物足りなさを感じる部分もあるかと思いますので、追加でその他の解説書を読んだり、クラウドサービスから提供されているドキュメントを読んだりして、より理解を深めていくとよいでしょう。
以上、これからインフラ技術を学びたい人に向けておすすめしたい書籍をご紹介してきました。もっともっと紹介したい書籍が沢山ありますが、まずはこの一冊ということで選んでみました。是非、実際の書店に足を運んで読み比べてみたり、近くに技術書籍を沢山置いている書店がないなら、オンラインストアのレビューや読者の感想ブログなどを読んでみたりして自分に合った一冊を探してみてください。
関連記事
人気記事