【GCP入門編・第4回】すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!
投稿日:2017/05/19
前回の記事では、 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 で動作させる方法を解説します。
同じシリーズの記事
-
【GCP入門編・第22回】 Stackdriver Logging で収集したログに対して、フィルタの実行や警告を設定しよう!
-
【GCP入門編・第21回】 Stackdriver Logging でアプリケーションのログを収集しよう!
-
【GCP入門編・第20回】 手間いらずでログ管理ができる Stackdriver Logging のご紹介!
-
【GCP入門編・第19回】 Stackdriver Monitoring でメールや Slack による通知を設定しよう!
-
【GCP入門編・第18回】 Stackdriver Monitoring で Google App Engine の監視をしよう!
-
【GCP入門編・第17回】 Stackdriver Monitoring で Google Compute Engine を監視しよう!
-
【GCP入門編・第16回】アプリのパフォーマンスを視覚的に確認できる Stackdriver Monitoring を紹介!
-
【GCP入門編・第15回】 GCP から AWS までモニタリングできる Google Stackdriver を紹介!
-
【GCP入門編・第14回】 Cloud Functions を使ってサーバレスアーキテクチャを体験しよう!
-
【GCP入門編・第13回】 Cloud Datalab でデータの可視化を行ってみよう!
-
【GCP入門編・第12回】 BigQuery を使って気軽にビッグデータの解析を行ってみよう!
-
【GCP入門編・第11回】 Google Cloud Dataproc を使ってデータを解析しよう!
-
【GCP入門編・第10回】スケーラブルな NoSQL データベースサービス Cloud Bigtable を使ってみよう!
-
【GCP入門編・第9回】 Cloud Shell で、いつでもどこでも Google Cloud Platform (GCP) が操作可能に!
-
【GCP入門編・第8回】 Container Registry での Docker イメージの使用方法!
-
【GCP入門編・第7回】知らなきゃ損! Google Container Engine (GKE) での Dockerイメージを使ったコンテナの起動方法!
-
【GCP入門編・第6回】これは簡単! Google App Engine での Cloud Datastore の利用方法!
-
【GCP入門編・第5回】 Google App Engine の魅力とは? Google App Engine (GAE) でのアプリケーション起動方法!
-
【GCP入門編・第4回】すぐ出来なくても大丈夫!サンプルアプリで Google Compute Engine (GCE) の動作練習!
-
【GCP入門編・第3回】難しくない! Google Compute Engine (GCE) でのインスタンス起動方法!
-
【GCP入門編・第2回】まずは、ここから!知らないと恥ずかしい Google Cloud Platform (GCP) の事前準備!
-
【GCP入門編・第1回】エンジニア必読!今さら聞けない、Google Cloud Platform (GCP) とは?