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

DTD_TerraformによるLLMチャットボット用Google Cloudインフラ構築

Avatar for BrainPad BrainPad
September 25, 2025

DTD_TerraformによるLLMチャットボット用Google Cloudインフラ構築

Avatar for BrainPad

BrainPad

September 25, 2025
Tweet

More Decks by BrainPad

Other Decks in Technology

Transcript

  1. 第五回 DEU TECH DRIVE:Crossing ML, Data & App Terraform による

    LLM チャットボット用 Google Cloud インフラ構築 複数案件への展開を見据えたモジュール設計例 2025 年 9 月 25 日
  2. ©BrainPad Inc. Strictly Confidential 2 データリンジニアリングユニット プラットフォーム開発 津久井 佑樹 2020

    年にブレインパッドに新卒で入社。 入社後、DWH構築や分析システム構築など複数の案件に従事。 クラウド基盤、データベース、データパイプラインなど幅広い領域で要件定義から設計・開発・運用まで担当。 好きなプログラミング言語はPython。 自己紹介
  3. 第五回 DEU TECH DRIVE:Crossing ML, Data & App 2025 年

    9 月 25 日 Terraform による LLM チャットボット用 Google Cloud インフラ構築 複数案件への展開を見据えたモジュール設計例
  4. 4 ©BrainPad Inc. Strictly Confidential 発表概要 発表の概要と共有する知見は以下となります。 本日の発表について • 対象者:

    インフラエンジニア、DevOps エンジニア、Terraform 初学者 • 目的: 複数案件への展開を見据えた Terraform モジュール設計例の共有 得られる知識 • 脱属人化を実現するためのモジュール設計 • Terraform 初学者でもデプロイできる手順の実装方法 • 迅速な案件立ち上げのためのテンプレート化
  5. ©BrainPad Inc. Strictly Confidential 5 1. プロジェクト背景と複数案件展開の課題 2. インフラ設計 3.

    モジュール設計 4. ディレクトリ設計 5. デプロイ手順 6. まとめ Agenda
  6. 7 ©BrainPad Inc. Strictly Confidential プロジェクト背景および構築対象システム LLM 需要の高まりにより、その活用・導入案件も増加しています。 例えば以下のようなチャットボットアプリケーションの導入案件があげられます 案件目的

    • LLM による問題発生時の応答自動化や導入・管理・運用コストの削減 • 現在黎明期にある LLM の効果検証 構築対象システム • チャットボットアプリケーション: LLM を活用した対象システムで RAG (Retrieval-Augmented Generation) によるドメイン知識の取り込みが可能 • Google Cloud: 統一されたクラウド基盤と Vertex AI による LLM, RAG のコア機能の提供 • Web アプリとしての実装: インターネットを介したブラウザからのアクセスを想定し、SSL 認証や IP 制限によりセキュリティを考慮 • 3 環境対応: dev/stg/prd のような段階的なデプロイ
  7. 8 ©BrainPad Inc. Strictly Confidential LLM 需要増加に伴う複数案件展開の課題 LLM 需要増加に伴い複数案件に迅速に対応する必要性も増加しました。 実際に展開するにあたり以下のような課題を確認しました

    課題認識 • インフラ知識の属人化: 既にチャットボットは開発済みだがインフラ設計やデプロイ方法が属人化しており案件展開を妨害 • アサイン可能な人員の制限: 迅速な案件展開にインフラに精通したエンジニアを常にはアサインできない 解決目標 • インフラのテンプレート化: 複数案件で流用できる汎用的な実装 • 脱属人化: Terraform を用いた IaC (Infrastructure as Code) による共通したデプロイ方法の確立とドキュメント整備 • デプロイ手順の簡易化:インフラや Terraform 知識が無くとも案件ごとに固有の変数をまとめた特定のファイル変更のみでデプロイ可能
  8. 10 ©BrainPad Inc. Strictly Confidential インフラ設計図 Google Cloud を用いた LLM

    チャットボットアプリケーションのインフラ設計は下図になります このスライドのGCPアイコンは gcp-icons-for-plantuml(MIT License)を利用しています。Copyright © davidholsgrove
  9. 11 ©BrainPad Inc. Strictly Confidential インフラ設計詳細 各リソースの詳細は下表になります カテゴリ リソース名 Google

    Cloudサービス 役割・説明 ネットワーク DNS Cloud DNS A レコードとしてドメインと IP アドレスをマッピング ネットワーク ロードバランサ Cloud Load Balancing 負荷分散、SSL 認証、フロント/バックエンドのルーティング セキュリティ IP制限 Cloud Armor ホワイトリスト形式で IP アドレスによるアクセス制限 ネットワーク IPアドレス Virtual Private Cloud グローバル IP アドレス予約 ドメイン ドメイン Cloud Domains ドメイン発行 セキュリティ SSL証明書 Certificate Manager SSL 証明書発行、自動更新 コンピュート アプリフロントエンド Cloud Run Webアプリ、UI/UX処理 コンピュート アプリバックエンド Cloud Run API 処理、LLM 連携 ストレージ ファイルストレージ Cloud Storage RAG 用の入力データ、静的ファイル保存 データベース データベース Firestore 会話履歴、ユーザログ保存 AI/ML LLM検索エンジン Vertex AI Search RAG の実装 (文書検索、コンテキスト取得) AI/ML LLM Vertex AI チャット応答生成、自然言語処理
  10. 13 ©BrainPad Inc. Strictly Confidential Terraform 管理するリソース 前述のインフラを Terraform を用いて構成します。管理対象となるリソースは以下です。

    一部管理対象外となるリソースがあるため後述します カテゴリ リソース名 Google Cloudサービス 役割・説明 ネットワーク DNS Cloud DNS A レコードとしてドメインと IP アドレスをマッピング ネットワーク ロードバランサ Cloud Load Balancing 負荷分散、SSL 認証、フロント/バックエンドのルーティング セキュリティ IP制限 Cloud Armor ホワイトリスト形式で IP アドレスによるアクセス制限 ネットワーク IPアドレス Virtual Private Cloud グローバル IP アドレス予約 セキュリティ SSL証明書 Certificate Manager SSL 証明書発行、自動更新 コンピュート アプリフロントエンド Cloud Run Webアプリ、UI/UX処理 コンピュート アプリバックエンド Cloud Run API 処理、LLM 連携 ストレージ ファイルストレージ Cloud Storage RAG 用の入力データ、静的ファイル保存 データベース データベース Firestore 会話履歴、ユーザログ保存 AI/ML LLM検索エンジン Vertex AI Search RAG の実装 (文書検索、コンテキスト取得) AI/ML LLM Vertex AI チャット応答生成、自然言語処理
  11. 14 ©BrainPad Inc. Strictly Confidential Terraform 管理外のリソース 以下のリソースは Terraform の管理対象外となります。

    デプロイに必要な権限や個人情報が含まれるものが該当します カテゴリ リソース名 Google Cloudサービス 管理対象外の理由 デプロイ要件 Google Cloud アカウント - デプロイ先となる Google Cloud のアカウント デプロイ前に手動での作成が必要 デプロイ要件 デプロイ権限 IAM Terraform のデプロイに必要なサービスアカウントや IAM ユーザ デプロイ前に手動での作成が必要 デプロイ要件 API IAM Service Account Credentials API など Terraform のデプロイに必要な API デプロイ前に手動での有効化が必要 デプロイ要件 デプロイリソース管理 Cloud Storage Terraform によるデプロイ状況を管理する state ファイルの保存先 デプロイ前に手動での作成が必要 ドメイン ドメイン Cloud Domains ドメイン発行に個人情報が必要 個人情報をテキストに保存して管理するのはリスク Terraform 管理対象外とし、Google Cloud コンソールの利用を推奨
  12. 17 ©BrainPad Inc. Strictly Confidential 変更箇所 1: variables.tf の例 variables.tf

    には企業名や IP アドレス、Terraform 管理外のリソース名などが含まれます。 また、同様のファイルを複数用意することで dev, stg, prd の 3 環境の段階的なデプロイに対応します
  13. 18 ©BrainPad Inc. Strictly Confidential 変更箇所 2: terraform.tf の例 terraform.tf

    にも variables.tf と同様の Terraform 管理外リソース名が含まれます。 しかし、他の .tf ファイルと異なり variables.tf を参照できない仕様のためここも要変更です
  14. 20 ©BrainPad Inc. Strictly Confidential デプロイ前作業 Terraform デプロイの前作業として以下を順に実施します 1.Google Cloud

    アカウントを作成 2.Terraform 実行用のサービスアカウントを作成 3.作成したサービスアカウントにロールを付与 (roles/storage.admin など計 9 種類) 4.Google Cloud の API 有効化 (IAM Service Account Credentials API など計 3 種類) 5.State ファイル保存用 Cloud Storage バケット作成 6.デプロイ担当の IAM ユーザにロール付与 (roles/run.admin, roles/iam.serviceAccountTokenCreator) 7.前述の variables.tf と terraform.tf を変更
  15. 21 ©BrainPad Inc. Strictly Confidential デプロイ実施 ローカル PC の Google

    Cloud SDK にログインして以下のコマンドを順に実施してデプロイします。
  16. 25 ©BrainPad Inc. Strictly Confidential まとめ 本発表では LLM チャットボットアプリケーションを例に複数案件への展開を見据えた Terraform

    の モジュール構成例を紹介しました 紹介した Terraform モジュールによる効果 • 簡易かつ明示的な変更によるデプロイ作業の効率化と脱属人化 • 標準的なインフラ設計の構築 • 再利用可能なテンプレートの構築 技術的な学び • デファクトスタンダードが確立されていない Terraform のモジュール・ディレクトリ設計の検討と共有 • Terraform の詳細知識が不要なデプロイ方法の検討とドキュメント化 今後の課題 • 手動作業の残存: makefile など Terraform 以外のスクリプトによる自動化の余地 • インフラ設計やデプロイ手順の改善: 今後の案件展開を経て改善
  17. 26 ©BrainPad Inc. Strictly Confidential よくある質問 Q. なぜ Google Cloud

    を選択したのか A. Google 開発の LLM である Gemini (Vertex AI) と併用・連携するため Q. なぜ Gemini を選択したのか A. クラウド基盤との連携が容易かつ開発時点で最も優れた LLM を決めきれなかったため。 他の候補は Azure と連携できる chat-gpt など Q. POC 案件などで利用頻度が少ない場合もロードバランサは必要か A. トラフィックの負荷分散が不要でも IP 制限や SSL 認証の実施に必要