学生みんなが特待生。

【デベロッパー向け】「Background fetch」を利用すると、サーバーロードを劇的に増やしてしまう可能性あり!

App developer
【img via 365.5 Back to work by remysharp

iOS 7」ではマルチタスク機能が強化され、バックグラウンドで定期的にフェッチする「Background fetch」を利用することが可能になった。

ユーザーからするとバックグラウンドで勝手に情報を取得してくれるため常にアプリ内の情報が定期的に更新され最新のコンテンツが楽しめるという魅力がある一方で、デベロッパーにとっては運用コストが大幅に増えてしまうリスクがあるようだ!

Check the Weather」を開発しているデベロッパーDavid Smith氏によると、iOS 7」から対応した「Background fetch」を利用すると、サーバーロードを劇的に増やしてしまう可能性があると警告している!

サーバーコストが劇的に増加!更新頻度などには注意が必要?

Smith氏は自身のブログで「Check the Weather」に「Background fetch」を利用した結果、トラフィックが通常の16倍にまで跳ね上がったことを報告している。

Botnetweather

この時、「Background fetch」は1分毎に行われるように設定したそうだが、あまりにもサーバーへの負荷が高かったため、すぐに利用を取りやめたとのこと。

同氏はアドバイスとして以下の4点を勧めている。

  1. アプリにとってフェッチの最適なインターバルを考える
  2. データの取得タイミングを確認する
  3. HTTPキャッシュと圧縮を利用する
  4. 「Remote Push Notification」をトリガーに「Silent Push」を送る

ランニングコストが跳ね上がってしまうと良いアプリも運用することができなくなってしまう。最適なユーザーエクスペリエンスを提供するために、必要な情報の鮮度とコスト感のバランスを見極める必要がありそうだ。

An Unexpected Botnet – David Smith