CDNとクラウドの連携で起こりうる不具合
AWSやAzureなどのクラウド上のサーバやストレージを配信元にしてCDNを利用する構成があります。ただし、CDNとクラウドの双方で設定が必要なため、どちらかの設定が不足すると不具合が起こる場合があります。主な原因を3つ紹介します。
配信元の接続設定の不一致
CDNが配信元からデータを取得する際は、配信元のドメイン名や接続に使う通信方式、接続先を区別するポート番号などの設定が必要です。これらがクラウド側の設定と一致していないと、CDNがデータを取得できず、利用者にエラー画面が表示される場合があります。
例えば、クラウド側で暗号化通信のみを受け付けているのに、CDNが暗号化されていない通信で接続しようとするケースが考えられます。エラーの番号をCDNのログで確認すると、原因の手がかりを得られます。
ストレージのアクセス権限によるエラー
クラウドのストレージを配信元にする場合、CDN以外からの直接アクセスを防ぐために、アクセス権限を制限する設定を行うことがあります。この権限の設定が不足していると、CDNからのアクセスも拒否され、ファイルが表示されなくなる場合があります。
反対に、権限を広く開放しすぎると、CDNを経由せずにファイルへ直接アクセスされるおそれがあります。権限の設定は、クラウドとCDNの双方のマニュアルを確認し、検証環境で動作を確かめてから本番に反映しましょう。
ヘッダー情報の扱いによる不具合
Webの通信では、データ本体とは別に、通信の条件を伝えるヘッダーと呼ばれる情報がやり取りされます。CDNがヘッダーの一部を配信元へ転送しない設定になっていると、配信元が正しく応答できない場合があります。
また、フォントや動画を別のドメインから読み込む場合、許可に関するヘッダーが正しく返されないと、ブラウザが読み込みを拒否することがあります。CDNと配信元のどちらでヘッダーを設定するかを決め、二重に設定しないよう注意しましょう。
CDNとWordPressの連携で起こりうるエラー
WordPressは、サイトの記事やページを管理するCMSの1つです。CDNと組み合わせて表示速度を高める使い方があります。ただし、WordPressは動的にページを作る仕組みのため、キャッシュ(一時保存したデータ)の設定やプラグインの組み合わせによってはエラーが起こる場合があります。
ログイン状態や管理画面がキャッシュされる
WordPressの管理画面やログイン中のページをCDNがキャッシュすると、ほかの利用者にログイン中の情報が表示されたり、管理画面の操作が正しく反映されなかったりする可能性があります。
管理画面のURLや、ログイン状態を示すCookie(閲覧者を識別する情報)がある通信をキャッシュの対象から外す設定を確認しましょう。会員サイトやECサイトとしてWordPressを使っている場合は、マイページやカートの画面もキャッシュの対象から外す必要があります。設定後は、複数のアカウントで表示を確認しておくと安心です。
プラグインと機能が競合する
WordPressでは、表示を速くするためのキャッシュ系のプラグインや、セキュリティ系のプラグインを導入しているケースがあります。これらのプラグインとCDNの機能が重なると、キャッシュが二重にかかって更新が反映されない、画面の一部が崩れるといった問題が起こる場合があります。
CDNの導入時には、既存のプラグインの機能と重複する部分を整理し、どちらで処理するかを決めましょう。プラグインの更新後に不具合が出た場合は、更新内容とCDNの設定の両方を確認します。
記事の更新が反映されない
記事を更新しても、CDNのキャッシュが残っていると古い内容が表示され続けます。更新時に自動でキャッシュを削除するプラグインや連携機能を使っている場合でも、設定の誤りや連携先の一時的な不具合で、削除が実行されない可能性があります。
更新が反映されない場合は、CDNの管理画面でキャッシュの削除の履歴を確認しましょう。削除が実行されていなければ、連携の設定やAPIの認証情報の有効期限を確認します。
CDNのAPIの呼び出し回数の制限
CDNのAPIを使えば、キャッシュの削除や設定の変更を他のシステムから自動で実行できます。ただし、APIには呼び出し回数などの上限が設けられている場合があり、連携の設計によっては上限に達して処理が失敗することがあります。
上限が設けられる理由と主な内容
CDNのAPIの上限は、多くの利用者が共有する事業者のシステムを安定して運用するために設けられています。上限の内容は製品によって異なり、一定時間内に呼び出せる回数や、一度に削除できるURLの数、同時に処理できる依頼の数などが代表的です。
上限の値は、契約しているプランによって異なる場合もあります。公開されている仕様書や、ベンダーへの問い合わせで、自社が利用するプランでの上限を確認しておきましょう。
上限に達したときの影響
APIの上限に達すると、それ以降の呼び出しがエラーとして返され、一定時間が経過するまで処理を受け付けなくなる場合があります。キャッシュの削除が実行されないまま、古い情報が表示され続ける可能性があります。
連携の仕組みがエラーを記録していないと、削除が失敗したことに気付けません。エラーを検知して管理者に通知する仕組みや、時間をおいて自動で再実行する仕組みがあるかを、連携を開発する段階で確認しておくことが大切です。
上限を意識した連携の設計
上限に達するのを避けるには、更新のたびに1件ずつAPIを呼び出すのではなく、一定の間隔で複数の削除をまとめて実行する方法があります。タグやフォルダ単位でまとめて削除できる機能があれば、呼び出し回数を減らせます。
また、大量の商品を一括で更新するなど、呼び出しが集中する作業の予定がある場合は、作業の時間を分散させることも有効です。設計の段階で開発部門や制作会社と上限の値を共有しておきましょう。
ITトレンドでは、最新の製品・サービスを多数比較・掲載しています。まず資料請求して、さまざまな製品の機能や特徴を比較してみてください。忙しい業務時間内でも、各社に問い合わせる手間なく、たった1回の入力(約60秒)でCDNの一括資料請求が可能です。浮いた時間で、じっくりと製品を比較検討し進めましょう。
ECカートと連携しても手作業が残るケース
ECカートシステムとCDNを連携しても、関連する作業が自動化されるとは限りません。カートシステムとCDNのどちらの機能で何を処理するかが整理されていないと、担当者の手作業が残る場合があります。主なケースを3つ紹介します。
商品情報の更新とキャッシュ削除
商品の説明や画像を更新した際、ECカートシステムがCDNのキャッシュを自動で削除する機能を持っていない場合は、担当者が管理画面から手作業で削除する必要があります。商品の数が多いと、削除の漏れが起こる可能性があります。
カートシステムの提供会社に、利用するCDNとの連携機能があるか、または更新を検知してAPIを呼び出す仕組みを作れるかを確認しましょう。連携が難しい場合は、商品ページのキャッシュの保持期間を短めに設定する方法も考えられます。
在庫や価格の表示のずれ
在庫数や価格をページの一部として表示している場合、ページ全体をキャッシュすると、実際の在庫や価格と表示がずれる可能性があります。このずれを確認して直すために、担当者が定期的に画面を見回る作業が発生することもあります。
在庫や価格は、ページの表示後に別の通信で最新の情報を取得する構成にすると、キャッシュの影響を受けにくくなります。構成の変更には開発が必要なため、カートシステムの仕様を確認したうえで、制作会社と相談しましょう。
受注や会員データとの連携範囲
CDNは主にページやファイルの配信を担う仕組みで、受注データや会員データの連携は、通常はカートシステムや基幹システムの役割です。CDNの導入で受注処理まで自動化されると考えていると、導入後に手作業が残っていることに気付く場合があります。
導入前に、自動化したい業務を一覧にし、CDNで対応する部分と他のシステムで対応する部分を分けて整理しておきましょう。役割の分担が明確になれば、必要な連携の開発範囲も見積もりやすくなります。
連携先の環境にあわせて選ぶCDN
AWSやAzureなどのクラウド、WordPressなどのCMSとの連携を前提に比較したいCDNサービスを紹介します。連携方法や制限事項を資料で確かめてください。
エッジキャッシュCDN
- 限られた予算で効率化・年間予算を決定しやすい月額定額料金採用
- 専門知識不要・設定やチューニングはすべてサポートが実施
- Webサイトやサーバーに変更を加えることなく導入可能
合同会社レッドボックスが提供する「エッジキャッシュCDN」は、Webサイトやサーバーに変更を加えることなく導入できるCDNサービスです。既存のサーバー構成を変えずに、配信の高速化を図りたい場合の選択肢に入ります。キャッシュ技術を活用し、Web表示速度の向上や突発的な負荷への対策、CMSなどのセキュリティ強化を行えます。設定やチューニングはサポートが実施するため、連携先ごとの調整を相談しながら進めたい企業も検討できるでしょう。
AmazonCloudFront (アマゾンウェブサービスジャパン合同会社)
- 700以上のPoPで低遅延配信。
- AWS Shield StandardでDDoS攻撃防御を無料提供
- サーバーレスでエッジコードをカスタマイズ
AzureContentDeliveryNetwork (日本マイクロソフト株式会社)
- グローバルな高速・高信頼性コンテンツ配信。
- カスタムドメインHTTPSなどでコンテンツをセキュアに保護可能。
- Azureとの統合で数分で導入、スケーラブルに対応。
Google Cloud CDN (グーグル合同会社)
- Googleのエッジ網でコンテンツを高速配信
- 遅延低減によるウェブ・アプリの性能向上
- キャッシュ活用でサーバー負荷と帯域コストを削減
Netlify (Netlify)
- サーバーレスで低コスト・低負荷、高速・安全に構築。
- 適切な開発とセキュリティ対策で安全なアプリを実現
- ウェブサイトやデータを統合し、管理と分析を効率化する。
KeyCDN (proinity LLC)
- 世界のエッジサーバーを活用した低遅延配信CDN
- HTTP/2・Brotliによる高速化・性能最適化
- APIとSDKで既存インフラやアプリへ容易に統合可能。
CDN77 (DataCamp Limited)
- リアルタイムでの詳細なレポートと分析機能を提供。
- API経由でCDN設定の自動化と管理が可能。
- HTTP/3など最新技術をサポート
CDNの連携エラーに関するよくある質問
CDNの連携で不具合が起きた際によく寄せられる質問と、その回答をまとめました。
- Q1:連携エラーの原因がCDNと連携先のどちらにあるか、どう判断すればよいですか?
- CDNのログでエラーの番号や発生したURLを確認し、CDNを経由せずに配信元へ直接アクセスした場合と結果を比べる方法があります。判断が難しい場合は、両方の事業者に同じ情報を伝えて確認を依頼しましょう。
- Q2:クラウド事業者のCDNを選べば連携のエラーは起きませんか?
- 同じ事業者のサービスどうしは設定を進めやすい場合がありますが、権限や接続の設定を誤ればエラーは起こりえます。どの製品を選ぶ場合でも、検証環境で動作を確認してから本番に反映することが大切です。
- Q3:WordPressのプラグインを更新するときに注意することはありますか?
- キャッシュやセキュリティに関わるプラグインは、CDNの設定と関係する場合があります。更新前に変更内容を確認し、更新後は主要なページの表示と記事の更新の反映を確認しましょう。
まとめ
CDNの連携エラーは、複数の要因で起こる可能性があります。例えば、クラウドとの接続設定やアクセス権限、WordPressのキャッシュの対象やプラグインとの競合です。APIの呼び出し回数の上限や、ECカートとの役割分担の不足も原因になりえます。原因はCDNと連携先の双方にある場合があるため、ログで切り分け、検証環境で確認してから反映することが大切です。連携のしやすさやAPIの上限も含めて、資料請求をして複数のCDNを比較検討してみてください。

