本文へスキップ
BecomeCoder
ブログ一覧コース一覧

インフラエンジニア独学ロードマップ|何から勉強する?学習順序を解説

#インフラエンジニア#独学#ロードマップ#Linux#Docker#Kubernetes

結論:インフラエンジニアの独学は「Linux → ネットワーク → サーバー → GitDockerKubernetes」の順で進めるのが最短です。 この順序は難易度順であると同時に、実際の技術的な依存関係の順序でもあります。ネットワークもサーバー運用もLinuxのコマンド操作の上に成り立ち、Dockerは「Linuxのプロセスをどう隔離するか」という発想の技術で、Kubernetesは「そのDockerコンテナを大量に、自動で管理する」ための仕組みだからです。土台を飛ばして上位のツールから触ると、エラーが起きたときに何が起きているか読み解けなくなります。

なぜこの順序なのか

インフラの学習でよくある失敗は、「とりあえずDockerから」「いきなりKubernetesの資格を取る」のように、話題になっているツールから手を付けてしまうことです。しかしDockerもKubernetesも、内部では普通のLinuxのプロセスやネットワークの仕組みを使っています。土台がないままだと、公式ドキュメントのエラーメッセージ(Connection refusedpermission denied など)を見ても、それがネットワークの問題なのかサーバー設定の問題なのか、コンテナ特有の問題なのかを切り分けられません。

そこでおすすめなのが次の順序です。

  1. Linux(コマンドライン操作の基礎体力)
  2. ネットワークIPアドレスDNSHTTPの仕組み)
  3. サーバー(実際にサービスを動かす運用の基本)
  4. Git(変更履歴を管理する道具)
  5. Docker(アプリを箱に詰めて動かす)
  6. Kubernetes(その箱を大量に、自動で管理する)

Become-Coderでは、この6分野すべてに登録不要・環境構築不要でブラウザ上でそのまま実行できるレッスンが用意されています。実機のLinuxサーバーを用意しなくても、ブラウザ内のシミュレータでコマンドを打ちながら学べるのが独学の挫折を減らすポイントです。

ステップ1: Linux ― コマンドラインに慣れる

インフラエンジニアの仕事は基本的にGUIではなくコマンドラインで行われます。まずLinuxコマンドコースで、ファイル操作・パイプ・権限・テキスト処理といった基礎体力をつけましょう。全35レッスンのうちほとんどがブラウザ内シェルで実行可能で、最初の一歩は pwd と ls ― 今どこ?何がある? です。実際にコマンドを打って結果を確認しながら進められます。

途中、/etc /var /home /bin とは何か のようにLinuxのディレクトリ構成の全体像を説明する回は読み物として構成されていますが、そのあとの mkdir・touch・rm ― 作る・消す から再びブラウザで実際にファイルを操作しながら学べます。

ステップ2: ネットワーク ― 「つながる」仕組みを理解する

サーバーを扱う以上、IPアドレスやポート、DNSといったネットワークの基礎知識は避けて通れません。ネットワークコースでは、最初の ネットワークとIPアドレス ― サーバーの住所 で全体像を図解したあと、ip ― 自分のサーバーのアドレスを見る のようにブラウザ内シェルで実際に ipdigcurl などのコマンドを打って確認できます。「pingが通らない」「DNSが引けない」といったトラブルの原因を切り分けられるようになるのがこの段階のゴールです。

ステップ3: サーバー ― 実際にサービスを動かす

ネットワークの知識がついたら、サーバーコースで実際にサービスを動かす側の視点を学びます。最初の サーバーとクライアント ― Webの裏側で何が起きているか で全体像をつかんだあと、はじめてのコマンド ― 「今どのサーバーの誰か」を知る からブラウザ内シェルでSSHログイン後の操作やプロセス管理、systemdによるサービス管理を実際に手を動かして学べます。

ステップ4: Git ― 変更履歴を管理する

ここまでの3分野は「動いているものをどう理解するか」でしたが、Gitは「自分やチームが変更した内容をどう記録し、共有するか」を扱う道具です。インフラの設定ファイル(Dockerfileやマニフェスト)もコードと同じようにGitで管理するため、この段階で身につけておくと以降の学習がスムーズになります。Gitコースは全29レッスンのうち大半がブラウザ内のシミュレートGitで実行可能で、最初の一歩は バージョン管理とは ― git init です。add・commit・branch・mergeまで、実際にコマンドを打ちながら理解できます。

ステップ5: Docker ― アプリを箱に詰める

土台が整ったところで、いよいよDockerです。Dockerコースは最初の Dockerとは ― 「どこでも同じ」を実現する箱 で「なぜコンテナが必要か」を解説したあと、イメージとコンテナ ― 設計図と実体 からはブラウザ内のシミュレートDockerで docker builddocker run を実際に打って確認できます。全30レッスンのほとんどがブラウザで実行可能で、docker composeまで扱います。

ここでLinuxとネットワークの知識が生きてきます。「コンテナ同士がなぜ通信できるのか」「ポートを公開するとはどういうことか」は、ステップ1・2で学んだ内容そのものです。詳しくは Wiki: DockerWiki: サーバーとクライアント も参考にしてください。

ステップ6: Kubernetes ― コンテナを束ねて自動運用する

最後がKubernetesコースです。「コンテナを1個動かすだけならDockerで十分だが、本番では何十個ものコンテナを複数サーバーで自動管理する必要がある」という課題から出発し、全34レッスンで学びます。最初の数レッスンは概念を図解する読み物が中心ですが、最初のマニフェスト ― Pod を YAML で書く からはブラウザ内の kubectl シミュレータにYAMLを実際にapplyして、kubectl の基本操作 ― apply/get/describe/logs/exec/delete のようにコマンドを打って挙動を確認できます。概念が多いぶん読み物の比率は他コースより高めですが、その分「なぜKubernetesが存在するのか」という原理から理解できる構成です。詳しくは Wiki: Kubernetes も参照してください。

つまずきやすいところ

インフラ学習で特に迷いやすいのが「IPアドレスとDNSの関係」「サーバーとクライアントの役割分担」といった用語まわりです。Become-CoderのWikiには IPアドレスDNSサーバーとクライアント がそれぞれ独立した解説として用意されているので、レッスンを読んでいて言葉の意味だけ確認したいときはこちらが辞書代わりになります。また、Kubernetes運用の先にある「安定してサービスを動かし続ける」という考え方は Wiki: SRE にまとまっています。将来のキャリアイメージとして目を通しておくと、この先どこまで学べばいいかの目安になります。

何から手を付けるべきか迷ったときの目安

どのコースも共通しているのは、実機のサーバーを用意しなくても、ブラウザだけでコマンドを打って確かめながら学べるという点です。順番を守って土台から積み上げることが、インフラ独学を挫折させないいちばんのコツです。

次に読む

← ブログ一覧に戻る