【Akamai】モバイルアプリの高速化セミナーに参加した

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

こんにちは。2015年度入社の橋本です。

2016年2月23日(火) 15:00 〜 17:00 に開催された、アカマイ・テクノロジーズ様の
【エンジニア向け】モバイルアプリの高速化セミナー」に参加してきました。

内容が高度でついていけなかった部分がいくつかあり、すべてを理解するのは難しかった・・・というのが正直な感想ではありますが。
その中で私が興味を惹かれた話をいくつか、ピックアップして報告します。

はじめに

セミナーは Device × Network × Content の 3つの観点から、「高速化のためにできること」を検討していく内容になっています。

Device

SDPYやHTTP/2対応のクライアントが増えてきたとはいえ、まだまだ貧弱なデバイスを使用しているユーザーは多い。ユーザー体験を損ねる事態を防ぐために、コンテンツはデバイスに(サイジングするなど)最適化されたものを配信することが重要である、という内容が述べられました。

Network

ユーザーにより「近い」場所からコンテンツを配信することでパフォーマンスが改善することが述べられていました。
オリジンへの同時アクセスが増えてしまうことで輻輳が発生し、単純なレイテンシの差以上にパフォーマンスの劣化を招いてしまう、とのこと。

Content

(HTMLに比べ)APIによるデータ量がより強い増加傾向にあること、
"画像"データのトラフィックが大きな割合を占めることが述べられました。

次に、カイゼンの方策について、私が興味を持った内容をいくつかご紹介します。

HTTP/2

オリジンへの同時アクセスが増えることで、パフォーマンスは低下します。
これを改善するためにHTTP/2が有効である、という話がありました。

まず、簡単にHTTP/2について説明します。

HTTP/2 (RFC 7540)とは、HTTPプロトコルの新バージョンです。現在主流となっている1.1に対して後方互換性を持っています。
HTTP/2はHTTP1.1の欠点を解決すべく生み出されました。
ざっくり言うなら、(HTTP1.1における)無駄なデータ転送を削減することで、
後方互換性を維持しつつ
高速化を図ることがHTTP/2の大きな狙いです。

話を戻します。
HTTP/2ではTLSが必須となるため(暗号化による)オーバーヘッドが発生するものの、
得られるメリットはそれ以上である、とのこと。

HTTP/2の有用性としてピックアップされていたのは下記のような点です。

  • バイナリヘッダ
  • ヘッダの圧縮
  • 多重化
  • 下位互換性

重複するヘッダ情報を何度も送らなくて良いことや、
TCPハンドシェイクの回数を削減できることが大きいようです。
HTTP1.1と比較したところ、HTTP/2の方が優れたパフォーマンスを出したとの調査結果が紹介されていました。

また、後方互換性を持つことにより、既存のアプリケーションに変更を加える必要がない、といった点もお話しされていました。

IPv6

個人的には目からウロコでした。

IPv6は普及が進んできたとはいえ、まだインターネット上(プロバイダー側)には非対応の機器が多く存在します。
(IPv6対応の)新しいネットワーク機器は性能が高く、
アプリケーションがIPv6対応することでその恩恵を受けることができる、とのこと。

画像圧縮技術

画像コンテンツが占めるトラフィックが大きくなり、より効率の良い圧縮技術が注目されています。

下記で紹介するSSIM(Structual SIMilatiry), Chroma Subsampling, 両者はともに
配信コンテンツ(画像)の容量をいかに削減するか、という点にフォーカスしています。

SSIM

近しい研究分野の研究室に在籍していたので、非常に興味深く拝見しておりました。

研究分野的には画質評価と書く方が適切かもしれません。

「より圧縮率の高いアルゴリズム」を研究することはもちろん、現在は

 人間の体感品質を維持しつつ、圧縮効率を向上する方法

の研究が進んでいます。

このセミナーでは、画質劣化の度合いを測る指標として用いられる SSIM に着目し、
(体感)品質を維持しながら圧縮率を向上する取り組みが紹介されました。

Chroma Subsampling

Chroma Subsampling はカラーテレビ普及時に採用された圧縮手法です。
ゆとり世代の私は、今回耳となるワードでした。。

手法としては、画像の情報を「構造」と「色」に分離し、色の情報を削減します。
この手法の面白い点は、形状的な精細さを保ちながら情報の圧縮が可能となることです。

カラーテレビが普及するにつれ、モノクロ時代よりも多くの情報を転送する必要が出てきました。しかし帯域には限りがあります。
いかに帯域を節約するか?とという問題に突き当たる中で Chroma Subsampling が生まれました。
こうした経緯も非常に面白いですね。

この手法をWebでのコンテンツ配信に適用することにより、
(画像データの)ピクセルサイズの増加に対するデータ量の増加を緩やかにすることができる、という効果が検証されていました。

おわりに

今回のセミナーでは、モバイルアプリの高速化についての動向を勉強してきました。

セミナーが始まるまでは、画像処理の話が出てくるとは思っていませんでした。
この1点だけでも、私としては非常に面白いセミナーであったと思います。

また、Akamai社はすでにHTTP/2への対応に動き始めています。
AWSのCloudFrontもまだHTTP/2には非対応ですし、この辺りはさすがCDNの最大手たるAkamai社といったところでしょうか。
現時点ですぐに利用する機会はなさそうですが、何かの機会に是非検証してみたいなと思いました。

以上、「モバイルアプリの高速化セミナーに参加した」でした。

AWS運用自動化サービス「Cloud Automator」