知らないと痛い目にあう、5Gを使ったアプリ開発 - Part 1
5Gの何がすごいのか
昨年から今年にかけておそらく5Gに関するニュースを見たり聞いたりしたことがある人は多いはず。ただ5G の何が今までと比べてすごいのか、5Gを利用するにあたって何に気をつけなければいけないのかをきちんと理解しているアプリ開発者は意外と少ないと感じた。なので今回はそのあたりをプロダクト開発の視点で2回に分けて解説します。
"5-10-100" 5Gの特徴3つ
5Gの特徴は大きく分けて3つ。低遅延・広帯域・同時接続性です。
遅延は5ms以下、帯域は最大10Gbpsまで、最大同時接続数は100万台サポート可能。
これだけだとピンとこない人がいるかもしれないので例をあげます。
例えばブルーレイDVDは1枚25ギガバイト分の動画容量あるが、5G対応デバイスはこれを3秒以内にダウンロードを終えてしまうことになる。これを4G/LTEでやろうとすると1時間以上かかってしまう。(実際にダウンロードするユースケースがあるかどうかは別です。)
次に遅延。使っているストリーミングサービスが海外サーバーへアクセスしていると、ひどい時は動画が止まってしまったり、画像と音声にズレがでたり、ローディングの画面からなかなか先に進まない、という経験をされたことはあるはず。これはネットワーク上の遅延が大きく関わっている。例えば日本からカリフォルニアにあるサーバーにアクセスしようとすると、それだけで120 - 200ms程度の遅延が発生する。低遅延というのはこうしたデータ転送のずれがほぼなくなり、データの出し手と受け手の時間の差がゼロに近づくということだ。
最大同時接続数は、一つの電波施設で処理できる端末の数。4Gだと4000台が限界だが、これが5Gになると100万台に一気に増加。ま、100万台全てが同時に25GBのダウンロードをすることは想定していないものの、これまでより高速でサクサクアプリが動くネットワーク環境を、多くのデバイスが同時に使えるとは言える。
なぜ低遅延、広帯域が実現できるのか?
上の3点の優位性がなぜ可能になったのか、モバイルアプリ開発の上で5Gの仕組みを理解しておくことはテクノロジーを正しく使うために重要。なぜなら往々にして優位性は制約条件とのトレードオフであることが多いから。その部分を正しく理解せずして5Gを使いこなすことはできない。なのでまずは5G前と5G後で何がどう変わるのかを比較してみます。
5G前
5G以前は、スマホでモバイルアプリを使ったり、ウェブサイトにアクセスするときにはキャリア側のネットワークやデータセンター、そこから別のインターネットを経由してAWSやGCPなどでホストされているサービスを使うことになる(下の図参照)。この場合アクセス先の距離によって、直接遅延やデータロスの影響を受けることになる。
もちろん遅延の影響を最小化する工夫をアプリ上で仕込むことは可能。(オンラインゲームはその典型)だが、もともと4Gは通常でもダウンロードで2−12Mbps、最大でも45-50Mbpsでれば上等というレベル。(Verizonの調査より)5Gのベスト時と比べれば1/200くらいのパフォーマンスしかない。
下のグラフは、もともと45Mbpsの帯域が4G環境で使えたとして、そこに遅延やデータのロスが発生した場合体感速度がとこまで落ちるかを表したもの。ここでは、縦軸のMaximum Throughputが体感速度とここでは思っていただいていい。50msの遅延とデータ送受信の際にロスが0.01%発生しただけで体感速度は半分以下に。200msだとおよそ1/9まで落ちる。
(Aryaka社のサイトより)
なので上の5G以前のアーキテクチャーだと、遅延やデータロスの影響を直に受けることになり、例えばVRベースのアプリを8Kレベルの解像度のストリーミングで流すといったことは、ネットワークがボトルネックとなり非常に開発が困難なのだ。
こうした遅延やデータロスの影響をなくすために、5Gではアーキテクチャーのどこを変えたのか、そしてそれがどうモバイルアプリ開発に影響してくるかを次回解説します。