しゅわのお役立ち講座(投資や生命科学を中心に)

お役立ち、投資(大谷正光さん派マネーコーチ、投資歴15年以上)、ゲノム、医療、PCなど。

Google App EngineでWebアプリのお試し

AppEngineの勉強中

要望は…

  • Cloud SQL、BigQueryとAppをつなぎたい
  • とはいえ、AppEngineのデプロイは??
  • 文献を参考にtry
  • 結果、最小限の動きとして、cloud shellのみでもいろいろできそう。

試してみます。

【参考文献】

GAE: second generation runtime の機能を有効活用しつつ、Python 3.7 の Web アプリを動かす - Qiita

Google App Engine (GAE)とは

Googleが提供しているPaaSです。

Paas : Platform as a Service : サービスとしてのプラットフォーム 引用:Google App Engine とは?  |  App Engine  |  Google Cloud

 
魅力は、

Google強固で安定したインフラ上でアプリケーションを運用でき、
勝手にスケールするため爆発的なアクセスにも悩まされることがない 引用:【GCP入門編・第5回】 Google App Engine の魅力とは? Google App Engine (GAE) でのアプリケーション起動方法! | 株式会社トップゲート

 
他にも、良いところは、

・瞬間スケールアウト
・バージョン = 「Blue-Green」デプロイメント
  (app.yamlにversion項を設定するだけで、別にversionもデプロイ可)
権限管理はGoogle アカウントにお任せ
など 引用:個人的に最強のPaaSプラットフォームGoogle App Engineの良い所を挙げてみる - Qiita


つまり、

コンセプト
  • 小さいアプリをパッと作れるだけでなく、
  • スケーラビリティも同時に確保でき、
  • バージョン管理が容易で、
  • Cloudのみで完結できる。

なんと都合の良い・・・

ということで、try。

試しにGAEのWebアプリをデプロイしてみる

(少なくとも、Google Cloud Platform (GCP) のアカウントが必要です)

【参考】GCPの始めるには…


まずは、Google Cloud Shellを立ち上げる。

こちらの文献を参考に、

# ソースの取得
$ git clone https://github.com/ao-log/gae-second-generation-python-demo
$ cd gae-second-generation-python-demo

# デプロイ
$ gcloud app deploy .

出たエラー

descriptor:      [/home/hoge/gae-second-generation-python-demo/app.yaml]
source:          [/home/hoge/gae-second-generation-python-demo]
target project:  [hogehoge]
target service:  [default]
target version:  [20190xxxtxxxxxx]
target url:      [https://hogehoge.appspot.com]


Do you want to continue (Y/n)?  Y

Beginning deployment of service [default]...
Created .gcloudignore file. See `gcloud topic gcloudignore` for details.
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 9 files to Google Cloud Storage                ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build ~~~ status: FAILURE.
Build error details: Access to bucket staging.polar-reef-156008.appspot.com denied. You must grant Storage Object Viewer permission to ~~~@cloudbuild.gserviceaccount.com.
.
Check the build log for errors: https://console.cloud.google.com/gcr/builds/~~~?project=~~~

権限か・・・

IAMで権限を付与しないとだめらしい

Cloud IAM 権限の使用  |  Cloud Storage  |  Google Cloud

Google Cloud PlatformのCloud Storageを覗いてみると
hogehoge.appspot.com Multi-Regional」
というバケットができているので、

ブラウザの右端にある「︙」を右クリック
バケットの権限を編集
「メンバーを追加」
「~~~@cloudbuild.gserviceaccount.com」(エラーで指定されたアドレスで)
役割は「Cloud Build サービスアカウント」
「保存」

やり直し。
Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage                ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...done.
Setting traffic split for service [default]...done.
Deployed service [default] to [https://hogehoge.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s default

To view your application in the web browser run:
  $ gcloud app browse


To take a quick anonymous survey, run:
  $ gcloud alpha survey

今度はビルドが通った。

サイトを眺めてみる

https://hogehoge.appspot.com にアクセスしてみる(hogehogeはご自身のプロジェクト名で)

動いた!!


さほど人気はないようですが、使い方次第な気がします。

しかも、お手軽なのが良い。

皆様もお試しあれ。

[Facebook](https://www.facebook.com/ryou.shirotsuki)
[Twitter](https://twitter.com/mcoach9)