eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

APIサーバーの実行環境の所感 2020

Google App Engine

  • 言語/ランタイムバージョンが限定される
  • 複数バージョンをデプロイして、複数の指定バージョンを簡単に試せる
  • staticファイルの配信が簡単
  • Go1.9時代(第1世代GAE)はいつも使っていた
  • 今はstaticファイルの配信に使う

Google Cloud Run

  • Runtimeが固定されない
  • デプロイが簡単、Dockerfileがそのまま使えて嬉しい
  • インスタンス起動後、10〜20分くらい生きている。その後死ぬ。

Google Cloud Run / Go

  • Go 1.13以降で主に使う
  • スピンアップが早い。コールドスタート早い。ちょっぱや。
  • Golangのサーバーサイド開発者自体を捕獲する難易度が多少高い
  • ライブラリが豊富

Google Cloud Run / Kotlin

  • Kotlinしゅき。
  • 今日試した
  • Ktor使ってスピンアップ2.3秒、以後8ms程度が最速値(Hello Worldのテキストを返すだけ)
  • まあ許せなくもない気もする
  • Cloud Schedulerを用いて1分に1回pingすることで0円インスタンスを1個キープできそう

Firebase Hosting

  • マイクロサービスアーキテクチャで作ったときにCloud Runのサービスルーティングに使う
  • staticファイルの配信としては個人的には使いにくい