# 低遅延ユースケースの検証 on AWS Outposts ## 概要 AWS が提供するハイブリッドクラウド製品である AWS Outposts は、利用場所と物理的に近距離な場所を設置することで、パブリッククラウドと比較して距離遅延を抑制することが可能なため、低遅延が要求されるユースケースへの導入が期待される。 そこで、この記事では、パブリッククラウドと AWS Outposts の RTT を比較することで、低遅延ユースケースにおける AWS Outposts の有用性を検証する。 検証方法としては、初めに、パブリッククラウドと Outposts 上に立てた  WebTransport サーバーに映像データを送信する。WebTransport サーバーは、そのまま映像データを返却する。このとき、送信時と受信時のタイムスタンプを記録しておき、その差を RTT として計測を行なった。ただし、 EC2 インスタンスは、 YYに設置された Outposts 上、および、パブリッククラウドの XX リージョン上のものを使用した。 検証結果としては、 Outposts の方がおよそ [ms]ほど遅延が小さく、その有用性を確認することができた。 ## 検証 ### 目的 パブリッククラウドと AWS Outposts の RTT を比較することで、低遅延ユースケースにおける AWS Outposts の有用性を検証する。 ### 方法 検証方法を以下に説明していく。 - システムアーキテクチャー図 ![](https://i.imgur.com/g5YhKxR.png) 映像データの送受信には WebTransport を使用する。クライアントは、 Web Browser (Chrome) の API を用いて実装し、サーバーは、[quic-go モジュール](https://github.com/quic-go/quic-go)を用いてGo言語で実装した。 - システムフロー 1. 動画をブラウザ上で再生する。 2. 送信動画の前処理を行う。まず、再生された動画をエンコードを行う。このとき、エンコーダには、ブラウザAPI の WebCodecsを使用する(codec: VP9)。次に、ビデオフレームごとに1000Byte以下となるようにデータを複数に分割し、送信時刻などの情報を付加する。 3. 前処理された動画データをPublic CloudおよびOutposts上に構築されたサーバに送信する。このとき、 5. エンコードされた映像データに送信時刻などの情報を付加し、データを1000Byte以下に分割する。webtransport clientは、分割されたデータをwebtransport server に、Datagram で送信する。Datagramによって通信されるデータのデータサイズは、通信路上のMTU以下である必要がある。この条件を満たすため、ここでは1000Byte以下に分割している。(詳しい分割方法、および、付加情報については後述する。) 8. webtransport serverは、送信元であるclientに受信したデータをそのまま返却する。 9. webtransport clientは、Serverから返却されたデータから、付加情報とエンコードされたビデオフレームを取得する。この時、受信時刻も記録する。 10. 取得したビデオフレームを先頭からデコードを行う。 11. ブラウザ上でデコードされた動画を再生する。 12. 全フレーム取得完了後、計測結果をダウンロード可能なようにCSVファイルに書き込むことで計測完了。 ### 結果 ### 送受信データの分割方法および付加情報の詳細 ### お問合せ先 Testbed operation Team(ToT) Cloud HYTB チーム メールアドレス:testbed-cloud@nttcloud.net