プログラマーSEがインフラ技術を学ぶ方法
私も本職は開発職なのですがインフラの知識を増やしたいと常日頃から思っています。
インフラ関連の本やWebサイトを見たりはしていたのですが、知識は増えても、実践が伴わずしっくりきませんでした。
ある方法を実践したところ、知識を血肉化することができたんです。その方法を紹介します。
本を読んでだけでは身につかないのならば
プログラミングもそうですが、ソフトウェア技術の多くは本やWebサイトを読んだだけでは身に付きません。
実際にやってみないと分からないことが多いからです。やってみて初めて、知識に実感が伴い血肉化します。
プログラミングの場合、実践することはかんたんです。コードを書いて実行するだけです。
ところがインフラの場合、実践するにはサーバマシンを用意する等のハードルがあります。
そこで、どうするかというと、
VPSで実験し放題
VPS(Virtual Private Server)って知ってますか?直訳すると仮想個人用サーバですが、かんたんに言うと、
一台のサーバを仮想的に分けてユーザー毎に独立したOSを使えるサービス
なんです。
VPSのユーザーはOSのroot権限を使えます。
どんなソフトウェアをインストールして実行するのも自由自在です。それでいて、一台のサーバ資源を複数ユーザーで共有して使うので料金は安く済みます(月1000円程度)。
私がVPSで実践したこと
- リバースプロキシサーバにnginx
- WebサーバにApache
- WebSocketサーバにnode.js
を使ったリアルタイムすごろくゲーム、リアルタイムかるたゲームを作りました。
この他にも
- WordPressのブログサイト
- Ruby On RailsでゲームのバックエンドAPI
を構築しました。Web系だけでなく、
- ファイアウォール
- メールサーバ
- FTPサーバ
などの基本的なインフラ構築、セキュリティ設定作業も経験できました。
これらについては元々、本やネットで知識としては分かっていたのですが、実際やってみてわかったこともたくさんあり、とても勉強になりました。
SEO的にWebサイトの表示速度も重要だという話が出てきた際には
- MySQLの設定をチューニング
- Apache Benchという負荷テストツールで測定
をすることで、爆速にチューニングする体験もできました。これまでもアプリケーション開発でSQLのチューニングは何度もやってきましたが、DBの設定でも劇的に速度って変わるんだなとうれしくなりました。
私が使っているVPS
GMOクラウドVPSを使っています。
さくらのVPSと迷ったのですが、同価格帯だとGMOクラウドVPSの方がメモリー容量が大きかったのでお得だと思って選びました。
ちなみに、私のブログもGMOクラウドVPS上で動いています。数年運用してますが、トラブルもなく満足してます!
GMOクラウドVPSにも欠点はあって、
- ハードディスクタイプのサーバしかなく、SSDを使えない
- アクセス増加時にスケールアップができない。上位プランを契約しなおして、手作業でファイルを移さなければなりません。
なので、個人でWebサービスを作って一発当てたいって場合は、スケールアップのできるタイプのVPSを選ぶといいでしょう。さくら、ConoHa、カゴヤなどのVPSはスケールアップやスケールアウトもできるのでサービスの成長に合わせて、サーバを拡張できます。
AWSやGCPもいいですが、個人で使うぶんには国産のVPSで充分かなと思っています。