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

スタートアップが挑むクラウドネイティブなマルチリージョン戦略

izumiiii
November 28, 2023

 スタートアップが挑むクラウドネイティブなマルチリージョン戦略

Google Cloud Next Tokyo 2023 - Innovators Hive Lightning Talk

izumiiii

November 28, 2023
Tweet

More Decks by izumiiii

Other Decks in Technology

Transcript

  1. スタートアップが挑むクラウドネイティブなマルチリージョン戦略
    Google Cloud Next Tokyo 2023 - Innovators Hive Lightning Talk

    View full-size slide

  2. 自己紹介
    名前
    Koizumi Fumiya
    Twitter
    izumiiii @izumiiii9
    Blog
    https://izumiiii.com
    Zenn
    https://zenn.dev/izumiiii
    会社
    株式会社Resilire
    普段していること
    インフラ業務メインで、最近はよくKubernetesを触っています。

    View full-size slide

  3. 提供プロダクト
    Resilreの提供価値と機能
    3
    サプライチェーンリスク管理SaaS
    Resilire
    サプライチェーン全体(社内拠点や委託先、原料
    調達先)をツリー上で構造的に管理。災害時、被
    災影響の可能性がある拠点をマップ上で可視化・
    リスト化。リストの拠点に自動でアンケート配信か
    ら回答結果のレポート生成を可能にするプロダク
    トを提供しています。
    3

    View full-size slide

  4. インフラの重要性
    ● Resilireは災害時のリスク管理を行うプロダクトのため、平常時の予防よりも特に災害時にも
    動作し続ける必要があります。
    ● 例えば、震災があったとしたら、納入先とサプライヤーの間で物流・生産に影響がないかをResilireのプ
    ロダクトを通して確認しあうような形で使われます。
    ● サプライヤーは海外にいることも多いため、グローバルに利用継続性を高める必要があり、
    災害時にグローバルでも動作し続けられる基盤作りにチャレンジする必要があります。

    View full-size slide

  5. 急成長に伴う課題の発生
    ● 費用、人員、時間の制限
    ○ 少数の開発組織でありながら、決められた期間内にサービスをリリースする必要性があった。
    ● 既存システムの管理コストの増大
    ○ デプロイシステムのコード量が増加し、保守コストが増えた。
    ● 新アプリケーションとサービスの増加
    ○ リアーキテクチャのサービスの洗い出しによって、サービス数が増えた。また、グローバルに耐えうるシステム
    構成が必要であった。

    View full-size slide

  6. 我々が挑むマルチリージョン戦略のシステム

    View full-size slide

  7. GCPサービス

    View full-size slide

  8. Google Kubernetes Engine Autopilot
    ● アプリケーションに専念
    ○ Googleがインフラストラクチャを管理するため、エンジニアはアプリケーションに専念。
    ● 運用の複雑さの軽減
    ○ Autopilot は、ノード、スケーリング、スケジューリングのオペレーションを継続的にモニ
    タリングする必要がないため、プラットフォームの管理オーバーヘッドを削減。
    Resilire では、少数の開発組織のため運用の簡素化された Autopilot が適している。

    View full-size slide

  9. マルチクラスタ Ingress
    ● グローバル負荷分散
    ○ ユーザートラフィックを最も効率的で効果的なクラスタやリージョンに自動的にルーティン
    グ。
    ● リージョナルな冗長性と可用性の向上
    ○ 複数のリージョンにクラスタを展開することで、リージョナルな冗長性と高可用性を実現。
    Resilireではグローバル展開を想定しているため、有効な手段。

    View full-size slide

  10. Managed Anthos Service Mesh
    ● クラスター間をサービスメッシュを設けることで、クラスター間通信、可用性の向上、トラフィッ
    ク分散、サーキットブレイカーを行うことができる。
    ● Resilireでは、クラスタ間の負荷分散、BCP対策として活用。

    View full-size slide

  11. 東京クラスタ 大阪クラスタ
    ??クラスタ
    海外

    View full-size slide

  12. Spot Pod for Autopilot
    vCPU, Memory当たり1/3程度の料金で使える。
    注意点: 標準の Pod の実行でコンピューティングリソースが必要になると、GKE に
    よって強制削除される場合がある。

    View full-size slide

  13. apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: argocd-repo-server
    spec:
    template:
    spec:
    containers:
    - name: argocd-repo-server
    nodeSelector:
    cloud.google.com/gke-spot: 'true'
    terminationGracePeriodSeconds: 25
    設定例

    View full-size slide

  14. リソースリクエスト
    Autopilotでのノードのインスタンスタイプ/ノード数は実際にクラスタにデプロイ
    されているPodに設定されたRequest量をもとに決定されている。
    明示的にリソース量をマニフェストで指定していない場合、1コンテナあたり
    0.5 vCPU, 2GiB Memoryが割り当てられる。

    View full-size slide

  15. 注意点
    Autopilotでは1Podあたり最低 CPU: 250m メモリ: 0.5 GiB を割り当てないといけない。
    それより小さい値を指定していても、値が変わらないようになっている。

    View full-size slide

  16. apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: argocd-repo-server
    spec:
    template:
    spec:
    containers:
    - name: argocd-repo-server
    resources:
    requests:
    cpu: 250m
    memory: 512Mi
    設定例

    View full-size slide

  17. まとめ
    ● GKE Autopilotを使うことによって、複雑な管理コストを減らして、アプリケーションに専念。
    ● マルチクラスタIngress, Anthos Service Meshを使うことで、BCP対策を意識したり、グローバルユー
    ザーを意識したレイテンシの改善を行うことができる。
    ● Spot Pod,リソースリクエストを使うことで、簡単な編集でコストを削減してGKEを運用することができる。

    View full-size slide

  18. ご清聴ありがとうございました。

    View full-size slide