分12これまでは,もうエンジニアになっているケースでの心得について書いてきましたが,前回の「エンジニア不足を解消しよう」からの流れとして,インフラエンジニアになるにはなにを学べばいいのか,という点に焦点を当ててみたいと思います。以前に書いたように,トラブルが一番成長の糧になるのは間違いないのですが,ただ必要最低限のスキルというか体力が必要なのもまた事実です。何もカケラも知らない状態では,トラブルに遭遇しても成長も何もなく,もしかしたらトラウマだけが残るかもしれません。ステップ1:OSインストール筆者が,まず最初にやると良いと思うのは(おもにUNIX系の)OSインストールです。はあ?と思うかもしれませんが,OSインストールにはシステム管理のツボとも言うべきものが多く含まれています。そのためには,OSを入れて「できた」と思うのではなく,何度もいろいろなパターンでOSインストールしてみることが大事です。最初はあまり何もわからないので,推奨設定のまま進んで,とりあえずOSが起動するだけでも十分だと思います。そのときは,IPもDHCPからもらっていて,各種ソフトウェアも標準で推奨されるものがインストール,起動設定され,HDDのパーティションも典型的なものになっていることでしょう。うまく起動までこぎつけたら,それで満足せず,いろいろなことを試してみてください。いじってうまくいかなくても誰も困らない,というかそもそもそれが勉強なので,臆せずチャレンジしてみてほしいと思います。繰り返しになりますが,OSインストールには実にいろいろな要素が入っています。routeなどの知識が必要です。それに各種ソフトウェアについても,各カテゴリを全部,端から端まで見てみると,それだけで数百(数千?)のソフトウェアの存在を知ることができます。これを何度も繰り返していると,それまでは特に気にとめていなかった設定項目についても「そういえば何故これはこうなんだ?」といった疑問を持つようになると思います。筆者がnewbie(初心者)のころは,Linuxはあまり普及していなかった,というか業務で使われることはなかったので,SunOSやSolarisのインストールばかりしていましたが,そこからもいろいろなことを学びました。少なくとも10回くらいは(できればもっと)OSインストールはしてみるといいと思います。いまはほとんどLinux(クライアントだとUbuntuでしょうが,サーバだとだいたいCentOS)だと思いますが,せっかくなのでFreeBSDやOpenSolarisなども試してみると良いかもしれません。複数のOSを知り,比較することでわかることもあるものです。次にチャレンジして欲しいのは,ネットワークの基礎知識です。インフラというかサーバ管理者の勉強というのは,基本実践が一番だと思いますが,ネットワークだけは必要最低限,理屈を知っていたほうが良いです。7層で言うところの2,3,4層あたりについて,一通りの概要がわかるくらいで良いと思います。IPアドレスとはなにか,Macアドレスとはなにか,なんでわかれているのか,ルーティングとは,サブネットとブロードキャストドメインとは,TCPとUDPとは,ICMPとは,MTUとは,あとそもそもレイヤーという考え方とは,くらいで十分でしょう(いま思いついていないだけで,もっとあるかもしれませんが⁠)⁠。ダイナミックルーティングはこの時点ではあまりいらないでしょう。ネットワークの勉強を実践で試すには,マシンが複数あると良いですが,そうもいかないケースも多いので,まあそれは可能な範囲でという感じです。ステップ3:OSSのインストール/セットアップ次はやはり各種ソフトウェアです。それも,オープンソースのものですね。OSインストールを何回もやるのは基礎体力をつけるようなものですが,OSSをいろいろ試すのは応用体力を付けるようなものです。そのときは,かならずソースからmakeするようにしましょう。いうことを書くと「MySQLはバイナリのほうがパフォーマンスが出る」とか「FreeBSDのportsはすばらしい文化だ」とか「yumはシステム管理のひとつだ」とか言われる気がしますが,いま話しているのはどう各種アプリケーションを管理するかの方針について議論したいのではなくて,「⁠サーバエンジニアとして基礎的なものを学ぶには何をするのがいいか」です。それには,configureしてmakeしたりxmkmfしたりとか(これはあまりしないか...⁠)⁠,Makefileを手直ししたり,ヘッダファイルを直したりとか,ldconfigを使えるようになったり,.aと.soってなによ,っていう疑問を持ったりとか,そういう試行錯誤が重要で,それらの過程で体力が付いていくものだと思います。筆者くらい年寄りになると「昔はconfigureなんてなかったんだ。そもそもMakefileは」とか言う人もいるかと思いますが,configureくらいは別にいいじゃん,と思います。configureのオプションは必ず全部見るようにしましょう。オプションなしでだいたいOKなものも結構ありますが,ApacheやMySQLなどのサーバ系ソフトはconfigureのオプションを使いこなせることが必須です。学習過程では使いこなせる必要はないですが,「⁠なんでこういうオプションがあるんだろう」と思うことが重要です。makeではうまくいかないケースもままあります。あるところでは,djb系だとerror.hを修正しないとmakeできなかったりします(そもそもconfigureがないですが⁠)⁠。いう問題に遭遇して解決していくうちに,応用的な体力が付いていきます。今はどの関数がどのライブラリに入ってるか知らないと困るケースなどはほとんどないので,nmといったコマンドを使うケースはないと思いますが,lddはいまでもかなりの頻度で使うと思うので,ライブラリ関連の知識は多いに越したことはありません。アスキー,So-netなどでネットワーク,サーバエンジニアを経験。オン・ザ・エッヂ(現ライブドア)のデータセンターである「データホテル」を構築,運営。ZETA株式会社)を設立,代表取締役就任(現任)。CX」シリーズとして検索エンジンやレコメンドエンジンを開発,販売している。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。