1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「教材は読んだのに手が動かない」を終わらせる。ブラウザでインフラを学べる「InfraDojo」を作りました

1
Posted at

「教材は読んだのに手が動かない」を終わらせる。ブラウザでインフラを学べる「InfraDojo」を作りました

こんにちは、Reoです。

普段はインフラエンジニアとして仕事をしながら、インフラ学習サービス「InfraDojo(インフラ道場)」を開発しています。

未経験からインフラを勉強していると、

  • Linuxの本を読んだけどコマンドが身につかない
  • 動画では理解できたのに、自分で操作すると手が止まる
  • Linuxを触りたいけど環境構築で詰まる
  • AWSを勉強したいけど料金が気になって自由に触れない
  • 何から勉強すればいいのか分からない

といった問題にぶつかることがあります。

自分自身も未経験からインフラを勉強していた頃、同じ経験をしました。

そこで、

「ブラウザを開いたら、すぐインフラを触って学べる環境を作れないか?」

と考えて開発したのがInfraDojoです。

この記事では、InfraDojoを作った背景と、どのような学習ができるのかを紹介します。


「知っている」と「できる」は意外と違う

Linuxを例に考えてみます。

参考書を読んで、

chmod

が「ファイルやディレクトリの権限を変更するコマンド」だと理解したとします。

資格問題でも、

ファイルのアクセス権を変更するコマンドは?

と聞かれれば、

chmod

と答えられる。

でも、実際のLinux環境で、

script.shを所有者のみ読み書き・実行可能にしてください

と言われると、手が止まることがあります。

ここで必要になるのは、

ls -l

で現在の権限を確認して、

chmod 700 script.sh

を実行し、

もう一度、

ls -l

で変更されたことを確認する、といった操作です。

さらに実務では、

Permission denied

というエラーから、

「権限が原因では?」

と考える必要もあります。

つまり、

コマンドの意味を知っていること

と、

状況に応じてコマンドを使えること

には少し距離があります。

この距離を埋めるには、実際に操作する経験が重要だと考えています。


ただ、インフラ学習は「触り始めるまで」が意外と大変

「それならLinuxを実際に触ればいい」

という話になるのですが、未経験者の場合はここにもハードルがあります。

例えば自分のPCにLinux環境を作ろうとすると、

VirtualBoxなどをインストール
↓
LinuxのISOをダウンロード
↓
仮想マシンを作成
↓
Linuxをインストール
↓
ネットワークを設定
↓
ようやくLinuxを操作

といった準備が必要になります。

もちろん、仮想マシンを自分で構築すること自体も非常に良い勉強です。

ある程度Linuxに慣れてきたら、ぜひ経験した方がいいと思います。

ただ、

Linuxを一度も触ったことがない人が、Linuxコマンドを打つ前に環境構築で挫折してしまう

のはもったいない。

AWSも同じです。

実際にAWSアカウントを作成してリソースを構築する経験は重要ですが、初心者の場合は料金や設定ミスが気になって、自由に試せないことがあります。

そこでInfraDojoでは、

最初の学習ハードルをできるだけ下げて、まず手を動かしてみる

ことを重視しました。


InfraDojoとは?

InfraDojoは、

ブラウザ上でインフラ技術を実際に操作しながら学習するサービス

です。

コンセプトは、

インフラを、暗記だけで終わらせない。

現在は、

  • Linux
  • ネットワーク
  • セキュリティ
  • Docker
  • AWS
  • Kubernetes
  • Terraform

などの分野を学習できます。

基本的な考え方はシンプルで、

解説を読む
↓
問題を見る
↓
自分で考える
↓
実際に操作する
↓
結果を確認する

というサイクルを繰り返します。


ブラウザだけでLinuxを操作できる

InfraDojoでは、ブラウザ上にターミナルを用意しています。

そのため、Linux環境を自分で構築しなくても、

pwd
ls
cd /var/log

