12050


**質問するきっかけ**  
・使用検討しているライブラリが、cdnjsでホストされていました

**質問１**  
・以前から疑問に思っていたのですが、色々なホストがCDNを公開していますが、ホスト側にはどういうメリットがあるのでしょうか？  
・ある日、いきなりクローズしたりしないのでしょうか？  
・何のために公開している？

**質問２**  
・これまでずっと稼働環境にライブラリを配置して使用してきたのですが、環境によってはCDNを使用した方が早い場合もあるのでしょうか？  
・キャッシュ対策が施されている？

**質問３**  
・対象ライブラリが、複数のCDNで公開されている場合、選定基準はどこで判断すれば良いのでしょうか？


CC BY-SA 3.0
2015-07-05T09:10:51.590
12044
2016-03-11T03:53:31.887
7886
question
javascript
CDNは何のために存在？　本番環境で使用しても良い？


**質問１**  
同じファイルを世界中のサイトでそれぞれ配信するより、同じURLで公開することでクライアント側でもキャッシュが効きトラフィックを抑えられるため、と考えられます。彼らの場合、トラフィックをさばくコストが膨大であるためそれを抑えること、Webアプリを速くすることは経済的です。  
ホスティングを辞めてしまう可能性は少なからずあります。ポリシーを確認しましょう。

**質問２**  
CDNのキャッシュサーバの配置にもよりますが、稼働環境よりも近いキャッシュサーバが存在する可能性が高いので、早さの効果はあると思われます。  
キャッシュ対策がどのレイヤでの話か分かりませんが、CDNはキャッシュをユーザの近くに置くことが至上命題なので、対策済みと言えます。

**質問３**  
利用者がたどると予想される経路周辺にキャッシュサーバを持っていそうなホストを選ぶことと考えます。  
また、選定にこだわりすぎず、止まった場合などを考慮してfallbackの仕組みを入れることもご検討ください。


CC BY-SA 3.0
2015-07-05T12:15:48.560
12050
2015-07-05T12:15:48.560
2238
12044
answer


質問１  
ホスト側は宣伝のためJSやCSSを自社CDNをつかって配信しています。  
勿論いきなりクローズすることもあります。

質問２

CDNを利用したほうが早くなるケースもあります。  
例えばCDNを使いコンテンツをリクエストする先のドメインを分けることにより、ブラウザが１回にリクエストできる上限が緩和され、シングルドメインより複数同時にリクエストが発行できるというメリットがあります。

逆に経路やアクセスするユーザーのDNSがANY CASTを使っている場合、近隣のサーバーから配信することが出来なくなり逆に遅くなる場合があります。

キャッシュがきくか、きかないかという点については、どこでキャッシュをきかせるのか、というお話になってきます。  
CDNは元々のサーバーにあるコンテンツを常にキャッシュしていますので、CDN側だけのお話であればCDN＝常にキャッシュしてるといえます。

逆に、利用者側の視点でいうとブラウザ側のキャッシュがきくようになるのか否かということが重要だと思います。これらは別にCDNを使わなくとも適切なヘッダを出力してあげる設定をすれば、きちんとブラウザキャッシュをきかせることが出来ます。

質問３

基本的には大手ベンダーさんを選んでおけば問題ありません。
CDN事業者が独自で提供しているライブラリもありますが、よほど大きいところで無い限りスタンダードな名前がしれてるところを選ぶべきでしょう。


CC BY-SA 3.0
2016-03-11T03:53:31.887
23013
2016-03-11T03:53:31.887
14736
12044
answer