Cloud Run
Cloud Runはリージョンサービス
ユーザ管理のVPCのようなプライベートネットワーク内に存在するのではなく、Google Cloud側で管理されているネットワーク領域にリソースがある
VPC内部からのリクエストを受け付ける場合、VPCが必要
Direct VPC Egress
サーバレスVPCアクセスのコネクタようなVMインスタンスが不要
以前はDirect VPC EgressではCloud NATは使えなかったが、今は使える
Cloud Runに固定IPを付与するためにはCloud NATが必要
Cloud SQLはGoogle Cloud側が管理するVPCに存在
Cloud SQLがパブリックIPの場合、VPCなしでもCloud Runから接続可能
Cloud SQL Auth Proxyは必要
Cloud Runはパブリックなエンドポイントを有する
VPCからCloud Runにアクセスするためには、インターネット経由での通信が必要
「限定公開のGoogleアクセス経由」を有効にすれば、インターネットを経由せず、GCP内部ネットワークでのアクセスも可能
Cloud Run間のアクセスパターン
VPCを経由せず、パブリックネットワーク経由
「上り(内向き)の制御」は「全て」となり、外部に露出する
IAM認証がセキュリティの要
VPC経由
Direct VPC Egressや「限定公開のGoogleアクセス経由」を利用
「上り(内向き)の制御」は「内部」のみとでき、外部からのアクセスは遮断される
Cloud Runのタイムアウト
デフォルトリクエストタイムアウト: デフォルト5分。最大60分
タイムアウトに達するとコネクションは切れるが、Cloud SQL側での処理は続く?
504 Gateway Timeouがレスポンスされるが、インスタンスは停止されない
Cloud Runのパフォーマンス設計
スケーリングが適切にされない場合、429や504といったエラーが発生する
インスタンスあたりの最大同時リクエスト数: 1〜1000。デフォルト80
最大インスタンス数
CPU使用率
1分間のCPU使用率が60%を維持するようインスタンス数が調整される
1インスタンスあたり処理可能な最大リクエスト数
1インスタンスあたりの最大リクエスト数 × インスタンス数
インスタンス数の最適解
平均CPU使用率が60% となるように最大リクエストを設定しつつ、業務要件で定められた想定リクエスト数をさばけるインスタンス数を設ける
Cloud Tasks
max_dispatches_per_second: 最大レート(秒間トークン補充数)
max_concurrent_dispatches: タスクの同時実行数
max_attempts: タスクの最大試行回数
参考文献
The Cloud Run
#GCP