といったLinuxコマンドを実際に入力できます。

例えば最初は、

pwd
ls
cd

から始めます。

pwdで現在地を確認する。

lsでファイルやディレクトリを確認する。

cdで移動する。

慣れてきたら、

mkdir
touch
cp
mv
rm

などを使ってファイル・ディレクトリ操作へ進みます。

さらに、

grep
find
chmod
chown

などを使った検索や権限操作へ進みます。

最初から大量のコマンドを暗記するのではなく、実際に使いながら少しずつ増やしていく構成です。


問題形式でコマンドを入力する

自由にターミナルだけ渡されても、初心者の場合、

何を練習すればいいんだろう?

となりがちです。

そのため、InfraDojoでは課題形式で操作します。

例えば、

現在いるディレクトリを確認してください

という問題なら、

pwd

と入力します。

次に、

practiceという名前のディレクトリを作成してください

と出たら、自分で考えて、

mkdir practice

と入力します。

ここで大切にしているのが、

問題を見てから、自分でコマンドを考えること

です。

mkdir → ディレクトリ作成

と暗記するだけではなく、

ディレクトリを作りたい
↓
何を使う?
↓
mkdir

という方向でも思い出せるようにします。

実際の仕事では「今日はgrepを使おう」ではなく、

このログからERRORが発生している箇所を探して

のように目的が先に与えられるからです。


操作結果を自動判定する

InfraDojoでは、操作した結果も判定します。

例えば、

/home/user/practicetest.txtを作成してください

という課題があったとします。

単純に、

touch test.txt

という文字列を入力しただけではなく、

実際に指定された場所へファイルを作成できたか

という結果を確認します。

Linuxはコマンドそのものを覚えることが目的ではありません。

目的の状態へ変更できたかどうかが重要です。

そのため、できるだけ「正しい文字列を入力したら正解」だけで終わらないようにしています。


Linuxだけではなくインフラ全体を学習できる

InfraDojoではLinux以外にも、

  • ネットワーク
  • セキュリティ
  • Docker
  • AWS
  • Kubernetes
  • Terraform

といった分野を扱っています。

未経験からインフラエンジニアを目指す場合、個人的には、

Linux
↓
ネットワーク
↓
AWS
↓
Docker
↓
Terraform
↓
Kubernetes

のように、基礎から少しずつ学習範囲を広げていくのがおすすめです。

例えばDockerを触っていても、

docker ps

だけ覚えればいいわけではありません。

コンテナ内へ入ればLinuxを操作しますし、通信トラブルが起きればネットワークの知識も必要になります。

AWSでもEC2へSSH接続すればLinuxを操作します。

そのため、特定のサービスだけ暗記するのではなく、

Linuxやネットワークを土台にして、その上へ技術を積み重ねていく

ことを意識しています。


「コマンドを打つ」だけでなく理解度も確認する

手を動かすことは重要ですが、

操作だけできればいい

とも考えていません。

例えば、

chmod 755 script.sh

を入力できても、

「755は何を意味している?」

と聞かれて説明できなければ、理解が十分とは言えません。

そこで、操作演習に加えて、

  • 選択問題
  • ○×問題
  • 穴埋め問題

なども用意しています。

目指しているのは、

知識を学ぶ
↓
実際に操作する
↓
問題で理解度を確認する
↓
間違えたところを復習する

という流れです。


最終的には「障害を切り分ける力」を身につけたい

InfraDojoで特に重視したいと考えているのが、トラブルシューティングです。

例えば、

Webサーバーへアクセスできません

と言われたとします。

このとき、

systemctl status nginx

でサービス状態を確認する。

journalctl -u nginx --since "10 minutes ago"

でログを確認する。

ss -tlnp

でポートを確認する。

df -h

でディスク容量を確認する。

free -h

でメモリを確認する。

重要なのは、この5つを暗記することではありません。

「なぜ今このコマンドを実行するのか」

を考えることです。

