GCP + pythonをやっていくとき、どのサービスを使うか?
概要
pythonでwebアプリを作って公開したいとき、GCPでは様々なサービスを利用できる。
それぞれ特徴があるため、目的に合わせて選別する必要がある。
Cloud Function
公式サイト
https://cloud.google.com/functions/docs/
- 長所
- 流行りのサーバレス
- スクリプト置くだけなのでサーバ側のことを考えなくて良い
- HTTPアクセスに対してスクリプト実行するので一応webサイトっぽいものも出来る
- 短所
- 時間トリガを使うのが面倒
- Pub/Sub, Schedulerと組み合わせる必要がある
- 1スクリプトにやりたい処理を書き込むしかないため管理が難しい
- 普通のソフトウェアなら役割ごとにファイルを分割する
- 時間トリガを使うのが面倒
Firebase
公式サイト
https://firebase.google.com/docs/
REST API
https://firebase.google.com/docs/database/rest/start?hl=ja
- 長所
- 認証機能がブラウザ上からポチポチ設定で出来るため楽
- 静的ファイルなら置くだけで動作するので楽
- 短所
- python使うとしたらサードパーティ製ライブラリが必要
- REST APIの操作に限られるので出来ることは少ない
GAE (Google App Engine) + python2 SE
公式サイト
https://cloud.google.com/appengine/docs/
- 長所
- webアプリに必要なSDKが豊富
- アプリ外の設定を考えずに利用可能
- ErrorReporting, Loggerがあるので監視も楽
- cron.ymlをデプロイするだけでスケジューラ使用可能
- Cloud Functionより楽に時間トリガを使える
- 短所
- 2系なのでもうすぐサポート切れる
- 使用できない外部パッケージが多い
GAE (Google App Engine) + python3 SE
- 長所
- 2系 SEでは使えなかったパッケージ(scipy, pandasなど)が利用できる
- 短所
- GAE SDKが未対応のライブラリ(ndbなど)が多く、2系と比べ使いにくい
GAE (Google App Engine) + python3 FE
- 長所
- webアプリに必要なSDKが豊富
- 2系 SEでは使えなかったパッケージ(scipy, pandasなど)が利用できる
- 短所
- SEに比べて高い
- 起動が遅い
GCE (Google Compute Engine)
- 長所
- インフラ周りまで全ての設定が可能
- 従来のアプリと同様の構成なので、そのままデプロイすれば利用可能、移行が楽
- GAEと異なりパッケージの制限など検討しなくていい
- Dockerでデプロイ可能
- 短所
- webサーバなどGAEでは不要だった項目の設定が必要で面倒
結論
- 基本はGAE使うのがベター
- 裏側で複雑な操作をしないのならfirebase
- アプリ外の設定を行いたいならGCE
おまけ
- 2系 SEでは使えなかったパッケージ(scipy, pandasなど)が利用できる
- GAE SDKが未対応のライブラリ(ndbなど)が多く、2系と比べ使いにくい
- 長所
- webアプリに必要なSDKが豊富
- 2系 SEでは使えなかったパッケージ(scipy, pandasなど)が利用できる
- 短所
- SEに比べて高い
- 起動が遅い
GCE (Google Compute Engine)
- 長所
- インフラ周りまで全ての設定が可能
- 従来のアプリと同様の構成なので、そのままデプロイすれば利用可能、移行が楽
- GAEと異なりパッケージの制限など検討しなくていい
- Dockerでデプロイ可能
- 短所
- webサーバなどGAEでは不要だった項目の設定が必要で面倒
結論
- 基本はGAE使うのがベター
- 裏側で複雑な操作をしないのならfirebase
- アプリ外の設定を行いたいならGCE
おまけ
- インフラ周りまで全ての設定が可能
- 従来のアプリと同様の構成なので、そのままデプロイすれば利用可能、移行が楽
- GAEと異なりパッケージの制限など検討しなくていい
- Dockerでデプロイ可能
- webサーバなどGAEでは不要だった項目の設定が必要で面倒
- 基本はGAE使うのがベター
- 裏側で複雑な操作をしないのならfirebase
- アプリ外の設定を行いたいならGCE
おまけ
GKE (Google Kubernetes Engine)は使ったことないので書いてません。
使うとしたら対象のプロダクトが成熟して、マイクロサービス化するとなったときにようやく出番が出るものという認識。
Author And Source
この問題について(GCP + pythonをやっていくとき、どのサービスを使うか?), 我々は、より多くの情報をここで見つけました https://qiita.com/woody-kawagoe/items/bdff7d9193769dff0545著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .