
はじめましてこんにちは、ひょうどうです。
今回は、Google App Engine Flexible EnvironmentにDockerで開発したアプリをデプロイする際の注意点をメモします。
GAE FEについてはこちらの記事が分かりやすいです。
結論を先に述べると、料金に注意が必要です。
分かっていたことなのですが、使い慣れてしまうと忘れがちです。
経緯
今回はDocker環境でRailsアプリを開発したのですが、本番環境をどうしようか検討している際に以下の3つが出てきました。
- GAE
- Cloud Run
- GKE
上から順にデプロイの手間が多くなっています。
また僕としてもGAEへのデプロイ経験が多かったので、とりあえずGCP公式ドキュメントを見ながらデプロイしてみました。
事件
テストでDocker+RailsアプリをGAEにデプロイして使用感を確認してから半月ほど放置してしまいました。
先でも述べましたがGAEへのデプロイは何度もあり、また実際にGAEで運用しているサービスが何個か存在します。
そのサービスの一ヶ月の使用料金はそれほど大したものではありません。(1000~2000円ぐらい)
しかし、FEは違いました。
まずは以下の画像を御覧ください!
半月で5758円です。
FEへのデプロイは初めてだったため驚愕を覚えました。
解決策
解決策として以下の2点があります。
- app.yamlにresoucesを設定する
- Cloud RunまたはGKEにデプロイ
僕は2つ目のCloud Runにデプロイしました。
1つ目の「app.yamlにresoucesを設定する」についてですが、これは単純にサーバーのスペックを設定するということです。
僕が事件を犯した原因はこれを設定していなかったことだと思います。
GAEにはStandard Environment(SE)とFlexible Environment(FE)があり、SEであれば今回のような事件を犯すことはありません。
しかし、DockerのデプロイとなるFE環境になってしまうのでresourcesの設定は必須になります。
設定せずに半月とか放置していたらポケットマニーが少し削られるので注意ですw
使い分け
個人的には以下のように使い分けてます。
- Rest APIをテストまたは本番仕様にする時はGAE
- Dockerで作成したアプリはCloud Run
Rest APIに関してはAWSのLambdaやGCPのCloud Endpointsを使ったほうがいいかもしれませんw(ケース・バイ・ケースかな)
まとめ
無料枠内であっても料金表は最低でも2,3日に1回は確認しようと思いました。
また個人的に、AWSに比べてGCPの方がUI/UXが非常に高く使いやすいし、料金比較表をみてもGCPの方が安価です。(これは実際に自分で検討するのがいいかもしれない)
両方使えるに越したことはないですが、テストデプロイであればGCPが良いと思います。
Azureは使ったことがないのでいずれ触れてみたいけど、正直AWSとGCPが使えたら問題ないと思っています。
以上です。
それではまたどこかでお会いしましょう!