Amazon Web Services ブログ
リアルタイム AR アプリケーションの AWS エッジにおけるリモートレンダリング
拡張現実(AR)アプリケーションは、3D 機械設計や、3D デジタルツインモデルによる機器の修理補助や、医療手術の新人教育のアプリケーションに 3D の身体画像を使用し、学習効率を上げることに活用されています。こういったアプリケーション群には、リアルタイムでの 3D オブジェクトのレンダリングが必要になります。タイトルにあるリモートレンダリングとは、AR ヘッドセットの動作に応じてサーバー側で 3D コンテンツの操作を行い、レンダリングされたオブジェクトを即時にヘッドセットにストリーミングする技術です。リモートレンダリングの利点は、高いパフォーマンスと高品質な AR 体験を提供しつつ、携帯電話等のデバイスよりも低いコストでレンダリングできる所です。リモートレンダリングの利点としては、ローカルの GPU や限られたリソースしかないヘッドセットでの処理と比べると、サーバーがグラフ計算の処理のためのリソースを提供し、高解像度でストリーミングのプラットフォームを実現するところがあります。また、各ヘッドセットではなくサーバーでデータを持つため、データ保護の観点でも優れています。しかし一方で、リモートレンダリングでは、リアルタイム AR アプリケーションの特性であるインタラクティブな体験を提供するために低レイテンシーの応答時間、低ジッター、高スループットを実現する必要があります。
このブログでは、AWS のエッジサービス、特に AWS Wavelength と AWS Snowball が、パブリック 5G 環境とプライベート 5G 環境の双方で、どのようにリモートレンダリングを提供できるかを説明します。Holo-Light の XR (Extended Reality) エンジニアリング のアプリケーションである AR 3S が、リモートレンダリング技術と統合されている例を使用して、エッジコンピューティング環境におけるリモートレンダリングの要件とワークフローを説明します。
AR 3S とリモートレンダリングの要件
Holo-Light の AR 3S AR エンジニアリング・ワークスペースは、XR アプリケーションです。この XR アプリケーションは、エンジニアリングと製品開発を改善するためのツールで、AR/VRの中で 3D CAD データを使った共同作業を行うためのデジタルワークスペースを提供します。AR 3S を使用することにより、開発者は複雑な実物大の 3D モデルを視覚化し、物理的な部品と合成表示しながら、物理環境で評価を行い動作をさせることができます。
図 1. 複雑な 3D モデルの分解を示す AR 3S のユーザビュー
このアプリケーションのアプローチとしては、サーバー上でのリアルタイム 3D レンダリング、ジェスチャー認識、トラッキングを含む一連のエンジニアリングのためのツールと機能が含まれています。独自のストリーミング技術である ISAR SDK が組み込まれているため、XR アプリケーションは、強力なサーバー上で実行することができます。表示できる 3D ホログラムの詳細レベル、データサイズ、ポリゴン数に対し、サーバー上で制限するものはありません。ユーザーは、XR デバイス上のクライアントアプリから外部サーバー上の XR アプリに接続するだけで使用できます。AR 3S は 1 億ポリゴン以上を 1 秒間に 40~60 フレームのスピードで処理できます。一方、ARデータ用のゴーグルは、ローカルで機器自身のリソースを試用するため 100 万ポリゴン以下しかスムーズに処理することはありません。そのため現在、レンダリングの処理は、性能制限のある XR デバイス上から高性能のサーバー上に移行しつつあります。
図 2. ISAR SDK を使用したリモートレンダリングシナリオの例
リモートレンダリングでは通常、エンドユーザーの没入感を高めるために、XR デバイスからアプリの処理に行って戻る、ラウンドトリップのレイテンシ(”モーション-トゥ-フォトンレイテンシ “とも呼ばれる)を 20ms 未満にする必要があります。ネットワーク帯域幅要件に関しては、リモートレンダリングでは、XR デバイスがモーションセンサーデータをサーバーに送信するために約 10Kbps のアップロードでのスループットが必要です。また、サーバーがレンダリング画像を XR デバイスに送信するために 20Mbps のダウンロードでのスループットが必要です。複数ユーザーで 3D デザインを共同作業しているの場合など、同時に使用する XR デバイスの数が増えるにつれて、必要となるスループットは、アップロードとダウンロードのいずれも増加します。
この ISAR の XR-Streaming は WebRTC 標準に準拠しています。そのため、サーバーと AR デバイスが同じローカルネットワーク内に無い場合、通常は STUN(Session Traversal Utilities for NAT)または TURN サーバーを使用します。STUN または TURN は、サーバーとクライアントデバイス間の直接ピアツーピア接続を確立する目的で、WebRTC アプリケーションがネットワークアドレストランスレータ(NAT)やファイアウォールを検出して通信するために使用されます。STUN や TURN サーバー技術について詳しく知りたい方は、オンライン記事(WebRTC Crash Course など)を検索して確認してください。
パブリック 5G 環境でのリモートレンダリングを実現するAWS Wavelength
AWS Wavelength により、通信サービスプロバイダ(CSP)のパブリック 5G ネットワークの間に AWS のコンピュートやストレージサービスを持ち込むことができます。Wavelength は超低遅延アプリケーションを開発し、デプロイし、さらにスケールするための、モバイルデバイス用のエッジコンピューティングやインフラを提供します。現在、ベル・カナダ、ブリティッシュ・テレコム(BT)、KDDI、SK テレコム、ベライゾン、ボーダフォンの 6 つの CSP が、30 の AWS Wavelength Zone で AWS Wavelength サービスを提供しています。
AWS Wavelength と CSP の 5G 接続両方を活用して、パブリックなネットワーク内の、クラウドのエッジ環境で、リアルタイムのリモートレンダリングを必要とする AR や VR アプリケーション、または XR 全般の実行処理を可能にします。具体的なユースケースとして、例えばゲームや、製品設計開発におけるレビュー、没入型のトレーニングなどがあります。XR デバイスを使用するユーザーは、遠隔にいても、CSP のパブリック 5G サービスを利用して、これらのサービスを使用できます。
図 3 は、AWS Wavelength を使用してリモートレンダリングサーバーを提供する場合の、俯瞰的に見たソリューションアーキテクチャです。AWS VPC は、CSP ネットワーク内の AWS Wavelength Zone に拡大されます。AWS Wavelength Zone 内で、仮想化されたリモートレンダリングサーバーは GPU を搭載したり、単一または複数の AWS EC2 インスタンスにデプロイすることができます。AWS Wavelength Zone と特定ロケーションの CSP ネットワークは、AWS Wavelength のネットワークの構成の一部である通信キャリア のゲートウェイ(CGW)を介して接続されます。これにより、CSP ネットワークからのインバウンド通信と、CSP ネットワークとインターネットへのアウトバウンド通信を行うことができます。
XR デバイスまたはクライアントアプリケーションがレンダリングをできるようにするには、リモートレンダリングの管理者は、AWS Wavelength Zone 内の VPC のサブネットにある EC2 に、単一または複数の EC2 インスタンスに、XR ストリーミングサーバーをデプロイします。さらに、管理者は CGW を作成します。CGW を作成する際には、リモートレンダリングサーバーが配置されているサブネットを選択し、レンダリングストリームのトラフィックを CGW にルーティングすることが必要です。通信キャリアが提供している IP アドレスを EC2 インスタンスに割り当て、その EC2 インスタンスがその IP アドレスを使用できるようにします。CGW は、EC2 インスタンスのプライベート IP アドレスから、キャリア IP アドレスへの NAT を行います。EC2 インスタンス上の XR ストリーミングサーバーとクライアントデバイス間が直接 WebRTC ピアツーピアで接続できるようにするためには、CSP ネットワーク内または AWS Wavelength ゾーン内に STUN サーバーが必要になります。
XR アプリケーションのユーザーは、XR デバイスをキャリア IP 網 に接続し、リモートレンダリングができるようにします。
図 3. AWS Wavelength におけるリモートレンダリングのソリューション・アーキテクチャ
プライベート5G環境でリモートレンダリングを実現するAWS Snowball Edge
AWS Snowball Edge は物理デバイスで、GPU を使用した Amazon EC2 や、Amazon EKS Anywhere、AWS Lambda、AWS IoT Greengrass、また機械学習などのクラウドにおけるコンピュートとストレージのサービスを、エッジ側で提供します。このデバイスは耐久性が高い特徴があり、AWS リージョンから切り離されたスタンドアローンモードでも動作することができます。そのため、工場、病院、防衛のための施設などのプライベートな環境での使用に適しており、リソースはプライベートな使用向けで、外部からのネットワーク接続は遮断されているため、運用の履歴や保存されたデータはローカルにセキュアに保護されています。
例えば、自動車メーカーでは、デザイナーとエンジニアの共同作業を支援する 3D デザインレビューの段階で、閉鎖されたネットワーク環境で AR の使用が考えられます。この使用例では、メーカーはすべての設計、AR アプリケーションとそのリモートレンダリングと、データをオンプレミス内に保管する必要があります。
図 4 は、プライベートな 5G 環境でのリモートレンダリングに AWS Snowball Edge を使用する場合のソリューションのアーキテクチャの図です。AWS Snowball Edge デバイスのタイプが「Compute Optimized with GPU」であり、EC2 インスタンスタイプが「sbe-g」の場合、GPU を使用するリモートレンダリングを提供することができます。
AWS Snowball Edge デバイスは、10G RJ45 ポートが 2 つ、10G/25G SFP+/SFP28 ポートが 1 つ、40G/100G QSFP28 ポートが 1 つ持ちます。管理プレーンとデータプレーンを分離するため、AWS は管理用のトラフィックに RJ45 ポートを 1 つ、アプリケーション用のトラフィックに SFP+/SFP28 ポートを 1 つ使用することを推奨しています。
図 4. AWS Snowball Edge におけるリモートレンダリングのソリューションのアーキテクチャ
注意しなければならない点としては、AWS Snowball Edge の仮想ネットワークインターフェース(VNI)を RJ45 ポートに関連付け、ダイレクトネットワークインターフェース(DNI)を SPF+/SFP28 ポートに関連付けることです。前者は VNI と EC2 インスタンスの eth0 間で IP NAT を行います。後者は、ダイレクトネットワークインターフェース(DNI)と EC2 インスタンス eth1 間のレイヤー2 接続を可能にします。XR のストリーミングトラフィック、例えばデータプレーントラフィックが DNI パスを通過するといった場合、STUN サーバーは必要ありません。
図中の AWS OpsHub は、AWS Snowball Edge デバイスをローカルまたはリモートで管理するためのグラフィカルユーザーインターフェイスです。
AWS Snowball Edge は、AWS リージョンに接続することができますので、データのアップロードや画像のダウンロードなどのユースケースにおいて活用できます。IP Security (IPSec) トンネルによるセキュアな接続が必要な場合には、インターネット経由の AWS Site-to-Site VPN を使用します。
図中右側のプライベート5G ネットワークは、5G 無線アクセス・ネットワーク(RAN)と 5G コア・ネットワークの二つで構成されています。 5G コア・ネットワークはプライベートな環境のために周波数帯域を割り当てられ、オンプレミスに導入されます。RAN の例の一つとしては AirSpeed 1900/2900 で、RU、DU、CU が全てが扱える gNB ソリューションがあります。5G コアの例としては、AWS Snowball Edge 上で動作する Athonet 5G Core があります。
XR デバイスは、プライベート 5G ネットワークを通じて、AWS Snowball Edge デバイスで提供されているリモートレンダリングサービスを使用できます。XR デバイスは、5G モデム、テザリングされた 5G スマートフォン、または 5G の WiFi ホットスポットを介して 5G ネットワークに接続することができます。XR デバイスは、リモートレンダリングサービスのために AWS Snowball Edge への有線接続を使用することもできます。
XR ストリーミングを開始するには、XR デバイスで実行する XR アプリケーションのクライアントを、リモートレンダリングの EC2 DNI インターフェースの IP アドレスに向けます。
まとめ
AR/VR または XR アプリケーションは、リアルタイムでオブジェクトをリモートレンダリングすることで、GPU などの重いコンピューティングリソースをXR デバイス上に必要としないため、XR デバイスのコストとエネルギー消費を抑えることができます。
また、リモートレンダリングは、サーバー内のデータを保護するため、データ保護の点でも優れています。また、AWS のエッジサービスは、リモートレンダリングのための低レイテンシーとダウンロードにおいてスループットの要件に合います。このブログで、具体的には、パブリック 5G 環境向けの AWS Wavelength とプライベート 5G 環境向けの AWS Snowball Edge を使った 2 つのリモートレンダリングのアーキテクチャを参考としてご紹介しました。また、Holo-Light AR 3S XR のストリーミングを例として、2 つのリモートレンダリングのソリューションがどのように機能するかを説明しました。
AWS エッジサービスによる XR のためのリモートレンダリングを始めるのでしたら、パブリックな 5G 環境向けの AWS Wavelength と、プライベートな 5Gやオンプレミスの有線回線を使用する AWS Snowball Edge についてご参照ください。
このブログではご紹介しておりませんが、エッジの AWS Local Zones でも、インターネット接続、または XR デバイスとのプライベート接続を使用して、リモートレンダリングを行うアプリケーションを提供することもできます。CSP がホストする AWS Wavelength と比べて、AWS Local Zones は AWS によって管理される点が異なります。エッジソリューションのもう一つの選択肢として、AWS Local Zones もご検討いただけます。
Holo-Light XR リモートレンダリングを使用するには、Holo-Light 公式ウェブサイトとブログ、「XR Streaming: How Holo-Light Solves Major Problems of Augmented and Virtual Reality」をご覧ください。SDK と XR エンジニアリング・アプリケーションの無料トライアル・アクセスについては、Holo-Light 社にお問い合わせください。また、上記のソリューションに加えて、AWS Marketplace で AR 3S Pro Cloud の Amazon Machine Image (AMI)をテストすることも可能です。
翻訳は Solutions Architect の伊藤ジャッジ向子が担当しました。原文はこちらです。