エンジニアの副業は週1からでも可能?副業の例や探し方も解説
- ITエンジニア
- 副業
ユーザーにとって高速で快適なWebサイトやサービスを運営するために、昨今において欠かせない存在となっているCDN。
今回は「なぜCDNがWebページ表示の高速化に繋がるのか」「サーバーの負荷軽減に繋がるのか」についての仕組みと、CDNベンダーによってどのような違いがあるかをご説明します。
CDNとは、コンテンツデリバリーネットワーク(Content Delivery Network)の略です。ネットワーク上に設置されたキャッシュサーバーのようなもので、コンテンツ配信の高速化/効率化を実現します。
どこにキャッシュサーバーが設置されるかはベンダーによりますが、国内外さまざまな場所に設置されており、インターネット上のネットワークの一部といっても過言ではないでしょう。
CDNはエンドユーザーからのアクセスに対して、ネットワーク的に距離が近いキャッシュから読みだして対応するものです。そのため、経由するサーバーが少なく、遠くのオリジンサーバーにアクセスするよりもエンドユーザーへのレスポンスが速くなります。
また、トラフィックの分散にも効果があります。オリジンサーバー以外のキャッシュサーバーが、エンドユーザーからのトラフィックを捌いてくれます。そのため、オリジンサーバーやそのネットワークの負荷軽減につながります。
エンドユーザーからのアクセスに対して、ネットワーク的に距離が近いCDN上でキャッシュされている内容を返す仕組みのため、オリジンサーバーの更新がリアルタイムに反映されないというデメリットがあります。CDN上の情報更新に時間が掛かるため、頻繁に更新され、リアルタイムに反映したいコンテンツには向きません。
動画コンテンツはデータ容量も大きいため、CDNを使った場合のトラフィックの負荷分散効果は非常に大きいです。また、動画コンテンツは静的に更新されることは基本的にないため、CDNの利用が向いています。
CDNはWordPressとの組み合わせてよく使われています。WordPressはエンドユーザーからリクエストのあるたびにDBを参照し、HTMLを動的に生成する仕組みのため、CDNの利用が負荷軽減及び高速化に効果的です。
画像を動的に生成するような仕組みの場合も、生成した画像をCDNでキャッシュし貯めることで、オリジンサーバーの負荷軽減が可能です。
CDNは大まかに「プル型」「プッシュ型」の2種類に分けらます。それぞれのメリット・デメリットを見ていきましょう。
「プッシュ型」のCDNは、キャッシュしている内容をサービス運営者側が更新するものです。動画コンテンツなどによく用いられます。
サービス(Web画面)用とは別に、配信専用のサーバーが運用されている場合に、大きなメリットがあります。CDNへサービス運営者が直接データをアップロードするため、CDNでキャッシュしている内容の更新状況をサービス運営者側で把握できます。
オリジンサーバーとは別に、CDNに直接データをアップロードしなければなりません。運用の手間が掛かり、実作業が煩雑になりやすいです。
「プル型」のCDNは、キャッシュしている内容をCDN側で自動更新するものです。WebサイトやWebサービスによく用いられます。
サービス運営者はオリジンサーバーのデータのみ更新することで、自動的にCDN側のキャッシュ更新もやってくれます。
キャッシュの更新を適切に行うには、HTTPヘッダという通信の中身について理解が必要です。HTTPヘッダの記述内容によって、CDNがキャッシュを更新するか判断するためです。そのためHTTPヘッダの内容によっては、オリジンサーバーの更新がCDNのキャッシュになかなか反映されない場合があります。
また、キャッシュの更新が頻繁に行われ、オリジンサーバーへのアクセスが多くなり、結果的にCDNの利点が打ち消されてしまうこともあります。
CDNベンダーは国内外にさまざまなものがありますが、ここではおすすめできる5つのベンダーを厳選してご紹介します。それぞれ特徴がありますので、要求に合致するサービスを探しましょう。
CDNと言えば老舗のAkamai。CDNの仕組み自体、Akamaiが提唱したとも言われています。世界中のデータセンターに分散配置されたEdgeサーバーにより、高い耐障害性を誇ります。
2017年Googleによる設定ミスで大規模なネットワーク障害が発生しましたが、AkamaiのCDNのお陰で復旧の早かったサービスもあるようです。
Amazonが提供するCDN。AWSの他のサービスと統合されており、Amazon S3やAmazon EC2を使って既にサービスを運用している場合にはおすすめのサービスといえます。
「Lambda@Edge」を利用することで、リクエストの応答時などにコードを実行でき、プログラマブルにCDNを利用できます。
Googleが提供するCDN。Google Cloud Platformに組み込まれており、Compute Engine VMやCloud Storage バケットをオリジンとして利用できます。
GCPのロードバランサーのバックエンドに用意されており、他のCDNと比べると機能は少ないですが、シンプルな作りで初心者にはおすすめできます。
Microsoftの提供するCDN。なおこのCDNは、Akamai / Verizonがサービスを構築しており、Microsoftがサービス提供のプラットフォームを展開しているものです。
Akamaiは動画配信を、Verizonがhttpsでの配信に対応しています。Azure上でサービスを構築する際にはぜひこちらを使ってみてください。
CloudFlareは、無料プランも用意されたCDNです。WordPressと組み合わせて使うユーザーが多く、近年多くの注目を集めています。
DDoS攻撃対策やDNSそのものもサービスとして提供しており、懐の深いサービスです。
いかがでしたか?
オリジンサーバーの負荷軽減やユーザーから見た遅延軽減、CDNに掛かる費用のバランスを考えながら、よりよいサービス提供に取り組んでいきましょう。