例えばdf -hなら、

ディスク容量の枯渇によってサービスに問題が発生していないか?

という仮説を確認しています。

実務では、

現象を確認する
↓
仮説を立てる
↓
確認方法を考える
↓
コマンドを実行する
↓
結果から原因を絞る

という流れが重要になります。

最終的には、この「切り分ける力」につながる学習体験を増やしていきたいと考えています。


環境構築を学ばなくていいわけではない

ここは誤解されないように書いておきます。

InfraDojoが環境構築不要だからといって、

環境構築を勉強する必要がない

という意味ではありません。

むしろ、インフラエンジニアを目指すなら自分でLinuxサーバーを構築する経験はした方がいいと思っています。

ただ、順番の問題です。

完全初心者なら、

まずLinuxを触る
↓
基本的なコマンドを覚える
↓
Linuxの仕組みを理解する
↓
自分でLinux環境を構築する

でもいい。

いきなり全部やろうとして挫折するより、

まず操作に慣れてから環境構築へ進む

という選択肢を用意したかった、というのがInfraDojoの考え方です。


本やUdemyなどと組み合わせてもOK

InfraDojoだけですべての学習を完結させる必要もありません。

参考書は体系的な知識を身につけるのに向いています。

動画教材は、画面を見ながら仕組みを理解するのに便利です。

資格学習は、LinuxやAWSなどを幅広く体系的に学ぶきっかけになります。

InfraDojoは、その中でも、

「実際に操作する」部分を補う学習環境

として使えるようにしています。

例えば、

本・動画で理解する
↓
InfraDojoで操作する
↓
分からなかった部分を調べる
↓
もう一度操作する

という使い方です。

インプットとアウトプットの両方を繰り返すことで、知識と操作を結びつけやすくなります。


こんな人向けに作っています

InfraDojoは特に、

  • 未経験からインフラエンジニアを目指している
  • Linuxを勉強しているけど実際の操作に自信がない
  • 本や動画を見るだけの学習から一歩進みたい
  • Linux環境構築で一度挫折した
  • インフラ技術を順番に学びたい
  • 実務経験が浅く、基礎をもう一度固めたい

という人を想定しています。

逆に、すでにインフラ設計・構築を何年も経験しているエンジニア向けというより、

これからインフラを学び始める人〜実務経験の浅い人向け

のサービスです。


まずは無料でLinuxを触れます

InfraDojoには無料で利用できる範囲を用意しています。

最初は、

pwd
ls
cd

といった基本的なLinux操作から始められます。

いきなり有料プランへ登録する必要はありません。

まず実際にブラウザからLinuxを触ってみて、

「こういう学習方法なら続けられそう」

と思ったら、その先へ進んでもらえればと思っています。

有料プランは、

  • Plus:月額1,980円
  • Pro:月額4,990円

を用意しています。


まとめ

InfraDojoを作った一番の理由は、

「教材を読んだのに、実際には手が動かない」

という状態を減らしたかったからです。

Linuxのコマンドを知っている。

AWSのサービスを知っている。

Dockerについて説明できる。

もちろん、それも重要です。

ただ、インフラエンジニアとして働くなら、その先に、

「じゃあ実際にやってみる」

があります。

知る
↓
触る
↓
失敗する
↓
調べる
↓
直す
↓
もう一度試す

この繰り返しが、インフラ学習では大切だと思っています。

InfraDojoは、その「触る・失敗する・直す」をできるだけ気軽に経験できる場所として開発しています。

未経験からインフラエンジニアを目指している方や、Linuxを勉強しているけど手が動かないと感じている方は、まずブラウザから実際にコマンドを打ってみてください。

最初は、

ls

だけでも十分です。

そこから少しずつ「知っている」を「できる」に変えていきましょう。

InfraDojo(インフラ道場)

ブラウザ上でLinuxをはじめとしたインフラ技術を、実際に操作しながら学習できます。


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?