Tools

GCP無料枠×Theiaでいつでもコーディング

投稿日:

はじめに

みなさん、こんにちは。カイザーです。そろそろ秋ですね。私にとっては「旅行の秋」ですが、移動時間もコーディングできたら素敵ではないでしょうではないでしょうか!?
そこで、この秋は移動時間に、iPadでコーディングができないかと思い、「Theia」というWEB上で動作するIDEと、GCPの無料枠を使用して、ほぼ無料でクラウド開発環境を作っていこうと思います。

Theiaとは?

Theiaとは、クラウドやデスクトップで動作するオープンソースのIDEで、このような特徴があります。

  • サーバを用意することで、WEBブラウザ上でいつでもIDEにアクセスして、コーディングやSSHが可能。(Gitpod.ioを使えばサーバがなくとも手軽にWEB上で使用できるようです)
  • Electronアプリもあるので、デスクトップでも動作する。
  • エクステンションによって、様々な言語サポートがあり、主要なものはセットアップ済みものがDockerコンテナで用意されている。
  • VS Code Powered – Visual Studio Codeと同じような使い勝手

今回は、このTheiaをGCP上で動作させ、iPadでどこでもコーディングできることを目標にしたいと思います。

GCPのセットアップ

今回はクラウドIDEとして試してみたいので、サーバを用意します。GCP無料枠のAlways Freeを使用してセットアップしていきます。

無料枠の利用を開始

初めてGCPを使用する方は、まず請求情報の登録を行い、無料枠を有効にします。
私が登録した時は「無料トライアル期間が終了しても、自動的に請求されることはありません」との記載ありました。
登録が完了したら、GCEを開き「課金を有効にする」をクリックするとインスタンスを作ることができます。

GCEインスタンスの作成

課金を有効にすると、VMインスタンスを作成できるようになるので、早速作っていきます。
スペックを指定して作成する流れになりますが、Always Freeに適合するには条件があるので、注意が必要です。

GCPの無料枠については下記URLで説明されています。
https://cloud.google.com/free/?hl=ja
必ず最新情報で確認しましょう。
2018年11月19日現在でのポイントを説明します。

1 f1-micro インスタンス(1 か月あたり、バージニア州北部を除く米国リージョンのみ)

これはほぼそのままですが、今回は、USリージョンの中で1番近そうな、us-west1(オレゴン)を選択しました。

30 GB の HDD(期間合計)、5 GB のスナップショット(期間合計)

こちらもそのままですが、「SSD」を選択してしまうと課金されますので注意してください。(標準の永続ディスクを選択してください)
また、デフォルトでは10GBになっていますが、30GBまで無料なので、30GBとしておきました。また、OSはCentOS 7としました。

1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)

これは注意が必要です。まず、今回指定したUSリージョンのサーバから全リージョン宛ての下り1GB/月に限り無料ですが、中国とオーストラリアは除かれます。
今回は自分用に構築しますが、WEBサーバを構築するという行為には違いないので、アタックされます。中国やオーストラリアからアタックを受け、下り通信をした場合はその分の請求があるので注意してください。(クレジットがあればそちらから引き落とされると思います。)
ちなみに、上りは無料です。

上記のポイントを押さえて、下記スクリーンショットのインスタンスを作成しました。

Theiaのセットアップ

インスタンスを起動してSSH接続します。
なお、gcloudを使用すると簡単に接続できますので、今回はgcloudを使用します。
「gcloudコマンドを表示」をクリックすると、SSH接続に必要なコマンドが表示されるので、そのままコピペで接続できます。

dockerのセットアップ

公式ドキュメントに従ってインストールしていきます。

1. 念のため、古いバージョンのdockerのアンインストール

2. 依存パッケージの追加

3. リポジトリの追加

4. dockerのインストール

5. dockerの起動

Theiaの起動

Theiaはすぐに使えるdocker imageを複数公開しているので、お好みのimageを起動してください。
今回は、Goのimageを使用したいと思います。

