これから始めるインフラエンジニア1

世の中はフルスタックだのとにぎやかですが、あいにくこちとらフロントエンドのデザインに関しては全くの門外漢です。

その代わり、バックエンド、特にインフラ面に特化しているわけですが。

さて、そんな世の中ですので当然人気は(今に限った話ではない)フロントをやれるエンジニアに集中しています。まあかっこいいですし、見た目ではっきりわかりやすいので仕方ないです。昔からネットワークやインフラは人気がありません。

DBエンジニアは人気なのに…うごご。

そんなクソ人気のないインフラエンジニアを今から目指そう、という奇特、もとい、絶滅危惧種の皆さんこんにちは。インフラやネットワークの不人気の原因の一端は、その学習コストです。何せ、ともすれば実機ないとよくわかんない、というのが結構あります。いや、昨今ですと仮想マシンを利用できるわけですからそこにSDNなり組めばいいんですが。

しかしまあ、VMのネットワークの時点でブリッジネットワークしているわけで、そいつはいったい何者なんだよ、とか、そもそもブリッジインターフェースって何してんだよとか、そういうところでうっかり躓きかねません。やはり初手は物理なのでしょうか。

ともあれ、なんでこんなことを書いているかというと、お取引先で「お前の家みたいなのを一般とかいうな」というひどい言葉を浴びせかけられたからなんですが、インフラ屋の施設としてはわりと一般的だと思いますし、そんなバカみたいな金額投資するわけでもありません。というのを証明してみよう、というわけです。

もちろん、計算した結果、「あ、これバカのやることだ」と気づいたらこの記事はお蔵入りです。計算してから書いているのではなく、書きながら計算すればいいや、という行き当たりばったり企画です。

さて、インフラエンジニアをこれから目指したい。という奇人変人、もとい、絶滅危惧種の方々にまず学んでおいてほしいのは、以下の点です。

  • ネットワークの基礎知識(TCP/IP)
  • DNS/SMTP/HTTP/SSL(TLS)の基本プロトコルと利用するミドルウェア
    • bind(DNS)/postfix(smtp)/apache(HTTP)/openssl(SSL)
  • SNMP/IPMI/Wake on LAN/VLAN/Link Aggregation
  • iSCSI/IP-SAN/NFS/CIFS

初手では要らんもん多くないか、って気がするところもありますが、インフラを名乗る以上オンプレミスもできなきゃダメです。仮想マシンでインターネットサーバ立てるだけならクラウドエンジニアでも名乗ってほしいです。半分以上、ネットワークエンジニアに足突っ込んでいるのがよくわかると思います。ファイバチャネル書いてないだけありがたいと思っていただきたい。

学校などではTCP/IPと基本プロトコル周りはほぼやるとは思いますので、ここで困る人はあまりいないかとは思いますが、代表的なミドルウェアは(安全に)稼働させられることが条件です。とりあえず動かせる、ではなく、きちんとセキュリティを担保して、攻撃に対しての防御力を持った状態で起動できるよ、インターネットにさらしても大丈夫だよ、ということですね。これは学校ではそこまで教えないんじゃないでしょうか。自己学習が必要な場所です。

特にSMTPはうっかりすると簡単にオープンリレーぶちかまして世界中にSPAMをばらまくので注意してください。

SNMPはネットワーク機器の管理運用の基本となります。OS入れたサーバだけをインフラ、と呼ぶのではありません。インフラとは、それを動かすシステムと仕組みの総称です。これは言い換えれば、データセンターである、といえます。ネットワークのないサーバなんてただのスタンドアロンマシンです。つまり、ネットワークもインフラの範疇、というわけですので、当然そのネットワーク機器を管理・運用するための何か、は知識として技術として必要ですね。

IPMIはいわゆるマネジメントボードのことで、オンプレミスでハード触れば基本出現してきます。が、まあこれはネットワークにつないでIP振ればあとはまあ…流れで行けるから、知識としてあればよい感じでしょう。別に触っていてもかまわないですけれど、載っている機器が(今は)少々高いです。ちょっと前は1.5万とかでサーバ買ったらついてきてたんですけどね。hpさんやDELLさんはまた低価格サーバ路線出してほしい。

