Skip to main content

Azureでのデプロイ

デプロイ前の準備

必要なリソース

  • 製品のデプロイ専用の新しいサブスクリプションを用意し、このサブスクリプションでOpenAI関連のリソースを作成できることを確認する。
  • Azure ADアカウント。このアカウントはサブスクリプションのContributor以上の権限を持っていること。
    • 既存のAADアカウントをゲストとしてテナントに追加して権限を付与することも、新たにデプロイ用のAADアカウントを作成することも可能。
    • このアカウントはAADアプリケーション登録を作成および設定できる(例:Application Developerロールを付与)。

必要なツール

推奨される知識

製品デプロイアーキテクチャおよびリソースリスト

製品デプロイアーキテクチャ

リソースリスト & 推奨設定

tip

異なるシナリオや使用頻度に応じて、サーバーの負荷状況が異なるため、実際の負荷状況に応じて調整が必要です。

用途説明

サービスタイプカスタム名用途説明
Azure Front DoorCDNコンテンツ配信ネットワーク、静的リソースのアクセスを高速化
Azure Front DoorAPI AccelerationAPI加速、APIアクセスの高速化
API ManagementAPI EndpointAPI管理エンドポイント、APIの管理
App ServiceAPI ServiceAPIサービス、APIリクエストの処理
App ServiceJob Serviceジョブサービス、高負荷タスクや定期タスクの実行
Azure OpenAI ServiceLLM-Primary主な大規模言語モデル、CopilotのQ&Aの主モデル(例:gpt-4o)
Azure OpenAI ServiceLLM-Secondary予備の大規模言語モデル、ドキュメント処理の補助モデル(例:gpt-4o-mini)
Azure OpenAI ServiceEmbeddingベクトル埋め込み、ベクトルデータの処理
Azure OpenAI ServiceText to Imageテキスト生成画像、テキスト生成画像タスクの処理
Azure OpenAI ServiceWhisper音声認識、音声認識タスクの処理
Azure AI Document IntelligenceDocument OCRドキュメントOCR認識、ドキュメントOCR認識タスクの処理
Azure AI servicesDocument Translateドキュメント翻訳、ドキュメント翻訳タスクの処理
Azure SQL DatabaseDataデータストレージ、主データベース、システムの大部分のデータを保存
Azure Database for PostgreSQLIndexインデックスデータベース、主にドキュメント関連のインデックスデータを保存
Azure Cache for RedisCacheキャッシュサービス、データのキャッシュ
Storage AccountsFilesファイルストレージ、ユーザーがアップロードしたファイルを保存
Key Vault-キーマネジメント、キーの保存

製品デプロイの実施

デプロイ手順

  • デプロイの実行
    • AADアプリケーション登録の作成
    • Terraformデプロイパラメータの設定
    • Azureアカウントのログイン、サブスクリプションの切り替え
    • デプロイの実行
    • AADアプリケーション登録の更新
  • リソースパッケージのアップロード、システムの起動
    • フロントエンドデプロイパッケージ、フォントパッケージ、アイコンリソースのインストール
    • ライセンスのインストール
    • システムの起動、正常に起動したかの確認
  • システムチェック
    • 管理者がシステムにログイン
    • システム機能が正常に動作するかのテスト
  • 設定の完了
    • システム設定の変更
    • Copilot設定
    • スペース設定
    • ドキュメントのアップロードテスト

Terraformデプロイ

AADアプリケーション登録の作成

Azure Entra IDでAADアプリケーション登録を作成し、client_idを取得

命名規則:appreg-[app-name]-[environment]

例:appreg-serviceme-trial

Terraformデプロイパラメータの設定

tip

最新のデプロイパッケージ(Terraformデプロイパッケージ、フロントエンドデプロイパッケージ、フォントパッケージ、アイコンリソース)を製品チームに問い合わせてください。

TerraformデプロイパッケージのREADME.mdファイルに従って、variables.tfのパラメータを設定

Azureアカウントのログイン、サブスクリプションの切り替え

デプロイパッケージの作業ディレクトリでpowershellを開き、以下のコマンドを実行してAzureにログイン、TENANT_IDは顧客が提供するテナントID

Global Cloud ログインコマンド

az login --tenant TENANT_ID

Global Cloud以外の場合、--cloudパラメータを指定する例:

China Cloud ログインコマンド

