テクノロジーに興味がある人なら、身近な製品の裏側って気になるもの。
そんな知的欲求を満たしてくれるセッションが、re:Union 2018 Osakaには用意されていた。
Nintendo Switchの裏側にあるシステムを紹介する「Nintendo Switch向けプッシュ通知システム『NPNS』」と題して、
任天堂 ネットワークシステム部の渡邉 大洋さんが語ったセッションだ。
フレンド登録したユーザーのゲームプレイ通知など、見慣れたあのメッセージは、こうやって送られていたのだ。

想定同時接続数1億台のリアルタイム通信インフラをAWSに構築

「実はこのセッション、AWS Summit Tokyoでもやったので聴いたことがある人がいるかもしれません。
が、そこは今日初めて聴いたようなテンションで聴いてください」(渡邉さん)

という出足で会場の笑いをさらった渡邉さんにならって私も書いておこう。
実はこのイベント、記事より何ヶ月も前に開催されたものなのですでに同じ話を他で聴いたことがある人がいるかもしれない。
が、そこは初めて知る情報のようなテンションで読んでいただきたい。

さて、話題の中心はセッションタイトルにある通り、Nintendo Switchのプッシュ通知システムだ。
Nintendo Switchについてはいまさら紹介しなければならないような製品ではないだろう。
すでに世界で2000万台以上を販売している、あのゲーム機だ。
プッシュ通知は、フレンドがオンラインになったときのほか、スマートフォンやPCで購入したアプリのダウンロード開始、完了通知などに使われる。
ちょっと面白いところでは、保護者が子どものゲーム利用状況を管理、監視できるNintendoみまもりSwitchからの設定変更通知などにも、同じプッシュ通知システムが使われている。
Nintendo Push Notification Serviceを略して、社内では「NPNS」と呼ばれているそうだ。

「フレンドの状況などを伝えるという性質上、リアルタイム性が重視されます。
そこで定期的なポーリングではなく常時接続を前提にシステムを構築しました。
求めたのは、1億台の常時接続に耐えるスケーラビリティ、無停止デプロイが可能な運用性です」(渡邉さん)

リアルタイムといっても、フレンドがオンラインになったことをミリ秒単位で正確に知る必要はない。
数秒以内に通知が届けば正常、システム異常時でも数分程度の遅延に抑えるという、ベストエフォート型の性能基準を採用し、インフラコストを抑えている。

http://ascii.jp/elem/000/001/796/1796780/