OCIでGPUアクセラレーテッドAIカメラ分析を実現

このリファレンス・アーキテクチャを使用して、GPU加速カメラおよびビデオ分析用のスケーラブルなOracle Cloud Infrastructureパターンを実装します。

このアーキテクチャは、スマートカメライベント、従来のRTSP IPカメラストリーム、モバイルまたはエッジデバイスイベント、アップロードされた画像、および短いビデオクリップを受け入れます。CPU負荷の高いストリーム処理をGPU推論から分離し、Oracle Cloud Infrastructure Queueを耐久性のある作業バッファとして使用し、ポリシーベースの決定を適用してから運用システムにアラートを配信します。

このソリューションは、単純なオブジェクト検出を超えて動作します。ロール、ゾーン、時間、信頼度、テナント・ポリシー、デバイス所有権、履歴イベント・パターンなどのコンテキストを使用して、ビジュアル・イベントが予想、疑わしい、緊急、または業務上関連しているかどうかを評価します。選択したフレーム、検出メタデータ、ルール結果およびダウンストリーム配信ステータスは、監査およびリプレイのために保持されます。

このアーキテクチャは次の場合に使用します。
  • カメラ、イメージまたはクリップのワークロードがバースティ
  • GPUのコストと使用率には、意図的な制御が必要
  • RAW検出のみでは不十分です
  • お客様は、トレーサビリティ、リプレイ、マルチテナント制御、または既存の運用システムとの統合を必要とします

開始する前に

次に概説するカメラ分析リファレンスアーキテクチャの要件を理解します。

リファレンス・アーキテクチャはモジュール型です。必要な取込みブロック、推論ブロック、決定ブロックまたは操作ブロックのいずれかを採用できます。

  • スマートAIカメラ、従来のIPカメラ、モバイルまたはエッジ・デバイス、アップロードされたメディア、またはその組合せを含むビデオ・ソースとトポロジを定義します。従来のIPカメラの場合、OCI側処理レイヤーへのVPN、TLSトンネルまたはアウトバウンド・カメラ・コネクタを計画します。
  • ユースケース、オブジェクト・クラス、ターゲット・レイテンシ、予想されるアラートの鮮度、保存要件、ヒューマン・レビューのニーズ、およびダウンストリーム統合ターゲットを確認します。
  • 本番のサービス・レベル目標(SLO)にコミットする前に、OCIリージョン容量、GPUシェイプの可用性、割当て制限、サービス制限およびネットワーク帯域幅を検証します。
  • 顧客ユース・ケースの推論モデルを選択して評価します。公開されたアーキテクチャでは、RT-DETR形式の検出とCLIP形式のコンテキスト分類を例として使用します。モデルの評価と選択は、顧客固有のままです。
  • テナント、サイト、カメラ、ユーザーおよびデバイスのアイデンティティ・ポリシーを確立します。デバイス登録、証明書の発行とローテーション、相互TLS (mTLS)、鍵管理、およびハードウェアがサポートする署名付きファームウェア検証を計画します。
  • 約50個のカメラフィード、720pストリームのベースラインサイジング仮定から開始し、推論のために毎秒1-5フレーム(FPS)でサンプリングします。カメラ数、解像度、FPS、モデル、およびレイテンシの要件に基づいてサイズを変更します。

アーキテクチャ

GPU加速AIカメラ分析用のアーキテクチャ・レイヤーおよびOCIサービスについて説明します。

次の表に、主要なアーキテクチャ・レイヤー、それらの実装に使用されるOCIサービス、および各レイヤーの目的を示します。