VLAN/Link Aggregationなんかはもろにネットワークスイッチの大事なところ。オンプレミスだとこれにスタックだとかSPFだとか物理が噛んできますが、まずはネットワーク論理層。Link AggregationはOS上だとTrunkだとかBondなんて呼ばれることもあります。だいたい中身一緒。Ciscoさんだと言葉としてはEther Channelを使いますね。ほかのメーカーさんはだいたいLAG(Link Aggregation)。F5とかがTrunkですかね。このへんは言葉遊びなので、言葉として知っておいて、自分の中でリンクさせておいてください。

最後はストレージ。ただ、昨今のNASは少なくともiSCSI/NFS/CIFSは提供してくれるので、だいたい問題ないです。

 

まずはネットワークから

というわけで、まずは、こんなもんを勉強しよう、と思ったときに必要になるネットワーク機器を見ていきましょう。まずはL2スイッチ。メーカーさんによってアンマネージプラスだとかフルマネージだとかインテリジェントとかいろいろ言い方が変わります。なので、そんなとこで見るのではなくて、Specification(仕様)で判断して下さい。

例えば、NetGearさんだと「フルマネージ」「アンマネージプラス」「スマート」「アプリ&クラウドスマート」「アンマネージ」というラインナップです。どれが何かさっぱりですね。
この場合、主にフルマネージドスイッチ、とはスタック機構を持つエンタープライズクラスのスイッチです。ご家庭には基本オーバースペックもいいとこです。スマートでもスタック持ちはいますが…。アンマネージ、とはただのスイッチングハブのことで、そこらの家電量販店で売ってるスイッチとほぼ同じです。つまり、アンマネージプラスかスマート系、ということになります。だいたいこの辺ならLinkAggregationとVLANくらいはサポートしてます。

例えばこのへん。とかね。ちゃんとSOHO/家庭向けと書かれていますね。別にご家庭にあってなんの違和感もない製品だということです。データセンター向け、とか書かれてないです。楽天市場で26,000円ほどのようです。公式だと5万ちょっとします。がんばって安いとこ探してください。海外から買えば実はだいぶ安いんですが、無事届くかは賭けですね!w ここで、量販店で買えるただのスイッチングが5000円とかなのに!とか思っちゃう人はまずVLANだとかLink Aggregationとかが理解できていない証拠。あいつらにできないことをやるから高いだけで、ギガビットでSPFついててスパニングツリー組めてVLANもLAGGもあって管理画面ついててQoSできるスイッチがこんなお値段で24ポート買えるとか、夢のような話です。正直、別にこれこの程度の金額ならお小遣いの範疇ではないですか?

あと、こういうものを置いておく棚は欲しいです。ゴツいスチールラックだとか19インチラックだとかはかっこいいですが、お部屋の景観を著しく損ねかねません。とりあえず、そこらのホームセンターに行ってメタルラック買ってくればいいですよ。こだわる方はドウシシャのルミナス買ってください。棚板は少し増やしたほうがいいかもしれませんが、ホームセンターで買えば1万円もしない代物です。

こまごまとしたネットワークケーブルは適当に買っておいてください。0.5m/1m/3m/5mあたりを数本ずつ取り揃えておけばまあ問題ありません。ストックが減ったら買い足してストックしておくだけです。これも全部で5000円もしないでしょう。

スイッチ一台だけだと何かとさみしいので、これにぶら下げるスイッチも欲しい。24ポートも要りませんから、8ポートの一番小さいのを買いましょう。同じくネットギアさんならこれですね。7000円以下くらいで販売されています。メインにはスマートクラスが欲しいですが、別にぶら下げる子ならアンマネージプラスでも構いません。ちょっとだけ安くなります。これなら5000円くらいでしょうか。ただ、こちらはSTPが組めなくなります。大した金額差ではないので、スマートスイッチを買っておいたほうがよいのではないかとは思います。