これで起動完了するはずなのですが、私の環境では下記のエラーとなって起動できませんでした。

起動にタイムアウトになってしまったので、末尾に「–startup-timeout」をつける必要があるようです。
下記のようにすると起動できました。インスタンスのスペックの問題かもしれません。(ついでに、デーモン起動にしました)

起動できたら、curlコマンドで疎通確認します。

レスポンスが返ってきたら、起動完了です。

アクセスするためのファイアウォール設定

デフォルトでは外側からアクセスすることは出来ないので、ファイアウォールの設定を行います。
今回は、最低限のファイアーウォールを設定していきます。
VMインスタンスの画面から、「ネットワークの詳細を表示」をクリックします。分かりにくいのでスクショで説明します。

その後「ファイアウォールルール」>「ファイアウォールルールの作成」と進み、ファイアウォールを設定します。
今回は一旦下記のように設定します。

  • トラフィックの方向: 上り
  • ターゲット: ネットワーク上のすべてのインスタンス
  • ソースフィルタ: IP範囲
  • ソースIPの範囲: アクセスする端末のグローバルIP
  • プロトコルとポート: 指定したプロトコルとポート
    • tcp: 3000

これで、外側からTheiaに繋がるようになります。

iPadから使用してみる

「http://[VMインスタンスのIP]:3000」でアクセスしてみましょう。しばらくすると、Theiaが起動します。
GoのHello Worldをやってみました。

「File> New File」で新規ファイル作成すると。エディタが使用可能になります。
Goのシンタックスハイライトや、補完入力も可能です。
「Terminal > New Terminal」でターミナルを起動可能です。

iPadだと英語入力のまま記号も入力できるため、入力はしやすいと思います。
ただし、ダブルクオート(0x22)とシングルクオート(0x27)を正しく入力するには、ダブルクオートキーを長押しして選択する必要があります。

意外と便利なGCPアプリ

GCPはiOS/Androidアプリもリリースしており、アプリから全体サマリの閲覧や、各種サービスのモニタリングができます。
GCE インスタンスへのSSH接続も簡単なので、とても便利です。

さいごに

Theiaには様々なdockerイメージがあるので、開発したい言語に合わせて簡単に開発環境を構築できます。その上に、WEBで動作するので、隙間時間でもコーディングができそうです。
ただ、今回説明したままだと、SSLと認証に非対応なので、実際にはリバースプロキシを起動させて対応する必要がありそうです。
Theiaを使い倒すことができてきたら、この辺りも紹介したいと思います。

おすすめ書籍

Google Cloud Platform エンタープライズ設計ガイド Docker/Kubernetes 実践コンテナ開発入門 スターティングGo言語  Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る impress top gearシリーズ

page_footer_300rect




page_footer_300rect




-Tools
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Gitの初期設定と便利な設定

1 はじめに2 初期設定2.1 ユーザ情報の設定3 便りな設定4 Gitの基礎知識4.1 configは3段階4.2 現在の設定を確認する4.3 設定ファイルの保存場所5 参考6 さいごに はじめに ...

Gitの便利なコマンド

1 はじめに2 cherry-pick2.1 使い方3 stash3.1 使い方3.2 退避した作業の一覧を見る3.3 退避した作業を戻す3.4 退避した作業を消す3.5 退避した作業を元に戻すと同時 ...

Gitでやっちまったときに使えるコマンド

1 はじめに2 コミットを修正したい3 コミットを戻したい3.1 複数のコミットをrevertする4 コミット自体をそもそもなかったことにしたい5 reset –hardした差分を元に戻し ...

ToDoアプリ5選

デザインの個性が現れるToDoアプリ5選!!

ToDoアプリ 1 はじめに2 Upper3 Wunderlist4 To:day5 Clear6 SWIPES7 さいごに はじめに こんにちはー!デザイナーのnottyです。 4月から新社会人とし ...

フォロー

follow us in feedly

AppLink

英語

page_side_300rect

2018年11月
« 10月 12月 »
 123
45678910
11121314151617
18192021222324
252627282930 

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。