とりゅふの森

GCPデータエンジニアとして生きる

【Eclipse Theia】GCP上でクラウド統合開発環境を使ってみる

時はIT革命の時代、ローカル環境の構築に苦しみ、開発着手はおろか、自分の自由な時間すら確保できないITエンジニアであふれる時代、
そんなITエンジニア達を見かねた女王はこう言いました。

f:id:true-fly:20201204000608p:plain

そう、女王のお言葉通り、職場のITエンジニアのデスクを除いた時によく見るあの黒い画面が、クラウド上で動作する時代がやってきました。
それがこの「Eclipse Theia」です。

Eclipse Theiaは、ポピュラーな統合開発環境であるVisual Studio Codeをベースに、デスクトップやWeb上で動く、オープンソース統合開発環境です。
Visual Studio Codeを使ったことのある方なら馴染み深いインターフェースですね。むしろ見分けができるか怪しい。
統合開発環境によくある機能、拡張機能、Gitなど、必要な機能は一通り揃ってます。
f:id:true-fly:20201202225549p:plain

今日はこのEclipse Theia、クラウド開発環境について紹介します。




従来の開発環境

僕が思う、プログラミングで最初に躓くところって、環境構築だと思ってます。
Javaをやるのであれば、JDKを入れ、必要なエディタを入れ、環境変数でJavaのPathを通して、といった、お決まりの手順があります。
Pythonをやるのであれば、何も知らずにPython2系と3系を両方インストールしてしまい、自分が今どちらを動かしているのかわからない。
そんなことないだろと思う方もいますが、少なくともここ1年で2人見ました。
それなりの労力を使い、自分のPCの環境を整え、自分のPC上で開発することに、疑いの余地もありませんでした。
クラウド開発環境の存在を知るまでは。

Gitpod

Eclipse Theiaはデスクトップ、クラウド両方で動く統合開発環境です。
このEclipse Theiaをクラウドサービスとして提供しているのが、Gitpodです。
www.gitpod.io
www.publickey1.jp


GitHubやGitlabのアカウントがあれば、無料でも利用できるSaaSを提供しています。
自分でサーバを用意して利用することもできるみたいですね。
URLで以下のようにGitHubのリポジトリのURLをgitpod.io/#の後ろに書いてあげるだけで、そのリポジトリの開発ができます。

https://gitpod.io/#https://github.com/YOUR_REPO

また、ターミナルも利用でき、JavaやPythonなどの言語もWeb上で実行が可能です。
f:id:true-fly:20201203231801p:plain

SaaSでは無料プラン、有料プランを提供していて、無料プランの場合、以下のような成約があるみたいです。
1ヶ月50時間も利用できるので、少し試したいという方であれば、無料プランでも良さそうですね。

  • 50 hours/month
  • Public Repos
  • Private Repos (30-Day Trial)

Google Cloud Shell

今回僕がおすすめしたいクラウド開発環境は、このGoogle Cloud Shellです。
cloud.google.com

Google Cloud Platform(GCP)を利用したことがある方なら馴染み深い、Google Cloud Shell、
こちらはGoogleアカウントがあれば無料でWeb上で利用できる、ターミナルです。
Java,Pythonなどの言語や、Docker、gcloudSDKなども利用できます。
そして、このGoogle Cloud Shell、従来はCUIでの提供でしたが、Eclipse Theiaが利用できるようになりました。
www.publickey1.jp

起動方法

まずはGCPコンソールにアクセスします。
console.cloud.google.com
初めてGCPコンソールにアクセスした場合、利用規約の同意が聞かれます。
よく読んだ上で同意しましょう。この時点ではまだ課金も何も発生しません。
同意すると、「無料トライアルにご登録ください」といった画面が表示されると思いますが、ここの一旦無視。
右上のアイコン、「Cloud Shell をアクティブにする」をクリックしましょう。
f:id:true-fly:20201203233823p:plain

すると、ブラウザ上でターミナルが起動されます。これがCloud Shellです。
f:id:true-fly:20201203234143p:plain

さらにCloud Shellの右上の方にある、「エディタを開く」をクリックしましょう。
以下のように、Eclipse Theiaが開かれます。
f:id:true-fly:20201203234330p:plain

記事執筆時点ではプレビュー版のようです。
Gitpodでは拡張機能を利用できるようですが、Cloud Shellには見当たりませんでした。
今後の機能追加を期待しましょう。

Cloud Shellのスペック・制限

GCPの他サービスについてはサービス毎に料金が発生しますが、Cloud Shellの利用のみであれば無料で利用できます。
Cloud Shellのマシンタイプは、g1-small (vCPU 0.5, RAM: 1.70G) です。
週 60 時間使用可能、上限に達した場合は、しばらく待機してから、Cloud Shell の使用を再開する必要があるらしいです。
1日8時間だとしたら週40時間なので、普通に仕事で使う分には超えることはないですね。
また、/home配下のみディスクの状態を保持でき、他のディレクトリはCloud Shellを停止すると初期化される、
更には、Cloud Shell に 120 日間アクセスしないと、/home配下のデータも削除されてしまうという制約があります。
まあ今の時代ソースはGitHubなどの外部リポジトリに、設定ファイルなどはGCPであればCloud Storageなどに配置できるので、
大きなデメリットではないですね。
Gitpodと比較して、同じ無料枠でも利用可能な時間が長いことが大きなメリットです。
また、GCPを使って開発しているプロジェクトであれば、もはやブラウザのみで開発ができるレベルです。

まとめ

PCとブラウザとインターネットがあれば、どこでも開発ができる時代、
今回はクラウド開発環境Eclipse Theiaについて紹介しました。
クラウド開発環境は他にもMicrosoftのVisual Studio Onlineなどもありますが、
コストとGCP上で動くGoogle Cloud Shellをイチオシします。
開発者間の環境差異もクラウド上で動かすことで緩和されますし、そもそも新規プロジェクト参画時の環境構築も減る、
GCPの開発はGCPの画面上でできる、これからの開発がますます楽しくなりそうです。

本ブログではGCPのサービスについて、機能紹介、事例等紹介していければと考えております。
それでは、みなさんも素敵なクラウドライフをお楽しみください。