インフラ学習におすすめのサイト「InfraDojo」とは?ブラウザでLinuxを実践できる学習サービス
未経験からインフラエンジニアを目指してLinuxを勉強し始めると、
「Linuxコマンドはどうやって練習すればいい?」
「本を読んだけど、実際にターミナルを開くと何もできない」
「Linuxを触りたいけど、環境構築で詰まった」
といった悩みが出てくることがあります。
Linuxにはls、cd、grep、chmodなど多くのコマンドがありますが、個人的にはコマンドを暗記するだけではなかなか身につかないと思っています。
大切なのは、
「実際にコマンドを入力して、結果を確認すること」
です。
そこで今回は、ブラウザ上でLinuxを実際に操作しながら学習できる「InfraDojo(インフラ道場)」について、どのようなサービスなのか、実際のLinux学習方法とあわせて紹介します。
InfraDojoとは?
InfraDojoは、
ブラウザ上で実際に手を動かしながらインフラ技術を学習するサービス
です。
コンセプトは、
「インフラを、暗記だけで終わらせない。」
インフラの勉強では、
- Linuxコマンドを覚える
- ネットワーク用語を覚える
- AWSのサービスを覚える
- 資格試験の問題を解く
といったインプット中心の学習になりがちです。
もちろん、これらの知識も重要です。
一方、実際にインフラエンジニアとして働くと、
cd /var/log
でログのあるディレクトリへ移動したり、
grep -i "error" application.log
でエラーを探したり、
systemctl status nginx
でサービスの状態を確認したりします。
つまり、
「コマンドを知っている」だけでなく「必要な場面で使える」こと
も重要になります。
InfraDojoでは、このアウトプット部分を中心に練習できるようにしています。
なぜブラウザ上でLinuxを学べるようにしたのか
Linuxを実際に勉強しようとすると、まずLinux環境が必要になります。
例えばVirtualBoxなどを利用する場合、
VirtualBoxをインストール
↓
LinuxのISOイメージを用意
↓
仮想マシンを作成
↓
Linuxをインストール
↓
ネットワークなどを設定
↓
ようやくLinuxを操作
という流れになります。
もちろん、仮想マシンの構築もインフラ学習として非常に良い経験です。
Linuxに慣れてきたら、一度は自分で環境構築してみることをおすすめします。
ただ、完全初心者の場合、
「Linuxコマンドを勉強したいのに、Linuxを触る前の環境構築で挫折する」
ことがあります。
私自身も未経験から勉強していた頃、この部分で苦戦しました。
そこでInfraDojoでは、
最初は環境構築を飛ばして、とにかくLinuxを触ってみる
ことを重視しています。
InfraDojoでできること
1. ブラウザからLinuxコマンドを実行できる
InfraDojoでは、ブラウザ上にターミナルが表示されます。
そのため、自分のPCにLinux環境を構築しなくても、
pwd
ls
cd /var/log
といったLinuxコマンドを入力できます。
初心者であれば、まずは、
pwd
ls
cd
の3つから始めるのがおすすめです。
pwdで現在地を確認する。
lsでファイルやディレクトリを確認する。
cdで移動する。
まずはこの繰り返しでLinuxのディレクトリ構造に慣れていきます。
2. 問題形式でコマンドを練習できる
自由にLinux環境を渡されても、初心者の場合、
「何をすればいいの?」
となってしまいます。
そこでInfraDojoでは、課題形式でLinuxを操作します。
例えば、
現在いるディレクトリを確認してください。
という問題なら、
pwd
と入力します。
次に、
practiceというディレクトリを作成してください。
という問題なら、
mkdir practice
と入力します。
このように、
問題を読む
↓
必要な操作を考える
↓
コマンドを入力する
↓
実行結果を確認する
という流れで学習します。
ここで重要なのが、
「答えを見る前に一度自分で考えること」
です。
mkdirというコマンドを見れば意味が分かる状態と、
「ディレクトリを作ってください」と言われて自分でmkdirを思い出せる状態には、意外と大きな差があります。
3. 操作結果を自動判定
独学でLinuxを勉強していると、
「この操作で本当に合っているのか?」
と分からなくなることがあります。
InfraDojoでは、課題に対して操作した結果を自動で判定します。
例えば、
mkdir practice
を実行した結果、本当にpracticeディレクトリが作成されているか確認する、といった形です。
単純にコマンド文字列を暗記するのではなく、
「目的の状態を作れているか」
を確認しながら進められるようにしています。
4. ロードマップ形式でLinuxを学習
Linuxには非常に多くのコマンドがあります。
最初からすべて覚える必要はありません。
InfraDojoでは、初心者が順番に進められるようロードマップ形式にしています。
例えばLinuxなら、
STEP1
ターミナルの基本操作
↓
STEP2
ファイル・ディレクトリ操作
↓
STEP3
検索・ログ解析
↓
STEP4
権限・ユーザー・システム管理
↓
STEP5
シェルスクリプト・サービス運用
↓
STEP6
障害対応・実践演習
という流れです。
いきなりsystemctlやjournalctlを覚えるのではなく、
pwd
ls
cd
から始め、
mkdir
touch
cp
mv
rm
へ進み、
さらに、
grep
find
chmod
chown
と少しずつ操作できる範囲を広げていきます。
Linux初心者は何から勉強すればいい?
InfraDojoに限らず、未経験からLinuxを学習するのであれば、個人的には次の順番がおすすめです。
STEP1:基本操作
まずは、
pwd
ls
cd
です。
目標は、
Linux上で自分が今どこにいるのか分かること。
STEP2:ファイル操作
次に、
mkdir
touch
cp
mv
rm
を覚えます。
例えば、
mkdir linux-practice
cd linux-practice
touch test.txt
cp test.txt test-copy.txt
という操作を自分でやってみます。
ここまでできれば、基本的なファイル操作ができるようになります。
STEP3:検索・ログ確認
次に重要なのが、
grep
find
です。
例えば、
grep -i "error" application.log
でログからエラーを検索できます。
さらに、
grep -i "error" application.log | tail -20
とすれば、該当するログの最後の20行を確認できます。
インフラエンジニアの実務ではログを確認する機会が多いため、grepは早い段階から使えるようになっておくと便利です。
STEP4:権限
Linuxを触っていると、
Permission denied
に遭遇することがあります。
そこで、
ls -l
chmod
chown
などを学習します。
例えば、
chmod 755 script.sh
といった操作です。
単純に755を暗記するのではなく、
-
r:読み取り -
w:書き込み -
x:実行
と、それぞれの権限が何を意味するのかまで理解することが重要です。
STEP5:サービス・ログ管理
さらに進むと、
systemctl
journalctl
を学習します。
例えばnginxの状態を確認するなら、
systemctl status nginx
ログを見るなら、
journalctl -u nginx
です。
ここまで来ると、単純なLinuxコマンド操作から、
Linuxサーバーを運用するための操作
に近づいてきます。
最終的には「障害の切り分け」ができる状態を目指す
Linuxコマンドをある程度使えるようになったら、次に意識したいのがトラブルシューティングです。
例えば、
Webサーバーへアクセスできません。
と言われたとします。
このとき、
「何のコマンドを知っているか」
ではなく、
「何を確認すれば原因を絞り込めるか」
を考えます。
例えばサービスを確認します。
systemctl status nginx
ログを確認します。
journalctl -u nginx --since "10 minutes ago"
ポートを確認します。
ss -tlnp
ディスクを確認します。
df -h
メモリを確認します。
free -h
ここで重要なのは、
systemctlを知っている
grepを知っている
dfを知っている
という状態から、
現象を確認
↓
原因を予想
↓
必要なコマンドを選ぶ
↓
結果を確認
↓
原因を切り分ける
という状態へ進むことです。
InfraDojoでも、最終的にはこうした「考えて操作する」学習につなげることを重視しています。
本・動画・資格学習との使い分け
個人的には、InfraDojoだけでインフラ学習を完結させる必要はないと思っています。
学習方法には、それぞれ得意な部分があります。
例えば本なら、Linuxの仕組みを体系的に理解できます。
UdemyやYouTubeなどの動画なら、実際の画面を見ながら理解できます。
LPIC・LinuCなどの資格学習なら、Linuxについて幅広く体系的に勉強できます。
そしてInfraDojoは、
「学んだことを実際に操作してみる場所」
として使うのがおすすめです。
例えば、
本・動画でLinuxについて理解する
↓
InfraDojoで実際に操作する
↓
分からなかった部分を調べる
↓
もう一度操作する
という流れです。
インプットとアウトプットを繰り返すことで、知識と実際の操作を結びつけやすくなります。
Linuxの次は何を学習する?
未経験からインフラエンジニアを目指すのであれば、Linuxだけで終わりではありません。
Linuxの基本を身につけたら、一例として、
Linux
↓
ネットワーク
↓
AWSなどのクラウド
↓
Docker
↓
Terraform
↓
Kubernetes
という順番で学習範囲を広げていく方法があります。
特に、
Linuxとネットワーク
はその後のインフラ学習でも土台になります。
例えばAWSのEC2へSSH接続した先でLinuxを操作したり、DockerコンテナのトラブルシューティングでLinuxコマンドを使ったりします。
そのため、まずLinuxで、
「実際に手を動かして調べる習慣」
を身につけておくと、その後の学習にもつながります。
InfraDojoを作った理由
最後に少しだけ、InfraDojoを作った背景について。
私自身、未経験からインフラエンジニアを目指していた頃、
「本を読んでいるけど、実際には何もできない」
という状態になったことがありました。
Linuxコマンドを見れば、
「これは知っている」
と思う。
でも実際にターミナルを開くと、
「何を入力すればいいんだっけ?」
となる。
そこから実際にLinuxを触るようになり、少しずつ知識と操作が結びつくようになりました。
この経験から、
最初から手を動かして学習できる場所を作りたい
と思い、InfraDojoを開発しています。
コンセプトを、
「インフラを、暗記だけで終わらせない。」
としているのもそのためです。
InfraDojoでLinuxを実際に触ってみる
InfraDojoでは、Linux学習の一部を無料で公開しています。
ブラウザからそのままLinuxを操作できるので、
「Linuxを勉強しているけど、まだ自分一人ではコマンドを打てない」
「本や動画だけでなく、実際にLinuxを触ってみたい」
という方は、アウトプット用の環境として使ってみてください。
Linux学習ロードマップ
InfraDojo
まとめ
InfraDojoは、
ブラウザ上でLinuxを実際に操作しながら学べる、インフラ学習サービス
です。
特に重視しているのが、
「知っている」から「実際にできる」へ進むこと。
Linuxを勉強するときも、
コマンドを知る
↓
実際に入力する
↓
結果を見る
↓
失敗する
↓
原因を調べる
↓
もう一度試す
という経験が重要です。
最初から大量のLinuxコマンドを暗記する必要はありません。
まずは、
pwd
ls
cd
からで十分です。
そこからファイル操作、ログ解析、権限管理、サービス管理、障害対応と少しずつ範囲を広げていけば、実務につながるLinuxスキルが身についていきます。
未経験からインフラエンジニアを目指している方は、ぜひ「読むだけ」ではなく、実際に手を動かす学習も取り入れてみてください。