📝

Google Cloud Next Tokyo '24の事例セッションを個人的にピックアップ

2024/09/15に公開

はじめに

8月に開催された、Google Cloud Next Tokyo '24のセッション動画が、以下で公開されていました。

https://cloudonair.withgoogle.com/events/next-tokyo-24

個人的に気になったセッションを備忘録的にまとめました。

DAY 1 セッション

アプリケーション開発

Google Cloud モニタリング ベスト プラクティス

Ubie株式会社 坂田 純 氏

  • GMP(Google Cloud Managed Service for Prometheus)の紹介
    • Prometheus
      • オープンソースのモニタリング/アラーティングツール
      • ワークロードからメトリクスをスクレイプする
        • エージェントからPUSHする形ではない
        • 各ワークロードはPrometheusの形式でメトリクスを出せば良い
      • 課題
        • ストレージ:長期保存によるストレージ増加、クエリの実行パフォーマンス
        • スケーリング:単一構成ではスクレイピング、メトリクスの収集機能などに限界
    • Google Cloud Managed Service for Prometheus(GMP)
      • Cloud Monitoring(Google Cloudのネイティブの監視ソリューション)が直接サポートする Prometheus
      • ほぼ無限にスケールするデータベース、メトリクスの収集機能
      • クエリ言語はPromQL
        • Cloud Monitoringの全機能でPromQLが利用可能
        • Google独自のMQLは無くなっていく模様
      • 利用
      • 可視化
        • Ubie社ではGrafanaを利用
          • Cloud MonitoringのSLO Monitoringも可視化可能
      • コスト対策
        • 不要なメトリクスはmetricRelabelingでdropさせることが可能

データ分析

近畿日本鉄道における鉄道データを用いたコスト最適の為のデータ統合、可視化の取組み

近畿日本鉄道株式会社 佐藤 広和 氏
株式会社データフォーシーズ 坂本 唯史 氏

  • データ活用の推進
    • 既存保有のデータ棚卸~分析で成果を出すことで、データ活用文化を醸成
  • データ活用プロジェクト事例
    • 券売機プロジェクト
      • 各駅・コーナー(駅の出口)ごとの券売機の適正台数、適正配置の決定
      • 担当者のために、Excelで対応
        • 削減台数を入力することで、混雑状況が変化するようなシミュレーションシートを作成
    • 改札機プロジェクト
      • 各駅・コーナー(駅の出口)ごとの改札機の適正台数の分析
        • IC専用 / IC・磁気カード両用機器の割合
        • 1分単位の混雑度から分析
      • データボリュームが3億件以上で、データ基盤の準備が必須
      • 構成・フロー
        1. 近鉄側でデータを収集・とりまとめ
        2. Googleドライブに格納
          • スポットのプロジェクトのため、手動
        3. Pythonで整形し、Cloud Storage・BigQueryに格納
        4. LookerStudioで可視化
      • LookerStudio活用のメリット
        • シミュレーションの試行錯誤はBIで。都度のレポーティングが不要に
          • パラメータ機能によって、BigQueryのWHERE句で指定した変数を動的に連動可能
        • KPIをすぐに作成 / 確認
        • 必要なグラフをすぐに追加し、URLリンクやPDFで関係者へ迅速に連携可能

データベース

大規模決済中継システムにおける Cloud SQL から Spanner への移行と苦労

