メニュー

すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!

【GCP入門編・第4回】すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!

GCP

記事投稿 | 2017.05.19

すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!

前回の記事では、 Compute Engine を使ってインスタンスを立ち上げる方法について解説しました。

Google Compute Engine でインスタンスの立ち上げを行うと、アプリケーションを Compute Engine 上で動作させることができる状態になります。この記事では、サンプルアプリケーションを Compute Engine で動作させてみます。

この記事の目的

  • GCP の Google App Engine 向けサンプルを Google Compute Engine のインスタンス上で動作させる。
    ※この記事では Git が使えることを前提としています。

Google Compute Engine (GCE) でサンプルアプリケーションを動作させる。

今回動作させるサンプルは、 Google が公式に提供している Python で作られたサンプルアプリケーションであり、 Web Application Framework としては Flask を使用した、単純なアプリケーションです。
そのため、通常の Flask を使用した Web アプリケーションには含まれていない app.yaml や appengine_config.py といった設定ファイルが含まれています。こちらは必ずしも Compute Engine で Flask アプリケーションを動作させる為に必要なものではありません。

まず、手元の環境でリポジトリを作成し、GCP のプライベートリポジトリにコードを保存するところから始めます。
GCP ではソースコードの管理に Git を利用するため、 Git が手元の環境にない方はこちらを参考にインストール下さい。また、 GCP のプライベートリポジトリを使う際に必要となる、 Google Cloud SDK もインストールして下さい。

まず、以下のコマンドで GCP のサンプルをダウンロードしましょう。

$ git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

ダウンロードされた「python-docs-samples」というフォルダ内に入っている ”appengine/standard/flask/hello_world” のみを使用します。
こちらのコードだけを取り出し、新しくリポジトリを作成します。

$ cp -rf appengine/standard/flask/hello_world hello_world
$ cd hello_world
$ git init .
$ git add .
$ git commit -m “Initial Commit”

上記の手続きにより、サンプルアプリケーションのローカルリポジトリが作成されました。次は、こちらのリポジトリを GCP のリポジトリに登録してみます。ブラウザを開き、 GCP のコンソールに移動し、左側メニューボタンを押して ”Development” のメニューを選択します。まだリポジトリを一つも作成していない場合には、 [Get started] というボタンが表示されていますので、こちらをクリックします。

メニューを選択すると、 Repository Name を入力する画面となりますので、 ”hello-world” と入力し、 [CREATE] をクリックします。

これで空の状態のリポジトリが作成されました。次に、先ほど作成したローカルリポジトリのリモートとして、このリポジトリを登録します。表示されている3つのメニューのうち、一番上にある ”Push code from a local Git repository to your Cloud Repository” を選択。すると GCP のリモートに登録するためのコマンドが以下のように表示されますので、順に実行します。

$ gcloud init && git config credential.helper gcloud.sh
$ git remote add google https://source.developers.google.com/p/プロジェクトID/r/hello-world
$ git push --all google

最後のコマンドである、

git push --all google

を実行後、ページをリロードすると、 “hello_world” フォルダの中身がブラウザ上に表示されます。
ここまでで、プライベートリポジトリへの登録は完了です。

次に、 Compute Engine のインスタンスで、サンプルアプリケーションを動作させてみます。

まずは、インスタンスに SSH でログインします。 Google Cloud SDK に付属している、 gcloud compute ssh コマンドの利用がおすすめです。

$ gcloud compute ssh インスタンス名

次に、先ほどのリポジトリをこのインスタンス上でクローンします。このインスタンスでは git, gcloud コマンドが最初から利用可能ですので、以下の通りコマンドを入力します。

$ gcloud init
$ gcloud source repos clone hello-world --project=プロジェクトID

クローンに成功すると、 ”hello-world” というフォルダが作成されています。次にこのフォルダに移動し、アプリケーションを起動します。なお nginx が立ち上がっている際には80番ポートを使用していますので、 nginx を停止します。

$ sudo service nginx stop

次に、 “hello-world” アプリケーションを起動します。

$ cd hello-world
$ sudo apt install python-pip gunicorn
$ pip install --upgrade pip
$ sudo pip install -r requirements.txt
$ sudo gunicorn -b 0.0.0.0:80 main:app

この状態で、 “Hello World!” という文字列が表示されたでしょうか?
表示されていれば、アプリケーションの動作は問題なく行えています。

別記事では、同じアプリケーションを App Engine で動作させる方法を解説します。

PAGE TOP