Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Direct VPC egress for Cloud Run【2023/08/24 Cloud Run 新機能祭り】

Direct VPC egress for Cloud Run【2023/08/24 Cloud Run 新機能祭り】

tsubaki kyosuke

August 24, 2023
Tweet

More Decks by tsubaki kyosuke

Other Decks in Programming

Transcript

  1. 01 03 02 04 全体のアーキテクチャ Direct VPC egress とは 利用事例

    自己紹介と会社・プロダクト紹介 05 導入の流れ 06 まとめ
  2. 自己紹介 2020 年、大学在学中にインターンとして株式会社 Gaudiyに参加。 2021 年 4 月入社。Enabling Team で横断的な技術導入や負荷対策、マルチテナ

    ント移行、パフォーマンス改善などを行う。現在は Gaudiy Fanlink の機能開発を行 う Feature Team で、主に Generative Agents の開発に取り組んでいる。 椿京介
  3. Gaudiy は Web 3 × エンタメ領域から グローバルに挑戦する、 日本発の Web 3

    スタートアップです。 会社紹介 MISSION ファンと共に、時代を進める。 ブロックチェーンをはじめとした先進的なテクノロジーを駆使し、 誰もが創作や貢献のできるファン国家の創出を探求する。
  4. VPC VPCにトラフィックを送信するユースケース Cloud Run Memorystore Cloud SQL Compute Engine GKE

    Service Internal Load Balancer On Premise Serverless VPC Access Connector instance
  5. Direct VPC egress とは VPC Cloud Run Serverless VPC Access

    Connector Resource with an internal IP address instance
  6. Direct VPC egress とは VPC Cloud Run Serverless VPC Access

    Connector Direct VPC egress Resource with an internal IP address instance
  7. Direct VPC egress とは 利点(Serverless VPC Accessとの比較) https://cloud.google.com/blog/products/serverless/announcing-direct-vpc-egress-for-clou d-run?hl=en •

    Setup ◦ アプリケーションコードの変更なし • Performance ◦ ネットワーク経路数が少ないため、 低レイテン シを実現 ◦ ダイレクトなネットワークパスを使用するた め、スループットが向上する • Cost ◦ コネクタインスタンスを利用しないため、コスト を削減することができる • Security ◦ ネットワークタグを使用することで、きめ細か なネットワークセキュリティを実現
  8. Cloud Run to GKE (Autopilot) VPC GKE Microservices Cloud Run

    Autopilot Google Kubernetes Engine Internal Cloud DNS Cloud Trace Direct VPC egress Cloud Logging • OpenTelemetry Collector を GKE 上に建たせ、Cloud Run か ら Direct にデータを送信 • Private Cloud DNS を使い Collector の Internal IP を Cloud Run で DNS解決可能にし つつ、外部ネットワークに出ずに Cloud Run と GKE 間の通信を 実現 • 可能な限りネットワークレイテン シを抑えることに成功 SaaS
  9. 3rd Party への通信 実際のユースケースにおける満たすべき要件 • 外部サービスで管理しているデータと弊社で管理し ているデータベースで同期する • 一定時間に同期処理を行う必要がある •

    大量なデータを一度に処理する必要がある • IP アドレスを固定する必要がある 外部サービス Cloud Run Cloud Spanner Cloud Scheduler 1 2 3 データの同期処理
  10. 3rd Party への通信(Serverless VPC Access) VPC Cloud Run Cloud NAT

    Serverless VPC Access Connector 外部サービス xx.xx.xx.xx -> OK xx.xx.xx.xx Cloud Run はデフォルトで動的 IP アドレスプールを使用し て外部エンドポイントに接続する。 静的 IP アドレスからの接続を必要とする外部エンドポイン トの場合、サーバーレス VPC アクセスを利用して Cloud Run を VPC に接続し、Cloud NAT 経由ですべての送信ト ラフィックをルーティングするように設定する必要がある。
  11. 3rd Party への通信(Direct VPC egress) VPC Cloud Run Cloud NAT

    Serverless VPC Access Connector 外部サービス xx.xx.xx.xx -> OK xx.xx.xx.xx Direct VPC egress 補足:プレビュー時点では Cloud NAT に未対応なのでこのような構成は取れないが、 GA のタイミングではわからない ...
  12. asia-northeast1 Cloud Run で Direct VPC egress 導入の流れ apiVersion: serving.knative.dev/v1

    kind: Service metadata: name: SERVICE_NAME annotations: run.googleapis.com/launch-stage: BETA labels: cloud.googleapis.com/location: asia-northeast1 spec: template: metadata: annotations: run.googleapis.com.network-interface: ‘[{“network”: “NETWORK”, “subnetwork”: “SUBNET”}]’ run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE Subnet 10.214.0.0/20 VPC 2 1 • VPC ネットワークとサブネットの 作成 • サブネット上で利用可能な IPアド レスの個数は Cloud Runのス ケール数に合わせる • network と subnetwork を追加 • 現在 Direct VPC egress はサービ スに対して最大 100 インスタンス (--max-instances=100)をサポー トしている .yaml Cloud Run 3 $ gcloud run services replace service.yaml Cloud RunのDeploy
  13. まとめ ❏ Direct VPC egress により、サーバーレスVPC アク セスコネクタを使用せずに、 VPC ネットワークにトラ

    フィックを送信できる ❏ ゼロダウンタイムで導入可能 ❏ アプリケーションコードの修正は不要で導入可能 ❏ パフォーマンスの向上