Cloud Run には セッション アフィニティ という機能があります。説明には
同じクライアントからのリクエストを可能な限り同じコンテナ インスタンスにルーティング。
とあるように、Cloud Runで複数のインスタンスが立ち上がっている状態でも可能な限り同一のインスタンスにアクセスされるようになる設定です。
この仕組みは簡単で、GAESA
という名前のCookieを初回アクセス時に付与してこの値を見てインスタンスを振り分けているようです。
しかし、FastlyなどのCDNなどを噛まして配信している場合はどうなるかというとレスポンスヘッダーにSet-Cookie
があるためキャッシュされません。そのため、CDNがあるのに毎回PASSされてしまいオリジンに到達してしまうという状態になってしまいます。
CDNを噛ますのであれば、そもそもこの機能はOFFで問題ないためOFFにしてしまいましょう。私はこれで数時間溶かしてしまったので皆さんお気をつけください。