az login --tenant TENANT_ID --cloud AzureChinaCloud

サブスクリプションIDを設定、[subscriptionId]は顧客が提供するサブスクリプションID

az account set --subscription "[subscriptionId]"

現在のサブスクリプションを確認し、正しいサブスクリプションにログインしていることを確認

az account show

デプロイの実行

まず、実行予定の変更が予期通りであるかを確認

terraform plan
+ 新規リソースの追加
- リソースの削除
~ リソースの更新

問題がなければ、これらの変更を正式に適用。Terraformは再度変更内容を確認し、yesと入力して確認

terraform apply

デプロイが完了するまで待機(約20〜60分、APIMのデプロイ時間が長い)

エラーが発生しなければ、Terraformは作成されたリソース数を表示し、デプロイが成功したことを示す。

エラーが発生した場合、エラーメッセージに従ってトラブルシューティングを行う。一般的な問題は以下の通り:

  • 実行中にnetwork error、request timeoutなどのエラーが発生
    • Terraform applyを再実行することで解決することが多い
  • 実行中にResource already existsなどのエラーが発生
    • Azure Portalで該当リソースが既に存在するか確認し、存在する場合はAzure Portalで削除(Purge Protectionがあるリソースは専用のaz cliコマンドで削除が必要)
  • OpenAIリソースの作成に失敗し、quota不足のエラーが発生
    • 該当RegionのOpenAIリソースのクォータが十分か確認し、不足している場合は他のRegionに変更

AADアプリケーション登録の更新

APIMのURLをAADアプリケーション登録に更新(ルール:$APIM_GATEWAY_URL + "/"、例:https://xxx-apim.azure-api.net/)、access token、ID tokenを選択

リソースパッケージのアップロード、システムの起動

フロントエンドデプロイパッケージ、フォントパッケージ、アイコンリソースのインストール

以下のリソースをAzure Storage Accountの対応するコンテナにアップロード。Azure Storage Explorerまたはaz cliコマンドでアップロード可能

  • フロントエンドデプロイパッケージ、static-siteコンテナにアップロード、config.jsファイルを上書きしないよう注意
  • フォントパッケージ、backend-core-fontsコンテナにアップロード
  • アイコンリソース、iconsコンテナにアップロード

ライセンスのインストール

ライセンスファイルをAzure Storage Accountのstatic-siteコンテナにアップロード

システムの起動、正常に起動したかの確認

variables.tfファイルで変数enable_app_servicetrueに更新

再度terraform applyコマンドを実行してアプリケーションサービスを有効化

api_app_service、scheduler_app_service、pythoncore_app_serviceのMonitorログをそれぞれ確認し、正常に起動しているか確認

tip

起動に失敗した場合、エラーログの情報に基づいてトラブルシューティングを行う。

システムチェック

管理者がシステムにログイン

APIMのURLを通じてシステムにログイン。デフォルトの管理者アカウントはservicemeadmin、デフォルトパスワードはデプロイパッケージのREADME.mdファイルに記載。

システム機能が正常に動作するかのテスト

設定の完了

Copilot設定

CopilotのQ&Aの正確性および返信内容の形式は、プロンプトおよび関連パラメータに大きく依存します。

以下のリンクには、Copilot設定の例がいくつか提供されています。これを基に顧客のシナリオに応じて修正してください。

Copilotを最終ユーザーに提供する前に、関連スキルが正しく呼び出され、Q&Aの正確性および返信内容の形式がユーザーのニーズを満たすことを確認するために十分なテストを行う必要があります。

参考:システム設定のベストプラクティス

スペース設定

スペースおよびドキュメント属性の設定は、前処理段階でのドキュメントのセグメンテーション戦略に影響を与えます。最適なドキュメントの正確性を達成するために、異なる状況に応じて最適な設定を選択してください。

tip

設定を調整した後、関連ドキュメントのインデックスを再生成することを忘れないでください。そうしないと、設定は新しくアップロードされたドキュメントにのみ適用されます。

参考:システム設定のベストプラクティス

ドキュメントのアップロードテスト

いくつかのサンプルドキュメントまたは顧客提供のドキュメントをシステムにアップロードし、前処理が完了した後、CopilotのQ&Aを通じてテストを行います。

システム設定の変更

必要に応じてシステムのロゴ、システムタイトルを変更します。