あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

最近の Chromebook の運用、または、GCE のすゝめ

過去の記事を振り返ると、Chromebook がメイン機となって、1年くらい経つらしい。

taiju.hatenablog.com

書いた当初はあれこれ頑張って、Chromebook で Ubuntu を使えるように悪戦苦闘していたけれど、しまいに面倒になってきたので、シンクライアントは、シンクライアントらしく振る舞うべきというところに落ち着いた。

ということで、最近の Chromebook の運用について書く。

GNU/Linux を使いたい!!!

Chromebook 自体は、素の Chrome OS の端末として使うわけですが、ほとんどの生活をターミナルで行っていた私としては、GNU/Linux または、UNIX 環境がないと厳しい。

以前は、記事に書いていたとおり USB に Ubuntu を入れて頑張っていたのだけど、Chromebook をデベロッパーモードで利用しないと駄目だし、USB 邪魔だし、USB 上の OS の動作も微妙に安定しないしで、Chromebook はシンクライアントなんだから、GNU/Linux が使えるサーバを調達して利用するのが楽ということになった。

具体的に言うと、今は、Google Compute Engine (以下 GCE と表記) を、GNU/Linux のサーバとして使っている。

Chromebook からは、Secure Shell を使って、SSH 接続して使う。*1

GCE の良い所

Chromebook だから Google のサービスを使うのが筋って考えも無きにしもあらずだけど、実際に AWS や Azure も使ってみて、私の用途では GCE が圧倒的に便利という結論になった。

GCE が圧倒的に便利である理由は、

  • プリエンプティブ VM インスタンスが超絶安い

  • 分単位の課金

  • VM の起動や作成が速い

といったところにある。

便利である理由の具体的なところ

プリエンプティブ VM インスンタンスとは、いろんな制限つける代わりに安く使っていいぞ、といったタイプの VM インスタンスのことで、具体的には、24時間以上の連続稼働はできないとかの制限がつく。*2

cloud.google.com

私は、GNU/Linux を使いたい時だけに VM を起動して、使い終わったら VM を停止するので、24時間以上使いたいシーンは皆無で、今の Chromebook の運用的にとても適している。

トイレへ行くぐらいのときは起動したままだが、ご飯を食べる時とか、お風呂に入る時は停止するといった運用方法なので、分単位の課金という点も利点になる。

また、VM の起動がめちゃくちゃ速いので、こまめに停止する運用が全く苦にならない。

ディスクの方がコストがかかるので、基本的には初期値の 10GB を起動ディスクに充てるだけにしている。

逆に Chromebook の購入者特典で、Google Drive に潤沢な容量が与えられているので、drive コマンドをインストールして、必要なデータだけ pull, 永続化したいデータだけ push するという運用をしている。それであれば、起動ディスクの 10GB で事足りる。

余計なソフトウェアをインストールしたり、余計なファイルを設置して、ディスクが一杯になったら、VM を廃棄して、新しく VM を立てる。そのために、基本セットは Ansible の Playbook にした。

github.com

Cloud9 も併用

最近は Cloud9 も併用している。*3

Emacs を快適に使えたりはしないが、クラウド IDE 上からアクセスするターミナルから、ある程度は OS を自由に触れるので、ここで事足りるような作業では、わざわざ VM を起動しなくなった。

制限はきついので、VM でしかできないこともある。例えば、Yesod の試用をしてみようとして、インストールを試みるも、cabal update できないとか、AndroidSDK 入れようとしたらディスク埋まるとか、そういうやつ。

余談

前回の記事にも書いた、Secure Shell で日本語入力できないという問題は、未だに未解決で、その点が運用に耐えない理由になるという人はいると思われる。

Chrome OS 上の IM では日本語入力できないだけで、VM 上の IM では日本語入力できるので、前回の記事にも書いたとおり、例えば Emacs で Mozc を使うという方式であれば問題ない。

私は常用シェルが eshell *4 なので、全く問題ない。.bash_profile の最終行に exec emacs を記述しているので、すべての操作を Emacs 上で行っている。

まとめ

おそらく今の運用が Chromebook を使う上で、最も正しい運用な気がしている。

しょせん Chromebook はシンクライアントであって、Chromebook 自体であれこれやろうとするのは間違いな気がしてきている。*5

そういう意味では、一番安い Chromebook (3万以下)で必要十分だと思う。高いスペックが欲しければ GCE で調達すれば良いのだし。

今のところ GCE で、ワンコイン(500円)以上かかったことはない。

安く調達できる分、必要に応じて GCE の VM を立てるという方法を取っても、MacBook AirMacBook Pro と比較して、普通にお買い得である。

この運用の欠点は VM を停止し忘れることによってコストの増大という事故が起こりうることなのだけど、プリエンプティブインスタンスは、そもそも24時間以上連続稼働することはないので、事故の被害額はある程度制限される。24時間以上の連続稼働ができないという制限が保険にもなっている。実感覚では、数時間で落ちるイメージ。

欲を言えば、Chromebook の特典で GCE の VM の利用料が月一定額無料とかがついてきたら最高なんだけどなぁ。

スマホAndroid + 格安 SIM にしたし、メインマシンも Chromebook になったし、コンピューティング生活に全く金をかけないという制約の中で、1年間生活してみたが、なんとかなるもんだった。

むしろ、どんな過酷な状況になっても、快適なコンピューティング生活ができる自信がついた気もする。

ほなの。

*1:エフェメラル IP で運用するので、起動のたびに設定を変更している

*2:作業中に VM が落ちることも多々あるので、作業対象はまめに保存しましょう

*3:永遠にリリースされることのない何かを作っているという体で

*4:出力結果が多いコマンドに対するパイプや、入力のリダイレクトをしたい時は、適宜 shell モードを使う

*5:Chromebook Pixel となると話は変わってくるけど