はじめに
はじめまして!Advent Calendarに便乗して、Qiitaへの初投稿です。
会社の後輩たちとアウトプット活動をしていこうという話をしていて、その流れで自分も書いてみることにしました。
今回は技術というよりは、何となくモヤモヤしていた自宅の開発環境の話を書こうかなと思います。
自作PCが好きなこともあって、自宅のメイン母艦(デスクトップ)は少し強めな構成にしていました。
また、歴代PCから引き継いだ特に使い道のないディスクも多数搭載しています。
- AMD Ryzen9 5900X 12-core/24-thread
- 64GB RAM
- Nvidia RTX 3070Ti
- NVMe SSD 500GB + 1TB
- SSD 250GB * 2
- HDD 2TB + 3TB
この PC の本来の用途は、趣味である自宅サーバの開発やプログラミングをすることでした。
ただ、Docker や RS-232C ケーブルのドライバがうまく入らない、ターミナル環境が使いづらいなど、開発環境を整えることの面倒さや、せっかく構築した WSL 環境が壊れたりなどあり、結果として、せっかくの高スペックマシンは
Youtube & テレビ専用機という、最も贅沢な使い方をされることになります。
開発環境は別で所有している MacBook Pro の使い勝手が良く、そちらをメインで使用していました。
ただ、開発の規模が大きくなってくると「GPU 使いたいな…」とか「メモリが足りない…」と感じる場面もちょくちょく発生するようになりました。
Windowsを主役にする必要はなかった
使い続けるうちに、最もパワーのあるマシンなのに、「Windows が主役である必要って本当にあるのか?」と、だんだん思うようになりました。
壊したときに、とにかく面倒
いちばん大きかったのは、環境を壊したときのだるさです。
- WSL が突然動かなくなる
- Docker の調子が悪くなる
- 環境全体が不安定になる
どれも致命的ではないものの、一度崩れると元の状態に戻すのが面倒でした。
いつの間にか「壊さないように気を遣う環境」になっていた気がします。
Windowsが不要なわけではないが、主役である必要もなかった
自分の場合、ゲームをほとんどしないこともあり、日常的に「Windowsじゃないと困る」という場面は多くありませんでした。
ただ、ライセンスを持っている以上、完全に捨ててしまうのはもったいないという気持ちもあります。
「Windows は必要だけど、常にメインである必要はないんじゃないか」そんな感覚を持つようになりました。
Macと比べたときの開発体験の差
開発環境としては、別で使っている MacBook Pro の方が明らかに快適でした。
Windows では「これは WSL」「これは Windows 側」と意識する必要があり、VS Code のターミナルも含めて操作が直感的ではないと感じる場面が多くありました。
毎回ワンクッション挟まる感じが地味にストレスでした。
このあたりから、「Windowsをどうするか」ではなく、「OSにどんな役割を持たせるか」を考え直した方がいいのでは、と思うようになりました。
OSの役割を分けるという発想
いま思うと、以下のすべての役割を同時に背負わせるのは、やはり無理があったのかもしれません。
- 普段使いの OS(安定して普段使いできる)
- 開発や検証の環境(実験して壊してもいい)
自分がやりたかったのは、複数の環境を安心して使い分けられる土台を用意することでした。
- Linux でガッツリ開発したい
- 失敗してもすぐ戻せる環境
- 必要なときだけ Windows を使いたい
Windowsは捨てない、主役から降ろす
ライセンスを持っている以上、Windowsを完全に捨てる必要はありません。
ただ、常にメインで起動している必要もないのです。
- 必要なときに起動する
- 他の環境と同じ立場で扱う
- 壊れても全体に影響しない
こうして行き着いたのが「Proxmox」でした。
仮想マシンを前提とした設計で、スナップショットやバックアップが当たり前に使える。
OSを“作業環境”ではなく、“基盤”として扱える点が、自分の考えに一番しっくりきました。
この構成なら、Windows も Linux も対等に扱える。
スナップショットから簡単に復元できるので、環境が壊れることを恐れず気軽に試せる。
「Windowsを捨てた」のではなく、「役割を変えただけ」その感覚に腹落ちしました。
Proxmoxにして何が変わったか
Windowsが「1つのVM」になった。これだけで、気持ちがかなり楽になりました。
以前は、Windows 側の設定をいじるたびに「これ、失敗したら面倒だな……」という気持ちがありましたが、Proxmox 上ではそれがほとんどなくなりました。
開発や検証は、ほぼ Linux VM 側で完結するようになりました。
MacBook Pro で感じていた 「ターミナルで完結する快適さ」に近い感覚を、このマシンでも取り戻せた気がします。
Proxmox のスナップショットは、自分にとって思っていた以上に強力でした。
「試す前にスナップショット → ダメだったら戻す」
この戻れる前提があるだけで、試行錯誤のスピードがかなり上がります。
環境構築や設定変更に対する心理的な負担が減り、「とりあえずやってみる」が自然にできるようになりました。
Mac + Proxmox という役割分担
結果的に、今はこんな使い分けになっています。
- MacBook Pro:日常の開発・軽い作業
- Proxmox マシン:重たい処理・検証・実験場、Windows を使いたいとき、テレビサーバなど
それぞれに役割を持たせることで、全体としてかなりバランスが良くなりました。
また、パワーのあるマシンをネットワーク経由で気軽に使えるのも自分的には良かった点です。
向いてる人・向いてない人
ここまで書いてきましたが、この構成が誰にでもおすすめできるかというと、そうではないと思っています。
向いている人
- 開発・検証・実験を気軽にやりたい人
- 環境を壊すことを恐れずに試行錯誤したい人
- パワーのあるマシンを余すことなく使いたい人
特に「失敗しても戻せる」という安心感を重視する人には、Proxmox はかなり相性がいいと感じました。
向いていない人
- 電源を入れたらすぐ作業を始めたい人
- 環境管理がストレスになる人
- 1台の PC で完結したい人
- 仮想化やネットワーク周りを極力意識したくない人
Proxmox は便利ですが、「何も考えなくていい環境」ではありません。
このあたりは好みが分かれるかなと思います。
おわりに
「Windows を捨てた」と書くと少し大げさですが、自分の中ではとてもスッキリした選択でした。
正直、まだ少しハマる部分もありながら使っています。
それでも以前よりは、「このマシンをちゃんと使えているな」という感覚で遊べています。
もしこの記事を読んで「ちょっと気になるな」と思った人がいれば、Proxmox の設定や構成についてもそのうち記事にするかもしれません。
読んでいただきありがとうございました!