アーキテクチャ・レイヤー OCIサービス 目的
イングレスとキャプチャ OCI Load Balancer、OCI API Gateway、OCI Object Storage 再利用可能なカメラストリーム、クリップ、およびイメージバッチを受け入れます。
ストリーム処理 OCI Container Instances RTSPセッションの管理、H.264/H.265のデコード、フレームのサンプル、バッファ作業、セッションの再接続を行います。
デカップリング Oracle Cloud Infrastructure Queue バースト・トラフィックを吸収し、GPUコンシューマが制御されたペースで実行できるようにします。
GPU推説 OCI Compute GPUインスタンス・プール 顧客が選択したモデルとのオブジェクトの検出、分類、バッチ処理および時間的相関を実行します。
意思決定と運用 OCIファンクション、OCI通知、OCI Connector Hub、OCI Object Storage、OCIロギング、OCIモニタリング、OCI Vault、OCI Identity and Access Management ポリシーの適用、ダウンストリーム・システムの通知、エビデンスの保持、シークレットの管理、およびプラットフォームの監視を行います。

次の図は、このリファレンス・アーキテクチャを示しています(すべてのサービスが表されるわけではありません)。



コンテナ- ストリーム処理- アーキテクチャ-oracle.zip#GUID-A16027C3-0928-49C9-BA9D-BD5C6052E1A0