スパニングツリーして遊びたいならぶら下げる子を二台程度買っておきましょう。24ポートで17000円なんで、逆に8ポート高いな、という印象ですけれど(こんなことなら24ポートx2買うわとか思い始めたら立派なダメ人間です)。

ネットワークの勉強用環境はひとまずこんなもんでいいでしょう。欲を言えばL3も欲しいのですが。L3とは何か、といえば要するにルーターをやってるような人のことです。こちらはちょっとお値段が張ってくるので、さすがに初手からは要りません。お安め、というとYAMAHAさんあたりなのですが、VLANに参加できて、PPPoE喋れて、SNMP喋ってくれて、VPN組めて、BGPサポート(AWSのサイト間VPNで要る)できるとかになってくるとRTX830あたりが最低ラインです。NVR510じゃ不足。90000円くらいします。いきなり高いので、これは今は要りません。

なんでL3がこんなに高いかっていうと、L2のスイッチングハブのスイッチポートというのは独立していない(ハブ)だからですが、L3のスイッチポートというのは基本完全に独立したポートなのです(LAN側はただのハブですが)。だから高いんです。24ポートのスマートスイッチ≠24個のネットワークインターフェースで、PHYとしては一枚だけじゃないでしょうか。L3の場合、PHYは最低でもWAN/LANでひとつずつ、さらにそれぞれのポートにL3のスタックを積む必要があります。L2スマートならMACアドレス/IPまででよかったスタックが、TCP/UDPまで拡張されます。

で、ブロードバンドルータ、というのは2つのネットワークインターフェースを持つL3スイッチのことです。「2つ? うちのバッファローのルータは5ポートあるぞ?」って方。LANって書かれてる4ポート分は、2つのポートのうち一つがさらにスイッチングハブに接続されているだけです。WANとLANが独立している、というのはわかりますよね。

なので、L3スイッチ、というのはポート数が増えれば増えるほど、飛躍的にお値段が跳ねます。構造的には当たり前で、それに加えて、L3レイヤーのネットワーク制御ソフトウェアを入れているので、お値段的には基本L2スイッチの倍以上です。

まあそれでもRTX830あたりはSOHO/ご家庭向けルータです。L3スイッチ、というともっとポートがいっぱいついているので、超かわいいお子さんみたいなのがルータ、と呼ばれる人たちです。L3スイッチの24ポートとかは普通に30万~50万とかですので、ここでは考えません。まあRTX830クラスならそのうちご購入されることをお勧めしますが、急ぐ必要はありません(いざとなったらLinuxで自作すればいい。それが出来るころには十分なインフラエンジニアになっています)。

 

お次はストレージ

次に、ストレージです。ぶっちゃけ、こだわらなければこれも安いです。QNAPでもSynologyでもIO DATAでもBuffaloでも好きなメーカーのRAID1ミラーできるHDD2台用のNASキットでも買えば勉強用には十分でしょう。

こちらも重要なのはSpecificationです。注目すべきは対応プロトコルで、ここにiSCSIとNFSがあるものを選びましょう。つまり、リンクステーション、お前はダメだ。
なんで上で2台構成のNASキットと言っているのかといえば、RAIDついていてほしい、というのもありますが、そもそもRAIDついてる子ならiSCSIくらいやってくれるやろ。という側面もあります。

まあ、だからといってリンクステーション、てめえはダメだ。

なので、量販店でよく見かけるバッファローならテラステーションの名前のものにしないといけません。が、テラステは高いので、さくっとQNAPかSynologyで賄いましょう。QNAPさんのでお安めのものといえばTS-230とかですし、SynologyとかならDS220Jなどでしょうか。これらのメーカーさんのNAS用OSは上位機種と同系列のOSを用いるため、iSCSI含め機能的にはサポートしています。どちらも2万円程度でエンクロージャが買えますので、あとはHDDを適当に2台買ってくればよし。合わせても4~5万円くらいで済みます。
※上位機種とは速度的な違いとかはいろいろあります。機能的には使える、というだけのことです。

 

