はじめに
先日GAEでハンズオンを行ったので、「今度はGoogle Cloud Runで試してみよう」と思い、公式リファレンスを読み進めていたのですが、「Cloud RunとGAE フレキシブル環境って何が違うの...?」と、よく分からなくなってしまいました。
そこで、私自身の思考整理を兼ねて、GAE スタンダード環境・フレキシブル環境と、Cloud Runの特徴を整理します。
比較表
| 特徴 | GAE スタンダード環境 | GAE フレキシブル環境 | Cloud Run |
|---|---|---|---|
| 自動スケーリング | 対応 | 対応 | 対応 |
| スケール・トゥ・ゼロ | 対応 | 非対応 | 対応 |
| 最大インスタンス数 | 2147483647 | 明確な上限なし1 | 明確な上限なし2 |
| 課金 | インスタンス時間 | インスタンスのvCPU等リソース使用量 | インスタンスベース or リクエストベースの従量課金 |
| 無料枠 | あり | なし | あり |
| vCPU | 最大1コア(4.8GHz、vCPU 2コア程度) | 最大80コア3 | 最大8コア |
| メモリ | 最大3GB | vCPUあたり最大6.5GB3 | 最大32GB |
| 実行環境 | サンドボックス | Dockerコンテナ | Dockerコンテナ |
| ソースのデプロイ | 可 | 可 | 可 |
| コンテナイメージのデプロイ | 不可 | 可 | 可 |
詳細は以下の公式ドキュメントをご参照ください。
所感
Cloud RunはGAEを改善するために設計されたものだそうですが、手軽さはGAE スタンダード環境に軍配が上がりそう。GAE フレキシブル環境との比較になると、Cloud Runの方が上位互換に近い印象があるため、用途に応じて、GAE スタンダード環境とCloud Runのいずれかを使い分けるのが良さそうです。