株式会社NTTデータ 鳥海 克成 氏
株式会社NTTデータ 松井 僚太郎 氏

  • Cloud SQL から Spanner へ移行
    • Omni Payment Gatewayのデータベース部分
    • なぜ移行するか
      • メンテナンス停止の回避
        • Cloud SQLのメンテナンス期間中は要サービス停止。都度夜間作業とお客様への通知が必要
      • 決済の大幅増加見込み
        • TPSが現状から50倍増加する予定
      • 可用性要件
        • サービス全体で99.99%の可用性が必要
        • アーキテクチャ全体をマルチリージョン化
          • (移行時はソウルリージョンでマルチにしていたが、デュアルリージョン構成がGAされた模様)
    • なぜCloud SQLを使用していたか
      • 初期方針はマルチクラウドを想定。MySQLを利用
      • コスト面で、サービス開始時は高額なDBが利用できなかった
      • 可用性の要件が、初期は99.95%で十分だった
    • 気を付けたポイント
      • 移行前
        • テーブル構造
          • ホットスポット回避
            • 時系列データが含まれているULIDを、反転してホットスポット回避
          • セカンダリインデックスを最低限に
            • 挿入がメイン用途なので、インデックスは最低限に
              • 時間系インデックスは削除
        • クエリ・検索方針
          • Spannerは簡単な検索のみ
            • 主キー、セカンダリインデックスでの簡単な検索のみ
          • 複雑な検索はBigQueryに任せる
            • 時系列データなど
              • shardIDで時系列検索に対応できるが、余計なインデックスを張らないようにするため、不採用
          • 検索条件でBigQueryを検索。取得した主キーでSpannerから全データ取得
        • 非機能要件
          • コスト算出
            • 商用環境で利用予定のマルチリージョンで検証
            • 本番と同程度のTPSで負荷をかけて、ノード数とストレージ量などを算出
            • 同じ負荷でも、シングル/マルチリージョンではCPU利用料・必要ノード数が変わる
          • レイテンシ
            • 検索は、MySQLと比較してかなり遅い(簡単な検索で十数ms)
            • マルチリージョンだと、シングルリージョンからさらに1.5倍
      • 移行中
        • データ整合性を担保 & ダウンタイムゼロ
          • Phase.1 新規のSpannerに保存するマイクロサービスを作成。メッセージ送り先に追加し、既存のCloud SQLとSpannerの両方に保存される状態
          • Phase.2 Phase.1以前のCloud SQLのデータをDumpして変換、Spannerに移行
            • データ変換サービスには、大量にメモリが利用できるBatchを採用
          • Phase.3 不整合データを検知して補正する仕組みを構築
            • 移行中に更新されるレコードへの対処
            • 移行完了後も不整合がない確認に利用
          • Phase.4 後続の処理をSpanner側のマイクロサービスに繋ぎ変え
            • 加盟店ごとに変更し、カナリアリリース的に変更
      • 移行後
        • リソース監視
          • Query Insights
            • クエリごとのCPU使用率、実行回数、レイテンシが見える
              • アプリケーション側でタグを付与すれば、タグごとに集計可能
            • ロックの分析情報、トランザクション分析情報など、色々なダッシュボードが用意されている
    • その他苦労点
      • 分散トランザクションの性質によるロック
        • 性能試験時に、想定外のロック待機発生
        • 原因
          • 1つのトランザクション内でセカンダリインデックスを含む複数テーブルへの操作を行う
          • コミット要求時にすべてのテーブルに確認を取り、すべてOKならコミットを実行する作り
            • Spannerがホットな状態だとデータが更新中の事があり、次のコミットで待機が発生
        • 減らすためにはしっかりウォームアップ
          • 性能試験前に1時間ほどかけてウォームアップ
            • 徐々にトラフィックを増やして負荷をかける
          • 本番相当のTPS/QPSで行う
          • PKのキーレンジをそろえる
      • セッション管理にはセッションプールを利用
        • セッション作成には数百msかかる
        • セッションプールの設定項目あり。GoとJavaのクライアント側で設定可能
        • プールされているセッションも、リソースへの影響は極小
          • 内部的にセッション確保のため、50分に一度、Select 1を実行している模様
        • セッション回りの指標は、OpenTelemetryによりモニタリング可能

インフラストラクチャ

Google Cloud VMware Engine を起点とした JALインフォテックのインフラ改革プラン

株式会社JALインフォテック 瀬崎 健太郎 氏
株式会社JALインフォテック 爰野 寛太 氏
Google Cloud 栃沢 直樹 氏

  • Google Cloud VMware Engine (GCVE) とは
    • オンプレミスで運用しているVMware vSphere ベースの VM をそのままクラウド移行(リホスト)
      • 「クラウドには移行したいが、イメージ変換が難しい」というニーズに適う
    • GCVEの移行を足掛かりとして、リプラットフォームやリアーキテクトが望ましい
  • Google Cloud VMware Engine のメリット
    • Google Cloud ファースト パーティ サービスである
      • Googleクラウドコンソールで操作可能
    • vCenterでの運用が継続可能
    • vCenter 管理者権限相当も利用可能
    • Google Cloudサービスとシームレスに統合
    • SLAが99.99%
    • オンプレミスとの接続が用意
      • 既にオンプレミスとVPCとがつながっていれば、専用に別途接続は不要
        • ピアリングやカスタムルートの設定で可能
    • Hybrid Subnetsで、GCEインスタンスに変換しつつ同一サブネットで移行も可能(プレビュー)
      • IPアドレスが変えられないVMなど
    • その他拡張機能など
      • 外部データストアマウントの拡張
        • データストアだけ拡張したい際の選択肢
          • Filestore
          • NetApp Volume
          • VMware Engine Storage Only Node
            • GCVE vSAN クラスタ に対してストレージ専用ノードをデプロイ(リーズナブルに利用可能)
      • GCVE Protected
        • バックアップソリューション
      • ライセンス持ち込み可能
        • VMware ソフトウェアライセンスはBroadcom社と契約
        • ESXiホストやインフラ、サポートなどはGoogle Cloud
        • (ライセンスがない場合は、すべてGoogle Cloudより購入)
  • Lift & Transform 事例
    • NW 構成パターンを複数用意し、アプリによって選択可能とした
      • GCVE 移行 (Re:host)
        • GCVE移行専用のPrivate Cloud
      • モダナイゼーション (Re:platform)
        • M2VMなどで、Google上のVMに移行するためのVPC
      • モダナイゼーション (Re:architect)
        • Google Cloudのサービスに変換して利用できる環境

