クラウドベースの開発環境ならChromebookでもOK? Macbookに替えた理由
クラウドベースの開発環境としてGoogle ColabやGitHub Codespaceを利用する場合、Chromebookでも十分に機能しますが、いくつかの注意点があります。私は端末をChromebookからMacbook Airに変更しました。本記事では、私が利用しているクラウドベースの開発環境を紹介するとともに、Chromebookの限界や問題点を具体的に解説します。そして、なぜMacbookを選んだのか、その理由について詳しくお伝えします。
はじめに
私は、どこでも利用できるプログラミング環境を構築するため、Webベースの開発環境をよく利用しています。まず、Google Colabというノートブック環境を使用しており、この環境では主にPythonプログラミングを行っています。
さらに、もう一つはGitHub CodeSpaceを利用しています。これはベータ版に応募して使用を開始しました。GitHub CodeSpaceは、主にGo言語でのプログラム開発に利用しています。
Webベースの開発環境を利用すれば、PCの性能が低くても問題ありません。クラウドのリソースを活用するため、PCの条件はフル機能のブラウザ(たとえばChromeなど)が正常に動作することくらいです。また、PCを変更しても、URLにアクセスするだけで環境が即座に立ち上がるのは非常に便利です。
以下、クラウドベースの環境として、Google ColabとGitHub CodeSpaceを紹介します。また、これらの環境をChromebookで使った場合の問題点と、なぜMacBook Airに変更したのかのかについて説明します。
Google Colabとは
Google Colaboratory とは、Googleが無料で提供しているPython環境です(実は、R言語も使えたりします)。機械学習用のライブラリが最初から組み込まれていてGPUも使える、しかもブラウザでアクセスさえすれば即立ち上がるという、超便利な環境です。
Google Colaboratoryのリンクはこちらです。
また、Colab Pro, Pro+という有料のサービスもあって、無料と比べて優遇された環境を一定のポイントになるまで使えるというものになります。
ライブラリもインストールできますし、Pythonでちょっとしたプログラムを書くだけならこれで十分という環境です。kaggleコンペ向けの学習コードの実行などもこの環境で十分動作します
GitHub CodeSpaceとは
GitHub CodeSpaceは、GitHubのリポジトリから起動できる統合環境です。ベースはVisual Studio Codeで、VSCodeで日頃から開発している人は違和感なく使うことができます。
コード実行環境が提供されるので、実行、テスト、デバッグなどが行える大変便利な環境です。
一度立ち上がってしまえば、VSCodeを使っているのと大差ない環境になるので、Webベースであることはあんまり意識しなくて良いです。
また、コードの保存は、GitHubリポジトリに直接できます。
Chromebookで開発
クラウドベースの開発環境を動作させるには
このようなブラウザベースの開発環境を使う場合、フルのブラウザが動けばOKです。
フルブラウザと言っているのはPC用のブラウザです。これは、iPadなどのタブレットのブラウザだと、動作がおかしくなったりするからです。とりあえず、私が試した時は、iPadでは動作が安定しませんでした。
ブラウザはChromeが良いです。
Safariだとちょっと問題があることがあります。
ブラウザとしてChromeが動作して、低価格なPCって何か思い当たりませんか?
Chromebookで動作可能
そう、Chromebookです。私はLenovoのIdeaPad Duet ChromebookというChromebookを購入し、これを開発用PCとして使っていました。購入当時の価格は3万円弱だったと思います。
USB-Cで接続できるモニタがあれば、USB-Cで繋ぐだけで、モニタ、キーボード、マウスが接続できるので、がっつり使うと気は閉じて、モニタ、キーボード、マウスで使っていました。
実際に、この端末でKaggle, AtCoderに参戦していましたが、最初のうちは特に不満を感じることはありませんでした(不満を感じはめた話は後ほど)。
特筆すべきはバッテリー持ちの良さです。Colab Pro契約の場合、ブラウザを閉じると実行が止まってしまいます。なので、実行中はずっとブラウザを開いたまま、つまりPCを起動したままにしなければなりません。
で、ディープラーニングで学習とかすると平気で10時間とか連続駆動させます。
Chromebookの場合、バッテリー駆動していてもブラウザを開いている程度だと、平気で12時間以上バッテリーが持っていました。しかもファンレスで静音!
ブラウザベースの開発環境を使う場合はChromebookは本当に便利でした。
低価格な製品も多く、バッテリーの持ちもよい、ということで選択肢としてはありだと思いました。
chromebookの問題点
問題点
現在、私はchromebookからMacbook Airへ乗り換えています。
chromebookの速度が遅かったとかそういう訳ではなく、主な理由は大きく2つになります。
- 4GBのメモリが辛くなった
- 外部モニタが1920×1080は狭かった
理由①「4GBのメモリが辛くなった」
Chromeで、大量にログを出力するColabのノートブックなどを実行するとメモリを圧迫しまくるようで、途中でブラウザが再起動することがあったのが一番大きいです。また、タブを大量に開くと4GBのメモリでは厳しいらしく、タブの切り替えがもたつくようになります。
前者の、ブラウザが再起動するのは致命的で、ログの出力を抑えたり工夫して使っていました。
理由②「外部モニタの出力が1920×1080まで」
最大の出力解像度が1920×1080というのもちょっと狭かったです。2画面横に並べて、片方で検索、片方でコーディングというスタイルをとることが多いのですが、1920×1080で2画面は少し辛かったです。
このため、がっつりコーディングは他のPCでやって、ちょっとした修正と長時間実行をChromebookでやるというスタイルが増えていました。
上記の問題は、購入したChromebookのスペックの問題でChromebook自体の問題というわけではありません。スペックの高いChromebookを購入すれば良いのですが、低価格なのが売りのChromebookの高いやつを買うのは少し抵抗がありました。
2024/03/13追記
新たにIntel N100搭載のChromebookを購入しました。メモリは4GBと相変わらず少ないですが、出力解像度は4Kに対応していました。購入した時の価格も29,800円とかなり安かったです。
4GBのメモリによる再起動ですが、現在のところ発生していません。kaggleで使い込んだらやはり発生するかもしれませんがCPUの性能差も大きい気がします
現在はMacbookとChromebookを併用しています。
MacBook Airを選択した理由
選定時に考えたのは以下になります。
- バッテリ持ちが良い
- ファンレス
- トラブルが少ない
- メモリは16GB
- Dockerが入れやすい & Unix系のコマンドが使える
WindowsPCでも良かったのですが、これまで購入したWindows PCはアップデートでおかしくなることが多かったです。現在使っているHPのWindows PCは、シャットダウンしても電源がちゃんと落ちないです(OSを入れ直せば治ると思いますが、環境構築し直すのが面倒でシャットダウンできない状態のまま使ってます)。
Macも何台か購入したことがあります。こちらは、リコールは経験しましたが、OSのアップデートで動作不安定になる経験はありませんでした。Windowsのようにたくさんのメーカからいろんな構成の機種が発売されていないので安定しやすいんだと思います。
メモリは8GBでも良かったですが、どうせならローカルでも開発ができるようにしたかったのでDockerを入れる前提で16GBで考えました。
この選択肢だと、Macbook Airがちょうどスペックが一致し、また、ちょうどM2 Macbook Airが発売したばかりでしたので、これを選択しました。3万円のChromebookと比べると7倍くらいの値段なので、ブラウザベースで開発環境を使うぶんにはオーバースペックではありますが。
とりあえず、持ち運びもできて、ファンレスで、電池持ちが良いという条件+メモリをたくさん搭載しているPCとしては良い選択肢だと思います。
メモリが搭載さされたChromebook Plusという選択肢もありますが、Plusの価格帯だとwindow搭載パソコンも購入できるので、価格的なメリットがなくなります。
ちなみに、現在N100搭載のChromebookも購入して使っています。こちらもメモリが4GBしかなくて若干つらいですが、CPUが高速なのでそこそこ使えています。
Macbook Airにして変わったこと
変化ポイント
ChromebookからMacbook Air変更して、使い方はすこし変化しました。
先ほど書いたようにDockerを入れて、ローカルでも開発環境が動くようにして、そちらも併用するようになりました。
M2チップってCPUとしてみるとそこそこ性能が高くて、Google ColabとかのCPUに比べると随分高速です。なのでGPUを使わないkaggleコンペなどは、ローカルの環境で実行するようになりました。
GPUを使うものは、相変わらずクラウドベースで、こちらはChromebookと何ら変化ありません(少し、漢字変換が馬鹿な気がします)。
というとで、現在は、ローカルのDocker環境、Google Colab, GitHub CodeSpaceの3つを併用するようになっています。
クラウドを使うと、持ち運びできるPCでディープラーニングができます。どこでも、思いついたらコード修正できるというのはGOODです。
半年以上使って思ったのは、「メモリはもっと搭載しておいた方が良かった」ということです。とりあえず16GBにしたのですが、機械学習のテーブルを読み込んだりするとメモリが不足します。
次購入するときは、多少高額になってもメモリ搭載量を増やそうと思います。Macは後から追加できないのが難点です。
MacでGoogle Colabを使うときのTIPS
Macでブラウザを立ち上げっぱなしで連続起動したい場合、caffeinate
コマンドが便利です。このコマンドを使えば、PCを立ち上げっぱなしで放置してもスリープしなくなります。
Colabの場合、コマンドラインで以下のコードを実行します。
caffeinate -i
代表的なオプションは以下の通りです。
オプション | 効果 |
---|---|
-d | ディスプレイの電源を切るのを抑制する |
-i | システムのスリープを抑制する |
-m | ディスクのスリープを抑制する |
-t <sec> | <sec>秒間、スリープを抑制する |
おわりに
CPU, メモリが増強されたchromebook plusが発表されたようですので、chromebookも再び選択肢に入るかもしれません。値段は399〜ということで日本円だと6万程度となり、ちょっと割高な気もしますがどうなるか期待です。