ローカルのArchlinuxをGCEに移行してみた(移行中)

GCE上にArchlinuxでVNCサーバを立てたという話です。

はじめまして、みやぴと申します。社会人3年目になって今更ですが、ブログをはじめました。 日本語苦手なので、誤字脱字などありましたら、優しく指摘してください。

経緯

大学生の頃からArchlinuxを使用しているのですが、色々といじっていたらぶっ壊れてしまい、再インストールの衝動に何度もかられ(実際には時間がなく再インストールしていない…)、一から環境を作り直すをしんどいなと思ってました。 そのときにふとGCPにArchlinuxでVNCサーバを立てればいいじゃないかと思い立ちました。 なんでGCPなのかというと

  • 仕事で利用する機会があり、慣れている
  • 無料試用期間中300ドルのクレジットがもらえる(いつか勉強しようと思って使い余していた…)

なので、無料試用期間中に実際に運用しようと思いました。

構成

使用したツール

GCP上に立てるGCEインスタンスはansibleを用いて管理することにしました。ローカルのArchlinuxに構成管理ツールを使わなかったことを何度も後悔したので…

実際に使っているものは、githubにあげてます。

github.com

ansible初心者なので、archlinuxのansibleはこちらを参考にしました。

github.com

やったことは、

1.Archlinuxのイメージで VMインスタンスの作成

$ gcloud compute instances create archlinux \
        --machine-type=n1-standard-2 \
        --boot-disk-size=20GB \
        --image-project=arch-linux-gce \
        --image-family=arch

2.VNCサーバに必要なパッケージのインストール(ansibleで管理している)

主に入れているものは以下

  • TigerVNC
  • デスクトップ or ディスプレイマネージャ(私はi3 wmを利用しているのでi3 wmを入れた)
  • その他必要なパッケージ

3.VNCサーバの起動

$ vncserver

4.GCE上に立てているVNCサーバとの接続

GCEとの接続は、SSHポートフォワーディングで行っています。

$ gcloud compute ssh ${インスタンス名} -- -L 5901:localhost:5901

あとは、VNC Viewer でローカルホストの5901に接続するだけです。

デモ

「どれくらい遅延とかあるの?」と疑問に思う方多いと思いますが、個人的には許容できる範囲かと思います。まだ、ブラウザとターミナルぐらいしかためしていないですが… このブログもGCE上から書いてます。

メリット・デメリット

メリット

  • どこでも自分の開発環境が使える(スマホタブレットからでも)
  • お金さえあれば、いくらでもスペックを上げられる
  • Goolgeの回線でのインターネットサーフィンは快適

デメリット

  • 料金
  • GPUが使えない…
    • やはりこれはクリティカル
    • 東京リージョンでGPU使えないことをあとから知った…

今後の展望

  • 気力があれば、VirtualGL試したい
  • wayland のRDPを試してみたい
  • GCPを使っているので他のGCPサービスと連携してなにかしたい