マイグレーション サービスを活用して VM の IP アドレスもそのまま Google Cloud へ移行した話

日本特殊陶業株式会社 南川 慎一 氏
Google Cloud 堂ノ脇 梓 氏

  • 日本特殊陶業株式会社での課題や解決策
    • 移行を検討した際の現状と課題
      • オンプレミス仮想基盤の老朽化 / リソース枯渇
        • 年単位で対応、リソース引き渡し相手の選別
      • リフトへの技術的課題
        • 昔からのシステムなので、担当者もわからない
        • ベンダーもいなくなっている
        • IPをハードコーディング
      • Google Cloud の知識 / ナレッジ不足
    • 最初のチャレンジ
      • GCVE(Google Cloud VMware Engine)でリフト
        • 期待したほどリフトせず
      • Google側より、M2VM + Hybrid Subnet を使った移行方式を提案
    • M2VM + Hybrid Subnetの検証
      • Hybrid Subnet の検証
        • 本利用のVPCと接続し検証
          • Google Cloud -> オンプレミスの全通信が不通に
      • Hybrid Subnet の再検証
        • Step別に分けて検証
          • 1回目と同事象発生も、すぐに解決
      • M2VM との検証
    • Google Cloud -> オンプレミス不通の詳細
      • 原因
        • Cloud Router へのアドバタイズ設定追加
        • Google Cloud側に、(オンプレミスと同じ?)サブネット「10.x.x.0/22」を作成
          • 10.x.x.0/22 の IP アドレスは”Google Cloud 内に存在する”とCloud Router が判定し、オンプレ側にルーティングしない
      • 解決策
        • BGP設定の中に「カスタム学習ルート」という設定
          • 「10.x.x.0/22」を設定すると、Google Cloudにない場合はオンプレ側を見るようにできる
    • 移行作業の流れ
      • 事前準備
        • ユーザ説明&作業日調整
        • 作業前日までに、M2VM にて移行対象サーバのレプリケーション実施
          • マストではないが、当日の停止時間が短くなる
            • 実施していた場合は1時間程度。未実施の場合は倍以上
      • 作業当日(大体半日程度)
        • オンプレ L3 スイッチの Static Route 追加
        • Cloud Router へのアドバタイズ設定追加
          • 新規サブネットの場合はサブネット追加とカスタム学習ルート追加
        • M2VM を使った移行実施
        • アプリケーションの動作確認
        • Backupや監視設定、等々
    • 実施しての課題
      • 停止が必ず必要。無停止のシステムはどうするか
      • IPアドレスでは、オンプレにあるのかGoogle Cloudにあるのか判別できず
      • NW 構成上、Hybrid Subnet が難しいセグメントがいくつもあることが判明
        • 経路上のすべてのスイッチにProxy ARPの設定が必要だが、それをOFFにしている環境がある
      • DB等のライセンス問題(Oracleなど)
        • ESX単位でライセンスを購入しており、GCE用に追加でライセンス費用が掛かる
      • 30 TB 超えのサーバ
        • レプリケーションが失敗する(原因不明)
        • M2VMのカットオーバー機能の完了に9時間以上かかる
      • 移行先 Zone を一つにしていたためリソース枯渇

DAY 2 セッション

データ分析

使われないダッシュボードを産まないためのプロジェクト マネジメント

