1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

3年間Web開発をWSL2でやってきた経験をまとめる

Last updated at Posted at 2025-03-08

WSL2で2年間Web開発してわかったこと

はじめに

WSL2(Windows Subsystem for Linux 2)を使ってWeb開発をしてきて、結論から言うと「問題なく使える」。
むしろ、メモリを増やし放題で快適に動作する点など、Macより優れている部分もある。

この記事では、WSL2を使ってWeb開発をするメリットや注意点、Docker運用のコツなどを紹介する。

WSL2のメリット

メモリ増やし放題で快適

Macの場合、メモリ増設が高価でハードウェアの制限もあるが、Windowsなら比較的安価にメモリを増設できる。
私は16GBのゲーミングノートを32GBに増設し、そのうち22GBをWSL2に割り当てている。

WEB開発でDynamoDBローカル、NestJSバックエンド、vite/Reactのフロントエンドを同時起動する機会があったが、
16GBのmac book proでは毎回起動に数分かかっており、ホットリロードがままならない状態だった。

メモリだけの影響ではないと思うが、経験上WSL2はリソース効率の面で有利だと思う。

image.png

Windows / Chromeでの動作確認が楽

Web開発では、Windows環境やChromeでの動作確認が必須になることが多い。
ユーザーのターゲットがWindowsになりがちなので、デザインの崩れなどを確認しながら開発ができる。
例えば、MacとWindwsではスクロールバーの表示有無が同じChromeでも異なることがあるようだ。

inode枯渇につよい

一時期Ubuntu Desktopをデュアルブートしていた時期があったが、node_modulesでinodeが枯渇した系エラーの対処に手を焼くことがあった。
WSL2にしてからは一度もお目にかかっていない。

NvidiaのGPUが使える

機械学習モデルの運用が可能。
Pythonは特にパッケージバージョン管理地獄が発生するので、Dockerポン置きで動くの非常に良い。

ここがつらいかも

Docker運用

Docker for Windowsを使わず、Ubuntu内に直接入れるべき。確信した。Docker for Windowsは罠。
Docker Desktopのライセンス問題を回避しつつ、ネットワーク周りをWSL2内に押し込むことができる。
デフォルトでWSL2はポートをホストにフォワーディングするので、特に問題なく使える。

バックアップの重要性

たまに突然linux userが吹っ飛ぶ(!?)。
定期的にバックアップをしつつ、圧縮もしよう。

太ったストレージが戻らない

バックアップのついでにdiskpartで圧縮しよう。
WSL2が確保したストレージはホストに返却されない。

間違って機械学習モデルを落とそうものなら以下のようになる。
image.png

追記:圧縮しました
image.png

USB周りの問題とデュアルブート

WSL2はUSBデバイスの扱いが難しく、特にシリアル通信や外付けデバイスとの連携は制限が多い。
例えば、Arduinoなどのマイコン開発では、WSL2ではなくネイティブなLinux環境が適している。

まとめ

  • Web開発ならWSL2で問題なし!

  • DockerはWSL2のUbuntu内に直接インストールすると快適

  • 定期的なバックアップは必須

  • USBデバイスを使うならデュアルブートも検討

WSL2を使えば、Windowsのメリットを活かしつつLinux環境で開発できる。
一方で、用途によってはデュアルブートが必要になることもあるので、自分の開発スタイルに合った構成を選ぼう!

1
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?