EPISODE 02

モバイルワークを試行錯誤するブログ

OS X Servre.appにキャッシュサービスを設定する

キャッシュサービスとは何か

会社で管理しているiOSのOSアップデートやアプリのアップデート。OSのアップデートはもちろん、ここ最近やたらにファイルサイズの大きいアプリが目立つようになってきた。OSのアップデートはWi-Fiの利用が前提だし、アプリも容量によってはLTEでダウンロードできなかったりする。加えてLTE通信容量制限もあるわけで、オフィスにいる間は可能な限りWi-Fiオフロードしておきたいもの。ただ端末側でアプリの更新を自動にしておくと、オフィスにあるアプリが一斉にアップデートされるため、今度はオフィス内のLANの回線が混みだす。数台なら問題ないが数十台、数百台規模だとあっという間にネットワークは輻輳してしまう。

Appleもそういった事情は認識しているからかOS X Server.appではキャッシュサービスを提供している。キャッシュサービスの内容はその名の通りでOS X Server.appがインストールされているMacと同じLAN内に存在するiPadやiPhoneがAppleのサーバからダウンロードしたアプリやOSファイルをサーバ内にコピーしておき、次に他のクライアントが同じファイルをダウンロードしようとすると、Appleのサーバではなくサーバにあるキャッシュサービスからダウンロードするというもの。ただし全てのデータがキャッシュされるわけではなく、現状は以下のデータに限られる。

キャッシュサービスでサポートされているコンテンツの種類
・iOS および Apple TV のアップデート
・iOS App およびアップデート
・iOS App Store および iBooks Store から入手した iTunes U の教材、およびアップロードされているインストラクター用資料
 (オーディオ、ビデオ、iWork、iBooks Author などのファイル)
・Siri の高品質な音声や言語辞書など、特定のモバイルアセット
・iCloudで利用するファイル(これは暗号化される)

キャッシュサービスのイメージ

f:id:bcorp:20160819204809j:plain

Server.appへの設定は簡単で、キャッシュサービスを入にするだけ。

f:id:bcorp:20160819204850p:plain

アクセス権はローカルサブネットに設定し、必要に応じてキャッシュ先のストレージとキャッシュサイズを指定する。キャッシュ先のボリュームはデフォルトではブートボリュームになっているため、ストレージ容量が少ないSSDなどではサイズ制限の検討は必要。指定したキャッシュサイズ容量を超過すると、利用頻度の少ないキャッシュから削除される。ここで注意するのはiOSだけでなくMacのデータもキャッシュされること。そのためキャッシュサービスを提供するMacと同じサブドメインに別のMacがあると容量が超過しやすい。iOSのみを指定したキャッシュはできないため、キャッシュサービスを提供するMacを増やしたり、Air Mac Extremeの増設や11ac対応のAir Macにしたりとネットワーク側での設計も必要になる可能性も。またiCloudのデータもキャッシュされるが、iCloudを利用した運用を前提としない場合はサービスを切っておいたほうがよさそう。

実際どの程度ダウンロード時間に差があるのか

数十台から数百台規模での検証はできないので、2台で試してみたが比較的大きいファイルサイズ(約400MB)のMS Wordをダウンロードしたところ、キャッシュなしで50秒ほど、キャッシュありだと40秒まで短縮していた。ただ元々インターネットの通信速度は100MB以上出ているので、検証データとしてはあまり意味のないデータかも。

普段の運用はもちろん、端末初期設定時のアプリダウンロード、OSアップデートなどでも効果がありそう。