Sansan株式会社 坂口 遥 氏

  • ダッシュボード構築におけるよくある失敗
    • できるもの
      • 積み上がる使われているかわからないダッシュボード
      • 積み上がる似たようなテーブル
      • それに伴い、肥大化する運用保守コスト
    • それぞれ、良くしようとしている
      • 現場ではダッシュボードを使って何かしたいという思いはある
      • ダッシュボード企画者は良いものを届けようと努力している
      • 実装者は依頼にスピーディーに答え、依頼内容を忠実に実装する
    • 容易に負債化してしまう理由
      • BI ツールの発展によってダッシュボードを作るハードルは低下
      • 一方、ダッシュボードそのものや裏側のデータライフサイクルは、サービスやプロダクトよりも長いことがある
        • 売るサービス・プロダクトが変わっても、モニタリングする指標は一定で普遍的
    • こうならないために
      • ダッシュボードはデータと合わせた一つのプロダクト と捉え、ソフトウェア開発の御作法などを取り入れていく
  • ダッシュボード構築を成功に導くKey Factor
    • ステークホルダー マネジメント
      • キーマンの見極めと巻き込み
        • 意思決定者、エバンジェリスト、データ利活用に関心が高い人
      • トップダウンアプローチが速い
        • 偉い人に気に入られたら勝ち
        • 「その意思決定はどのダッシュボードを見て決めたの?」と、マネージャーがデータを見る文化の浸透に寄与
    • アジャイル ソフトウェア開発
      • Quick and Dirty を許容し、PDCA を高速で回し、不確実性を極小化
        • インサイトが得られるダッシュボードを突き詰める
        • 序盤はビジュアライズは不要
        • 表形式だってよい
    • ダッシュボードのアウトカム定義
      • ユーザーのアクションに繋がっているか
      • アクションから、アウトカムが生み出せているか
        • アウトカムが生み出せていないのであれば改善の余地あり
      • 作った後もブラッシュアップ
        • ユーザーとの定期的な会話、フィードバック
        • どんなアクションに、アウトカムにつながるのか
          • 「あれが見たい、これが見たい」で作ってはいけない
  • ダッシュボード構築における5 つの Phase
    • Phaseに、ツールは異なっていてもよい。最適なツールを用いる
    • 柔軟かつ保守性の高いバックエンド群を選定
      • Phase.0 探索、現状調査
        • 想定ユーザーにヒアリング
          • 何かしらの数値を見て意思決定をしている
          • 現場の(難解な)表などにこそ、大きなヒントあり
          • 現場の数値化・見える化している業務を観察
            • どこからデータを持ってきている
            • どこに張り付けている
            • どんな集計をしている
            • どう使われている
              • 誰かに見せている
              • 施策の検討に使われている
        • 想定ユーザーの、周辺の方々にもヒアリング
          • 想定ユーザの前工程、後工程にかかわっている方々の情報も重要
          • 前・後もカバーできるような種が見つかることも
      • Phase.1 要求定義、要件定義
        • 決めるべき要素
          • Why/So What:見た上でどんなアクションを取るのか?
          • Who:誰が見るのか?
          • When:いつ見るのか?
          • How Much:どれくらいの頻度で見るのか?
          • How:どのような形で見るのか?
          • What:何の数値を見るのか?
        • 以下のケースでは、上記6つのケースは異なる
          • 毎日の朝会で、営業活動をしているメンバーの行動量を把握し、芳しくないメンバーにフォローしたい
          • プロダクトが正常に動作していることを確認したい、異常値を把握したい
          • プロダクトの方向を確認するために、全体の利用状況を把握したい
        • 6つの要素は、最初からきれいに定義する必要はない
      • Phase.2 PoC 開発、仮説検証
        • Quick and Dirty を一定許容し、高速で PDCA サイクルを回していく
        • このPhaseは、Google Sheets や Looker Studio など変更が容易なものを採用し、仮運用する
        • 中間層のSQLは可読性高く
          • 一旦巨大でもよし
      • Phase.3 試運転、データ モデリング開始
        • ユーザーからフィードバックをもらいつつ、DWH の要件を見極めていく
        • データモデリングを行うことによって、ELT の柔軟性/保守性が増していく
      • Phase.4 本番稼働、保守
        • 本番稼働する前に、データ加工の責務と範囲を明確にする
        • 可能な限り、データの加工処理は ETL/ELT に寄せた方が保守性が高くなる
          • Looker 側で大きなSQLを許すと、(どこで加工されたかわからなくなり)見通しが悪くなる

おわりに

AWSと同様にAIが多かった印象ですが、自分の興味は移行とかデータ周りなので、そちらばかりのまとめになってしまいました。
この記事がどなたかのお役に立てれば幸いです。

Discussion