メニュー

【GCP入門編・第9回】 Cloud Shell で、いつでもどこでも Google Cloud Platform (GCP) が操作可能に!

GCP

記事投稿 | 2017.08.31

自宅と職場で別々の PC を使って同じプロジェクトの開発がしたい、複数の PC を使って仕事を進めている、そんな時、ローカルに開発環境の立ち上げを何度も行うのは非常に面倒な作業です。また、出先で障害の報告を受け、急に普段と異なる PC を使って作業を行わなければいけない、そんなケースも多いのではないでしょうか。

GCP では、こうした状況で非常に使える便利なツールがデフォルトで備わっています。いつでもどこでも、どんな PC でも、ブラウザさえあれば GCP の操作や開発を行える、 Cloud Shell があればそんなことも可能です。

この記事では、 Cloud Shell を使った GCP の操作や、 Cloud Shell をより便利に使うための Tips を紹介します。

この記事の目的

  • Cloud Shell で GCP を操作してみよう。
  • Cloud Shell をより便利に使うための Tips を学ぼう。

Cloud Shell で GCP を操作する

それでは早速、 Cloud Shell を使ってみましょう。 GCP のコンソールを開き、 Project のページのヘッダ部分にある Cloud Shell 起動アイコンをクリックします。

01.png

Cloud Shell の紹介画面が開きますので、 ”START CLOUD SHELL” をクリックします。すると、画面下部に Cloud Shell が図のように立ち上がるかと思います。 Connecting… のメッセージが消え、見覚えのあるターミナル画面が起動すれば、 Cloud Shell が利用可能になります。

02.png

たったこれだけの作業で、 Cloud Shell の立ち上げは完了です。通常の Compute Engine インスタンスにログインしたかのように、ログインシェルが立ち上がっています。実は、 Cloud Shell の実体は f1.microタイプ の Google Compute Engine インスタンスなのです。 OS としては Debian ベース(記事執筆時のバージョンは8.7)の Linux が入っており、デフォルトで gcloud をはじめとした GCP で便利に使える様々なツールがインストールされています。試しに、ディレクトリを作成してみましょう。

$ mkdir test
$ ls

03.png

このようにディレクトリが作成されました。このインスタンスは Cloud Shell のセッションを閉じるまで、もしくは1時間以上何もしなかった場合に terminate されます。 その場合でも、ホームディレクトリは永続化されていますので、次に Cloud Shell を立ち上げた時には作業の内容が残ります。

つまり、ホームディレクトリに自分で使うツールや、シェル、エディタなどの設定ファイルを置いておけば、ブラウザを開いて Cloud Shell を起動するだけで、いつもと変わらない開発環境が利用できるのです。

プリインストールされているツールは Vim や Emacs などのエディタから、 Go や Python などの言語ランタイム、 Git といったバージョン管理システム、そして gcloud コマンドを含む Google Cloud SDK、 Google App Engine SDK などです。これだけあれば特にツールを入れなくとも、一通りの作業が可能となるのではないでしょうか。プリインストールされたツールの一覧はこちらにありますので、ぜひご覧ください。

Cloud Shell では gcloud コマンドを特に設定することもなく使用可能です。立ち上げ時に現在のプロジェクトで gcloud コマンドが利用できるように設定されていますので、 Compute Engine インスタンスの立ち上げも即座に行えます。下記のコマンドで、インスタンスを作成してみます。

$ gcloud compute instances create instance-1 --zone asia-northeast1-a

インスタンスが立ち上がったら、下記のコマンドで削除します。

$ gcloud compute instances delete instance-1 --zone asia-northeast1-a

このように、 Cloud Shell は gcloud があらかじめインストールされた Linux のインスタンスなので、 gcloud コマンドを使う時はローカルからではなく Cloud Shell から、と決めておくのも良いかもしれません。

さらに上記で紹介した単純な Linux インスタンスとしての機能だけでなく、Cloud Shell には開発する際に便利な機能も付加されています。それが、 Web Preview と Code Editor です。

Web Preview

Web Preview は Cloud Shell のインスタンスのポートにブラウザから接続するための機能です。デフォルトでは8080番ポートに対して、その Cloud Shell を立ち上げているユーザーにのみブラウザ経由でポートを解放します。手っ取り早く、 Python に付属する SimpleHTTPServer を使用して、 Web Preview を試してみます。

まずは、以下のコマンドを打ち込み、8080番ポートを SimpleHTTPServer が Listen するようにします。

$ python -m SimpleHTTPServer 8080

次に、 Cloud Shell の Web Preview ボタンを押し、 ”Preview on 8080” をクリックします。

04.png

次の図のようにディレクトリ上のファイルが表示されているかと思います。

05.png

このように、 Web Preview を使うと Cloud Shell 上で開発中のアプリケーションをプレビューすることが可能になります。 dev_appserver.py を使って立ち上げた App Engine のアプリケーションを確認する際にも使えます。

Code Editor

Code Editor は Eclipse 財団が開発している、ブラウザ上で動作するOrionをベースにしたエディタです。 Cloud Shell 上に置いてあるファイルを編集することも、ローカルに置いてあるファイルをアップロードして編集することも可能です。

06.png

Code Editor は Experimental な機能ということですが、 Cloud Shell 上のファイルをちょっと編集したい、という時など便利に使えるのではないでしょうか。

おわりに

いかがでしたしょうか。ブラウザは使える、けど開発するには…という場面は往々にしてあると思います。そんな時は、 Cloud Shell を使うことで、環境の整備に時間を使うことなく、運用や開発を行えるのではないでしょうか。

PAGE TOP