そしてサーバへ

最後に、サーバとなります。ここまで、ネットワーク、ストレージ、という順で紹介してきましたが、学習の場合もこの順で用意しつつ学習したほうが良いです。サーバはこれらの土台の上で動くものなので、まず土台がきちんと組まれている、あるいはそこの知見が足りていることが要件になるものが多いです。ですので、サーバとその上で動作するアプリケーションにまずは目が行きがちにはなると思いますが、原則それらを動作させる土台に関して、十分な学習を行うことをお勧めします。

逆に、サーバは正直なんでもいいです。RapsberryPiですら問題ありません。まあ、ARMなので何かとドライバ回りに不安はありますが、それでも大した問題ではありません。なぜなら、もうソフトウェアの世界に突入し始めているから。
とはいえ、さすがにラズパイじゃパフォーマンスも少し心もとないですよね。メモリも小さいですし、Elasticsearch動かしたいんだよね、とか言ってる場合無理無駄無謀の三拍子です。

そこで、NUCサイズのPC、あるいは低価格で販売されるビジネス用小型デスクトップをサーバ利用することをお勧めします。

サーバにとって重要視されるのは、まずメモリ搭載量とCPU性能です。が、今回は学習目的ですのでそこまでヘビーな話ではありません。しかし、このハードウェア部分を一般的にはあまり使用されていないもので使用した場合、その特殊性に関するトラブルとシューティングに時間を取られ、学習、という面で十分に時間が取れなくなる可能性があります。そんなことにならないよう、基本的には一般のPCアーキテクチャデザインをもとにしたものをお勧め、ということになります。そういう意味でもラズパイは十分に知見が育ってから触るべきものといえます。安いんですけどね。

これらのNUCキットや小型PCは静音性に優れ、複数台稼働させていても大きな問題がなく、またメモリやストレージには一般の規格のモジュールがそのまま仕様できます。USBポートも十分備えているので、不足があればとりあえずそちらで拡張してしまえばよい、ということになります。

このサイトでProxmoxに使用している4×4 BOXなどもそうですが、例えば

  • Intel NUC BOXNUC5I3RYK(2Core/4Thread/Up to 16GB)
  • ASRock DeskMini X300/B/BB/BOX/JP(CPUなし)

など、ほかにもいろいろあります。珍しいところでは、PC Pantera なんてのもよさそうです。

いずれにせよ、いくらかのメモリ、ブート用のM.2、そしてデータ用としてHDDを付けたにしても5~6万円で入手できるでしょう。

あとは、このサーバはできれば三台は用意してください。1台ではクラスタがまともに組めません。2台構成は、昨今のクラスタにおいてクラスタとならないケースが多いです。2台はあくまでHA(High Availability/高可用性)であって、クラスタとして機能しないことが多くなっています。これは、奇数台機によるリーダー(あるいはマスター)選出、という動きが入るためです。

クラスタのマスターを決める場合、かつては人の手によって明示的に優先度を定めていたりしましたが、現在は基本的にノードたちによる自動選出を行います。ノードは、自分自身以外のノードから一人を選んで投票し、マスターを推薦します。最も多くの票を集めたノードがマスターとしてふるまう、というもので、その後勝手に残りのノードに優先度をつけます。

この動きをするためには、最低3台、また奇数台数のクラスタ構成である必要がある、というわけです。偶数台だと投票が延々終わらない(特に2台構成)ということが起きるためですね。

クラスタリングを考える場合は最低でも3台以上を想定してください。というわけで、ここで6万円/台とすると、18万円ほどかかります。まあでもちょっといいノートPC一台買ったくらい、と言ったらそこまで大層な話でもなくないですか?

ここが一番高額ですね。まあラズパイなら数万円で済みますが…。まあ、iSCSIを用意済みなので、各ノードのデータディスクをiSCSI側で用意することにすれば、ローカルにHDDを組み込まなくてよくなります。ブートアップもPXEでやればブートドライブも要らないということになります。まあ、そんなことできるようになってたらいっぱしのインフラエンジニアですので、それは先々の課題として取っておいて、まずは「普通の」ハードウェアを用意していきました。

