【正解】D
【0からの解説】
①前提知識:Cloud Run から Cloud SQL に接続する最も簡単な方法は、Cloud Run サービスに Cloud SQL 接続(--add-cloudsql-instances)を設定する「デフォルトの(組み込みの)Cloud SQL 接続」です。これを設定すると、Cloud Run が内部で Unix ソケット経由の接続を用意してくれます。ただし、Cloud SQL の公式ドキュメント(割り当てと上限、Cloud Run からの接続)には「Cloud Run のコンテナ インスタンスは Cloud SQL データベースへの接続が 100 に制限される」と明記されており、この上限は「Cloud SQL Auth Proxy をサイドカーで使用する」など他の接続方法では適用されない、とも記載されています(Cloud SQL 言語コネクタやインスタンスの IP アドレスへの直接接続も同様に対象外です)。
・Cloud SQL Auth Proxy:IAM による認証と TLS 暗号化を自動で行い、アプリからは localhost の DB ポートに接続するだけで Cloud SQL に安全につながるプロキシです。Cloud Run ではマルチコンテナ(サイドカー)機能で、アプリ コンテナと一緒に Auth Proxy コンテナを動かせます。
②要件の整理:「デフォルトの Cloud SQL 接続を使っている」「Cloud Run インスタンスあたり 100 を超える接続が必要」。つまり、組み込み接続方式に固有の上限をどう回避するかが問われています。
③正解の理由:100 接続の上限はデフォルトの Cloud SQL 接続方式による制限なので、接続方式を Cloud SQL Auth Proxy のサイドカーに切り替えれば、この上限は適用されなくなります。認証・暗号化の安全性も維持され、要件を満たします(なお、Cloud SQL インスタンス側の最大接続数も十分である必要があります)。
【誤りの選択肢】
A:Cloud SQL Admin API の割り当て(1 分あたりのリクエスト数)は、接続の確立時に使われる API 呼び出し回数の上限であり、Cloud Run インスタンスあたりの同時接続数 100 の上限とは別物です。引き上げても 100 接続の制限は解消されません。
B:max_connections フラグは Cloud SQL インスタンス全体が受け付ける最大接続数を決める設定です。インスタンス側の上限を上げても、Cloud Run の組み込み接続による「インスタンスあたり 100 接続」の制限は Cloud Run 側の制約なので変わりません(なお原文の max_connection / PostgresSQL は表記ゆれで、正式には max_connections / PostgreSQL です)。
C:Enterprise Plus エディションは、より高い性能・可用性(データ キャッシュ、99.99% の SLA など)を提供するエディションですが、Cloud Run の組み込み接続のインスタンスあたり 100 接続の上限を解除する機能ではありません。コストも上がるのに課題は解決しません。
【参考】
Cloud Run から接続する | Cloud SQL for MySQLCloud SQL Auth Proxy について | Cloud SQL for MySQL