このアーキテクチャには、次のコンポーネントが含まれています。

  • OCI APIゲートウェイ

    Oracle Cloud Infrastructure API Gatewayでは、ネットワーク内からアクセス可能なプライベート・エンドポイントを使用してAPIを公開でき、必要に応じてパブリック・インターネットに公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可、およびリクエスト制限をサポートします。

  • OCIコンピューティング

    Oracle Cloud Infrastructure Computeでは、クラウドでコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプでコンピュート・インスタンスを起動できます。コンピュート・インスタンスの作成後は、セキュアにアクセスし、再起動し、ボリュームをアタッチおよびデタッチして、不要になったら終了できます。

  • OCIコネクタ・ハブ

    Oracle Cloud Infrastructure Connector Hubは、OCIのサービス間におけるデータ移動を調整するメッセージ・バス・プラットフォームである。コネクタを使用して、ソース・サービスからターゲット・サービスにデータを移動できます。コネクタでは、オプションで、ターゲット・サービスに配信される前にデータに対して実行するタスク(関数など)を指定することもできます。

    OCI Connector Hubを使用して、セキュリティ情報およびイベント管理(SIEM)システム用のロギング集約フレームワークを迅速に構築できます。

  • OCI関数

    Oracle Cloud Infrastructure Functionsは、フルマネージドのマルチテナントでスケーラビリティの高いオンデマンドのFunctions-as-a-Service (FaaS)プラットフォームです。Fn Projectのオープン・ソース・エンジンによって機能します。OCI関数を使用すると、コードをデプロイし、直接コールするか、イベントに応答してトリガーすることができます。OCI Functionsでは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナを使用します。

  • OCI Identity and Access Management

    Oracle Cloud Infrastructure Identity and Access Management (IAM)は、OCIおよびOracle Cloud Applicationsのユーザー・アクセス制御を提供します。IAM APIおよびユーザー・インタフェースを使用すると、アイデンティティ・ドメインおよびその中のリソースを管理できます。各OCI IAMアイデンティティ・ドメインは、スタンドアロンのアイデンティティおよびアクセス管理ソリューション、または異なるユーザー集団を表します。

  • インスタンス・プール

    インスタンス・プールは、同じインスタンス構成から作成され、グループとして管理されるリージョン内のインスタンスのグループです。

  • OCI Kubernetes Engine

    Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes EngineまたはOKE)は、コンテナ化されたアプリケーションをクラウドにデプロイするために使用できる、フルマネージドのスケーラブルで可用性の高いサービスです。アプリケーションに必要なコンピュート・リソースを指定すると、OKEによって既存のテナンシのOCIにプロビジョニングされます。OKEは、Kubernetesを使用して、ホスト・クラスタ間のコンテナ化されたアプリケーションのデプロイメント、スケーリングおよび管理を自動化します。

  • ロード・バランサー

    Oracle Cloud Infrastructure Load Balancerは、単一のエントリ・ポイントから複数のサーバーへの自動トラフィック分散を提供します。

  • OCIロギング
    Oracle Cloud Infrastructure Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルで完全管理タイプのサービス です:
    • 監査ログ: OCI監査によって生成されたイベントに関連するログ。
    • サービス・ログ: OCI APIゲートウェイ、OCIイベント、OCIファンクション、OCIロード・バランサ、OCIオブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって公開されるログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含む、ログ。
  • OCIモニタリング

    Oracle Cloud Infrastructure Monitoringは、クラウド・リソースをアクティブおよびパッシブに監視し、メトリックが指定のトリガーを満たしたときにアラームを使用して通知します。

  • OCI通知

    OCI Notificationsは、低レイテンシのパブリッシュ/サブスクライブ・パターンを使用して、分散コンポーネントにメッセージをブロードキャストし、OCIでホストされているアプリケーションに、安全で信頼性が高く耐久性のあるメッセージを配信します。

  • OCIオブジェクト・ストレージ

    OCIオブジェクト・ストレージでは、データベースのバックアップ、分析データ、画像やビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データを大量にアクセスできます。アプリケーションから直接、またはクラウド・プラットフォーム内から、データを安全かつ安全に保管できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張することができます。

    迅速、即時、頻繁にアクセスする必要のあるホット・ストレージに標準ストレージを使用します。アーカイブ・ストレージは、長期間保存し、ほとんどまたはめったにアクセスしないコールド・ストレージに使用します。

  • OCIキュー

    Oracle Cloud Infrastructure Queueは、メッセージを処理しながら、少なくとも1回保証された処理、追跡、クライアント分離などの複雑な管理タスクを処理するスケーラブルなシステムを提供します。この一元化されたサービスでは、メッセージの順序付けおよび処理状態も管理されるため、ステートレス・クライアント・プロセスでカーソル追跡をオフロードできます。

  • OCIのリージョン

    OCIリージョンとは、可用性ドメインをホストする1つ以上のデータ・センターを含む、ローカライズされた地理的領域のことです。リージョンは他のリージョンから独立しており、長距離の場合は複数の国または大陸にまたがる領域を分離できます。

  • OCIレジストリ

    Oracle Cloud Infrastructure Registryは、開発から本番へのワークフローを簡略化できる、Oracle管理のサービスです。レジストリを使用すると、Dockerイメージなどの開発アーティファクトを簡単に格納、共有および管理できます。

  • テナンシ

    テナンシは、OCIへのサインアップ時にOracleがOracle Cloud内で設定する、セキュアで分離されたパーティションです。テナンシ内のOCI上のリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシー内に組織構造を反映させます。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。

  • OCI Vault

    Oracle Cloud Infrastructure Vaultでは、データを保護する暗号化キーと、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を作成して一元管理できます。デフォルトのキー管理はOracle管理キーです。OCI Vaultを使用する顧客管理キーを使用することもできます。OCI Vaultには、ボールトおよびキーを管理するための豊富なREST APIセットが用意されています。

  • OCI仮想クラウド・ネットワークおよびサブネット

    仮想クラウド・ネットワーク(VCN)は、ソフトウェアで定義されたカスタマイズ可能なネットワークであり、OCIリージョン内に設定します。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには、VCNの作成後に変更できる重複しないクラスレス・ドメイン間ルーティング(CIDR)ブロックを複数指定できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • VNIC

    OCIデータ・センターのサーバーには、物理ネットワーク・インタフェース・カード(NIC)が存在します。これらのサーバーのいずれかのインスタンスを作成すると、インスタンスは物理NICに関連付けられているネットワーク・サービスの仮想NIC (VNIC)を使用して通信します。仮想ネットワーク・インタフェース・カード(VNIC)により、インスタンスはVCNに接続でき、そのインスタンスがVCNの内部および外部のエンドポイントに接続する方法も決まります。各VNICは、VCNのサブネット内に存在します。