また、無用なトラブルを避けるためにも、サーバは同型機でそろえたほうが楽です。

 

で、結局いくらになるか

ここで振り返ると、

  • ネットワーク:24ポート 26,000- + 8ポート 7,000- * 2 = 40,000-
  • ストレージ:エンクロージャ 20,000- + ディスク 10,000- * 2 = 30,000-
  • サーバ:60,000- * 3 = 180,000-

これくらいあればとりあえずそれなりにいろいろ実験できるようになります(OpenStackやるんじゃあ!とか言わなければ)。少なくともプライベートなk8s組むくらいなら十分でしょう。24ポートはさすがに埋まらねぇ、と思うならもう少し減らしてもいいです。

とはいえ、サーバ用機器が3台、NIC*2を一台に付けると考えると、それだけで6ポート、8ポートのスイッチとLACPで2ポートのLAGを組むと考えて、4ポートが埋まります。これで10ポート埋まり。ストレージが1ポート、将来的にデカいストレージにリプレースして2ポートをLAGで使うかも、で12ポートが予約。8ポートのスイッチなんて、LAGとLACPで4ポート埋まりますから、そこに何かぶら下げるとしても4+4+12で20ポートしか残りません。スタッキングできない機器なので、無線APやルータ、TV、ゲーム機、クライアントPC、これくらいつないだら5ポート消えます。

以外とネットワークのポートは減りが早いです。特にインフラを目指すと、この後ごちゃごちゃとサーバは増えていきます。まあその都度スイッチ買えばいいや、ということであれば、12ポート+8ポート+8ポートでもやってやれなくはないですが、できればメインスイッチは16ポート以上は欲しいところ。

インテリスイッチでは8ポートの次で16ってあまりないんですよね。24になっちゃう。YAMAHAさんのSWX2110-16GYBとかBuffaloのGS-2016が16ポートなんですが、ネットギアの24ポートのほうが安い、ということになってしまいます。現状ネットギアのスマートスイッチって異常に安い部類なんですよね。あって困るもんではないですしね、ネットワークのポート。どうせ筐体の大きさは16ポートになるとほとんど変わりません。

もちろん、これが快適に利用できるとか、長期運用に耐える、とか、障害対応と自動復旧を作る、とかになってくるとこんなもんではすまなくなってきますが、少なくともラボとして最小限の機能を構成するならこんなもんです。

決して逸般人といわれるような内容ではないのはお分かりいただけますでしょうか。ロジック面だけなら、これで十分です。ここから先は逸脱するほうの一般人に近寄っていきますが、この程度であれば半年に一回、ボーナスのときにまずはネットワーク、次にストレージ、最後にサーバを一台ずつ増やす、とかでも2年半でそろいます。買ってからの半年間に、購入したものでネットワークの勉強、ストレージの勉強、そしてサーバ単体の勉強、HAの勉強、クラスタの勉強、と進んでいけば問題なくステップアップできます。

これくらいの投資は十分に自己学習投資の範疇に収まる、と思います。

それぞれのステージで最終的にきちんとしたネットワーク設計・構築、ストレージ設計・構築、サーバの内部的設計・構築、HA構成の構築、クラスタの完成を目指していけば、無理のない学習ができるのではないかなと思います。これは、それぞれのステージで勉強対象のものをいくらでもロールバックさせてやり直しが可能、というスケジュールです。ネットワークは固めたら資料作って、そこで固定。そしてストレージに移り、ストレージを設計したら固定して…という感じですね。

おうちを掃除したらXeonの載ったサーバマシンが隅っこから出てきた。とかいう家でもない限り、逸般人だなんていわれる覚えはないのです。

 

今回のオチ

ところで家の掃除したら部屋の隅からXeonの載ったタワーサーバが転がり出てきたんだけどどうしましょう、これ。Xen Serverで使ってたやつだな…。Proxmoxのクラスタノードにしよっかな…うるさいんだけど…。