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シリーズ

blog-page_footer_336




blog-page_footer_336




-Tools
-, ,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

暗号資産(仮想通貨)の取引で損益が発生するパターン

1 はじめに2 暗号資産の利益が発生するパターン2.1 暗号資産を現金で売却した場合2.2 暗号資産を暗号資産で交換(購入)した場合2.3 取引所などから暗号資産を付与された場合(エアドロップ)2.4 ...

【Slack】OutgoingWebhookを利用して投稿を転送

1 はじめに2 OutgoingWebhook2.1 OutgoingWebhookの追加2.2 OutgoingWebhookの設定3 IncomingWebhook3.1 IncomingWebh ...

aws

QuickSightを使ってみた

1 はじめに2 Quick Sightとは3 今回やろうとした事4 作業の流れ5 S3との連携5.1 S3へのアクセス許可5.2 マニフェストファイルの作成6 データセットの作成6.1 自動更新の設定 ...

WSL2 / HiDPI環境でGoLand + 日本語入力を快適に使うまでの道のり

1 はじめに2 X Serverの設定2.1 VcXsrvの初期設定2.2 VcXsrvのHiDPI設定2.3 DISPLAY環境変数の設定2.4 Ubuntu側のスケーリング設定2.5 動作確認3 ...

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

フォロー

blog-page_side_responsive

2018年11月
 123
45678910
11121314151617
18192021222324
252627282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。