/ #プログラミング #テクノロジー 

え?まだVSCodeのremote developmentでリモートワーク開発環境を作ってないの?

プログラミングの開発環境ってどんな構成ですか?
VSCodeのremote developmentのリモート開発を知ってますか?
ローカル環境不要のいい方法を教えます。

こんにちは、クラウドランスの望月です。
今回は自分の開発環境を構築した時の話をします。

自宅リモートワークをするにあたって、プログラミング開発環境のLinuxを用意する必要が有りました。
前回案件と同じようにVagrantでローカルに仮想サーバを立てる?
WSL(Windows上で動くLinuxサーバ)をローカルに立てるのか? 

色々悩んで悩んで、結論GCP(Google Cloud Platform :Googleのクラウドサービス)に仮想サーバーを立てる事にしました。

なぜならVSCodeのリモート開発拡張機能(Remote Development)がめちゃくちゃ優秀だからです。
この環境であれば、自宅以外のカフェからノートPCでアクセスしても同じ環境で開発ができます。

今回はこの開発環境について解説します。

目次

  1. VSCodeのremote developmentが優秀
  2. GCPに仮想サーバを立てる
  3. Cloud Schedulerで起動・停止を自動化すればコスト節約

1. VSCodeのremote developmentが優秀

まず何でGCPに仮想サーバを立てようと思ったのか?

VSCodeのremote developmentの機能を使えば、直接仮想サーバ内のファイル編集ができるからです。

普通のエディタやIDE(統合開発環境)はWindows上のローカルファイルを開いて編集をします。
仮想サーバの中のコードを編集、作成するには、以下のような色々面倒くさい工夫が入りました。

  • 仮想サーバの中にWindowsファイルサーバーのsambaを立てて、Windowsからアクセス可能にする。
  • Vagrantで仮想サーバを起動して、Vagrantのファイル共有機能を使う。
  • ローカル環境でプログラムを作って、FTPやscpで仮想サーバにコピーする。

しかしVSCodeのremote development拡張機能はGCPで立てた仮想サーバ内のファイルを直接開いて、ローカルファイルと同じ様に編集できるのです。

つまりVagrantやvmwareなどで、ローカル開発環境を作らなくて済むという事なのです。

このローカル開発環境を構築するのが、めちゃくちゃ手間なのです。
いくつもの手順を踏んで謎のコマンドを打って、エラーがでて、ローカル環境作るの辛い経験した事ありませんか?

もうそんな事はしなくてよいのです。

それにFacebookの開発ではVSCodeを採用して、リモート接続して開発しているというじゃないですか。

特にFacebookではVisual Studio CodeをプログラマのローカルPCにインストールしたうえで、開発作業そのものは開発者がそれぞれ保有するデータセンターに置かれたサーバ上で直接行う、リモート開発によって行われています。 リモート開発はすでにVisual Studio Codeのリモート開発拡張機能(Remote Development extensions)で実現されています。

PublicKeyから引用 :
Facebook、社内のデフォルト開発環境にVisual Studio Codeの採用を表明。マイクロソフトと協力してリモート開発機能の強化も推進

Facebookがやるならオレもやると言う事で同じ開発方法を採用しました。

2. GCPに仮想サーバを立てる

開発用サーバはGCPに仮想サーバをサクッと立てちゃいます。
理由はシンプルにVSCodeからリモートアクセスして開発する為ですね。

その他にもGCP上にあると言うことで、バックアップ、スケールアップ、リモートアクセス、数多のマネージドサービスの恩恵を受けれます。

初めはWindowsのWSL上で開発していたのですが、後々自宅以外の場所でもリモートワークしたいので、GCP上のサーバーに決めました。

3.Cloud Schedulerで自動立ち上げ、停止すればコスト節約

Cloud Schedulerは決まった時間、日時に特定の操作を自動でやってくれるサービスです。

これを利用すれば、作業開始時間にVMインスタンスの自動立ち上げ、作業終了時間あたりに自動停止処理を作る事ができます。

自分の場合はCloud Schedulerが平日の10時に立ち上げて、19時に停止してくれます。

公式ドキュメントに詳しくやり方が記載しているので、割と簡単に指定できました。

Cloud Scheduler を使用した Compute インスタンスのスケジュール設定

ただし、Cloud Schedulerだけを設定するとよいのではなくて、Cloud Functions(関数サービス)、Cloud Pub/Sub(メッセージング)、Cloud Schedulerが必要とか大袈裟な構成でした。

最近だと、node.js v6は非推奨なので、node.js v8でCloud Functionsを作る必要がありました。
ここつまずきポイントなのでちょっと注意です。

まとめ

以上、「え?まだVSCodeのremote developmentでリモートワーク開発環境を作ってないの?」でした。

この環境で実際に作業していて、とても快適ですね。
何が良いって、コードエディタ枠の下段にターミナル枠があるんですよ。

そう!コードを書いて、ターミナルで実行!みたいな事がすぐできるんです。
gitはコマンドで操作する派なので、コードを書いて、即追加、コミット、Push!みたいな事も出来ます。
VSCode内で全て完結しちゃうんですよねー。これ地味にスゴイ!

あとはデスクトップPCからも、ノートPCからも同じGCP上の仮想サーバにリモートアクセスして、直接開発できるのがスゴイ秀逸ですよね。

開発環境にはPHPをインストールしたり、モジュール、ミドルウェアをインストールしたりするじゃないですか。
GCPの一箇所の仮想サーバにのみ環境構築すればよいのがスゴイ良いです。

これが、ローカル環境に立てたLinuxなら、そうはいきません。
デスクトップPCとノートPCに同じインストール作業する羽目になります。

VSCodeのリモート開発を使うという、ローカル環境不要のいい方法を教えれた所で、そろそろ終わりにしたいと思います。

それでは皆さんまた次の記事でお会いましょう~。


このブログではフリーランス情報やプログラミング情報の発信を
続けていこうと思うのでぜひ応援お願いします。
また、Twitterでも日々の為になる技術情報やフリーランスについての
有益な情報をつぶやくので、いいなと思った方はTwitterのフォローをお願いします。

ブログの著者:IT業界10年以上のベテランフリーランスエンジニア。
会社員時代に比べ年収2.5倍にUP。
AWSとGCPの両方でゲーム系インフラの構築,運用と
C#とPHPでのサーバープログラミングの二刀流で絶賛稼働中。
有益なIT情報を発信出来きるように日々IT情報収集が日課です。
ブログではフリーランスやIT情報を毎日更新中です。

自分のスキルレベルと経歴をまとめたページを作りました。
お仕事のご依頼の際には参考にしていただければと思います。

クラウドランス 望月 のポートフォリオサイト

またブログに関する感想やご意見、応援などがありましたら、
こちらから自分宛てにTweetして頂ければと思います。