推奨

これらの推奨事項をリファレンス・アーキテクチャの開始点として使用します。

パブリック・イングレスとプライベート処理サービスを分離する顧客固有の仮想クラウド・ネットワーク(VCN)設計にソリューションをデプロイします。リファレンス・アーキテクチャでは、顧客セキュリティ要件が分離されたサービス通信パスを要求する場合に、プライベート・サブネット、ネットワーク・セキュリティ・グループ(NSG)、サービス・ゲートウェイ、プライベート・エンドポイント、最小権限のOCI Identity and Access Management、コンパートメント、動的グループおよびOCI Vault管理シークレットが推奨されます。

  • VCN: OCI Compute GPUインスタンス・プール、OCI Container Instancesストリーム・プロセッサ、Oracle Cloud Infrastructure Queueコンシューマ、ルール・サービスおよび運用サービスをプライベート・サブネットに配置します。OCIロード・バランサまたはOCI APIゲートウェイを介して必要なイングレスのみを公開します。該当する場合は、サービス・ゲートウェイまたはプライベート・エンドポイントを介したOCIオブジェクト・ストレージおよびその他のOCIサービス・アクセスを使用します。

  • セキュリティ: Oracle Cloud Guardを使用すると、Oracle Cloud Infrastructure内のリソースのセキュリティをモニターおよびメンテナンスできます。クラウド・ガードでは、セキュリティの弱点についてリソースを調べたり、リスクのあるアクティビティについてオペレータとユーザーをモニターするために定義できるディテクタ・レシピを使用します。構成の誤りまたは安全でないアクティビティが検出されると、Cloud Guardは修正アクションを推奨し、ユーザーが定義できるレスポンダ・レシピに基づいてそれらのアクションを実行するのに役立ちます。

    最大限のセキュリティーを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースには、パブリック・インターネットからアクセスできない必要があり、顧客管理キーを使用して暗号化する必要があります。

  • ネットワーク・セキュリティ・グループ(NSG): NSGを使用して、特定の仮想ネットワーク・インタフェース・カード(VNIC)に適用されるイングレスおよびエグレス・ルールのセットを定義します。VCNサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離するため、セキュリティ・リストのかわりにNSGを使用します。

  • OCI Identity and Access Managementおよびシークレット:最小権限のOCI Identity and Access Managementポリシー、コンパートメント境界および動的グループを適用します。資格証明および証明書をOCI Vaultに格納します。ストアド・メディアおよび構造化イベント・ペイロードを暗号化し、RAWメディア・パスを公開するかわりに、短期間のOCIオブジェクト・ストレージ・アクセスURLを使用して再生します。

考慮事項

