ダイレクトVPC下り(Direct VPC Egress)を適当に使ってるとCloud NATのポートが枯渇する

「Serverless VPCアクセスコネクタは高い、ダイレクトVPC下りなら直接NATを叩けるから安い」みたいなくだりを見てシステムをCloudRun + ダイレクトVPC下りの構成にしたとき、アウトバウンドのHTTPコールがスパイクした時に EHOSTUNREACH になる。
一般にAxiosやHTTPリクエストを行うライブラリはコネクションプールを保持し、不要なコネクションをENIに取りに行かない設計だが、n8nやDify、その他ノーコード/ローコードではコネクションの使いまわしが甘いアプリがある。
一般にCloud RunからグローバルIPに直接リクエストする場合は問題が無い(起こりにくい)ものの、時と場合によってNATのポート割当が枯渇してこのようなエラーになる場合がある

Cloud NATでは動的ポート割当を有効化しておく

Port Allocationの項目で最小ポート数を多めに割り当てておくと、だいたいうまくいく
この時の最小ポート数は「65536/このNATを利用する最大のインスタンス数」としておくべきで、インスタンス数が32である場合は65536/32=2048…のようになる(多分)
n8nやdifyは掴んだHTTPをそのままにしておく傾向があるので、特にn8nで「外向きのIPアドレスを固定化するためにVPCから直接Cloud NATを経由して通信させる」ような場合、この設定は必須になるような気がする。