このリファレンス・アーキテクチャをデプロイする際は、パフォーマンス、セキュリティ、可用性およびコストを考慮してください。
  • パフォーマンス: GPU推論とは別にCPUストリーム処理を拡張します。Oracle Cloud Infrastructure Queueは、GPU消費からバーストを切り離し、キューの深さ、コンシューマ・ラグ、推論のレイテンシ、スループット、GPU使用率を合わせると、単一のメトリックよりも安定したスケーリング・シグナルを提供します。実用的な開始ターゲットは、変動のためにヘッドルームを維持するための平均GPU使用率の約70%です。

  • セキュリティ:プライベート・サブネット、ネットワーク・セキュリティ・グループ(NSG)、サービス・ゲートウェイまたはプライベート・エンドポイント、最小権限のOCI Identity and Access Management、OCI Vault、暗号化、デバイス証明書、相互TLS (mTLS)およびテナント対応アクセス制御を使用します。コンテキスト分類は、アイデンティティ・アサーションではなく操作シグナルとして扱います。機密ワークフローのヒューマン・レビューと、監査モデルのバージョン、ルール・バージョン、信頼度スコア、タイムスタンプおよび演算子の結果を保持します。

  • 可用性:ストリーム・プロセッサおよびモデル・ワーカーを可能なかぎりステートレスに保持し、フレーム参照、時間履歴を保持し、OCI管理サービスのデータをリプレイします。カメラのハートビート、キューの深さ、コンシューマ・ラグ、GPU容量、OCI Object Storageのアップロードおよび通知配信を監視します。カメラ・オフライン・イベント、キュー・バックログ、GPU使用不可、重複アラート、ストレージ障害および通知失敗のランブックを構築します。べき等イベントID、再試行およびデッド・レター処理を含めます。

  • コスト:継続的な高解像度のクラウド・アップロードよりも、イベントによってトリガーされるアップロードを優先します。スマート・カメラは、連続した映像をローカルに保持し、イベント・メタデータ、サムネイルまたはショート・クリップをアップロードできます。OCI処理では、フレームをサンプリングし、確認されたイベントについてのみ高解像度のクリップを保持できます。フレーム・サンプリング、H.265圧縮、1秒当たりの構成可能なフレーム(FPS)、モーションまたは個人のしきい値、ゾーン・フィルタ、ショート・クリップおよびOCIオブジェクト・ストレージのライフサイクル・ポリシーにより、帯域幅とストレージを削減します。イラストレーションの保持層は、標準クリップの場合は7日、優先度の高いセキュリティ・イベントの場合は30日、規制または調査ワークフローの場合は90日です。

アーキテクチャのデプロイ

独立してスケーラブルなレイヤーにアーキテクチャをデプロイします。

測定されたワークロード特性に対する、カメラとチューニング・モデル、サンプリング、キュー、ポリシーおよびアラートのしきい値の小さい代表的なセットから始めます。

アーキテクチャをデプロイするには:

  1. 基盤の確立: VCNsおよびサブネット、コンパートメント、NSG、OCI Identity and Access Managementポリシーおよび動的グループ、OCI Vaultシークレット、OCIオブジェクト・ストレージ・バケット、OCIロギング、OCIモニタリングおよびライフサイクル・ポリシーを作成します。
  2. 取込みの構成: OCIロード・バランサまたはOCI APIゲートウェイおよびセキュアなカメラ・ブリッジまたはプロデューサ・サービスをデプロイします。カメラ・ストリーム、アップロードされたメディア・ソース、またはモバイルまたはエッジ・プロデューサを登録します。
  3. ストリーム処理のデプロイ: コンテナ化されたストリーム・プロセッサをデプロイしてRTSPセッションを終了し、メディア、サンプル・フレーム、必要に応じてローカルにバッファをデコードし、推論作業項目をOracle Cloud Infrastructure Queueに公開します。
  4. GPU推論のデプロイ: ステートレスGPUワーカーをコンピュート・インスタンス・プールにデプロイします。検出および分類モデル、バッチ処理、信頼度しきい値、モデル・メタデータおよびキュー・コンシューマを構成します。
  5. 意思決定と統合の構成: JSON、YAMLまたはポリシー・サービスでルールを外部化します。検証済イベントをOCI通知、Webフック、API、OCI Connector Hubまたはサービス管理プラットフォームに送信する前に、ロール、ゾーン、時間、信頼度、イベント履歴およびテナント・ポリシーを適用します。
  6. 操作およびチューニング: キューの深さ、推論レイテンシ、GPU使用率、カメラのヘルス、アップロードの失敗および配信ステータスのアラームを作成します。これらのシグナルを使用して、CPUおよびGPUレイヤーを個別にスケーリングします。テスト障害処理、リプレイ、保存およびアラート抑制です。

確認

  • 作成者: Prodipto Ranjan Baksi, Chaitanya Chennam, Viraj Poolabhavi, Akshita Muthayala, Prashant Gaikwad, Shamish Maikoti
  • コントリビュータ: Robert Lies