すべてのプロダクト
Search
ドキュメントセンター

CDN:CDN を使用して OSS コンテンツをより高速に配信する

最終更新日:Sep 19, 2025

Content Delivery Network (CDN) を使用して、Object Storage Service (OSS) バケットからの静的リソースを高速化します。この設定では、OSS がオリジンサーバーとして機能します。CDN は世界中の Points of Presence (POP) にファイルをキャッシュするため、ユーザーは最も近いノードからコンテンツを取得できます。これにより、待機時間が大幅に短縮され、オリジンサーバーの負荷が軽減されます。

メリット

Alibaba Cloud OSS は低コストのストレージを提供し、CDN は静的リソースの配信を高速化します。CDN のオリジンサーバーとして OSS を使用すると、次のメリットがあります。

  • CDN はリソースに対するすべてのユーザーリクエストをルーティングするため、オリジンサーバーの負荷が軽減されます。

  • CDN トラフィックの単価は、OSS に直接アクセスする場合のインターネット経由のアウトバウンドトラフィックよりも低くなります。

  • クライアントは最寄りの CDN POP からリソースをフェッチするため、ネットワーク伝送が短縮され、待機時間が短縮されます。

技術アーキテクチャ

CDN は OSS のキャッシュレイヤーとして機能します。ユーザーがリソースをリクエストすると、リクエストはまず最寄りの CDN POP に到達します。

  • キャッシュヒット: POP がリクエストされたリソースをキャッシュしている場合、リソースを直接ユーザーに返し、応答時間を短縮します。

  • キャッシュミス: POP がリクエストされたリソースをキャッシュしていない場合、リクエストをオリジンサーバー (OSS バケット) に転送してリソースをフェッチします。その後、POP はリソースをユーザーに返し、将来のリクエストのためにコピーをキャッシュします。

image

課金

CDN のアウトバウンドトラフィックおよび OSS から CDN へのオリジントラフィックに対して料金が発生する場合があります。詳細については、「OSS コンテンツ高速化の課金」をご参照ください。

開始する前に

手順

ステップ 1: CDN にドメイン名を追加し、OSS に関連付ける

CDN コンソールで高速化用のドメイン名を追加し、オリジンサーバーとして OSS バケットに関連付けます。

  1. CDN コンソールにログインし、[ドメイン名] ページに移動します。

  2. ドメイン名の追加 をクリックし、基本情報を設定します。

    • ドメイン: www.example.com など、インターネットにコンテンツを提供するためのドメイン名。

    • アクセラレーションリージョン: 主要なユーザーベースに最も近いリージョン。

    • ビジネスタイプ: リソースタイプ。たとえば、20 MB 未満の画像や小さい Web ファイルの場合は、[画像と小さいファイル] を選択します。

  3. [オリジンサーバーの追加] をクリックし、OSS 情報を入力します。

    • オリジン情報: [OSS ドメイン]

    • ドメイン名: ドロップダウンリストからターゲット OSS バケットのパブリックエンドポイントを選択します。

    image

  4. [OK] をクリックし、次に [次へ] をクリックして、推奨される CDN 機能を設定します。

ステップ 2: コア高速化ポリシーを設定する (推奨機能)

推奨機能ウィザードに従って、キャッシュの有効期限、Range back-to-origin、および URL パラメーターの無視を設定します。これらの設定により、CDN のキャッシュヒット率、アクセスパフォーマンス、およびセキュリティが向上します。

2.1 キャッシュの有効期限を設定する

適切なキャッシュルールは、CDN のパフォーマンスを最大化し、オリジンへの不要なリクエストを削減します。リソースの特性に基づいて、Time-to-Live (TTL) とも呼ばれるキャッシュの有効期限を設定します。最初に一致したルールが有効になります。以下は推奨される設定です。

ファイルタイプ

拡張子

TTL

説明

画像/音声/動画

jpg,png,gif,mp3,mp4

30 日

コンテンツは頻繁に変更されません。

静的スクリプト

js,css

1 時間

コンテンツはバージョンリリースに伴い頻繁に変更されます。

ウェブサイトのホームページ

html

キャッシュなし (0 秒)

ユーザーが常に最新のページ構造を受け取ることを保証します。

2.2 パラメーターの無視を設定する

[パラメーターの無視] 機能は、キャッシュキーを生成する際にクエリ文字列 (URL の ? の後の部分) を削除します。これにより、リクエスト URL に異なるパラメーターがあっても同じキャッシュファイルが提供され、キャッシュヒット率が向上し、オリジントラフィックが削減されます。

image

2.3 Range back-to-origin を有効にする

この機能は、画像のような小さいファイルではなく、音声や動画などの大きいファイルを配信する場合に推奨されます。

[Range back-to-origin] を有効にすると、CDN POP が OSS バケットから大きいファイルをリクエストした場合、OSS は CDN リクエストで指定された範囲に基づいてコンテンツをチャンクで返します。これにより、トラフィック消費とリソースの応答時間が短縮されます。

image

2.4 OSS ファイルの自動キャッシュ更新を設定する

OSS コンソール[バケット設定] > [ドメイン名] ページで、ターゲットドメインに対して [カスタムドメイン名のマッピング][自動 CDN キャッシュ更新] を有効にします。自動 CDN 更新をトリガーするアクションを選択します。

説明

更新はイベントベースであり、100% 信頼できるものでもリアルタイムでもありません。ネットワークの問題や高トラフィックなどの極端な状況では、リフレッシュイベントが失われる可能性があります。即時更新が必要な場合は、リソースの消去とプリフェッチを使用することをお勧めします。

image

ステップ 3: DNS 解決を設定および検証する

  1. CDN コンソールの [ドメイン名] ページに移動し、ステップ 1 で追加したドメインを見つけて、その CNAME 値をコピーします。値が空の場合はページを更新してください。

    CANME-cn.jpg

  2. 同じ Alibaba Cloud アカウントで DNS コンソールにログインします。[パブリックゾーン] ページで、ドメインを見つけて [設定] をクリックします。

  3. [レコードの追加] をクリックして CNAME レコードを作成します。

    • レコードタイプ: CNAME

    • ホスト名: サブドメインのプレフィックス (例: www)。

    • レコード値: CDN コンソールからコピーした CNAME 値。

  4. 他のパラメーターはデフォルト値のままにして、[OK] をクリックします。

    image

ステップ 4: セキュリティ設定を構成する

4.1 HTTPS を有効にする

HTTPS を使用するには、CDN コンソールでドメインに証明書を追加する必要があります。有効な証明書を追加するまで、ドメインは HTTPS 経由で機能しません。

説明

HTTPS を有効にすると、従量課金の HTTPS リクエストが発生します。これらのリクエストは CDN データ転送パッケージの対象外です。支払い遅延によるサービス停止を防ぐために、アカウントに十分な残高があることを確認するか、HTTPS リクエストパッケージを購入してください。詳細については、「静的 HTTPS リクエスト」をご参照ください。

  1. CDN コンソールの [ドメイン名] ページに移動し、追加したドメインを見つけて、[操作] 列の [管理] をクリックします。

  2. HTTPS 設定 タブを選択し、HTTPS 証明書 セクションで [変更] をクリックします。

  3. HTTPS 設定 ページで、HTTPS セキュアアクセラレーション をオンにし、証明書パラメーターを設定します。

    HTTPS-cn.jpg

    説明
    • Alibaba Cloud Certificate Management Service の証明書をお持ちの場合は、SSL 証明書サービス を選択し、証明書名 ドロップダウンリストから購入した証明書を選択します。証明書が見つからない場合は、証明書にバインドされているドメインが高速化ドメインであるかどうかを確認してください。

    • サードパーティの証明書を使用している場合は、カスタム証明書 (証明書 + プライベートキー) を選択します。証明書名 を入力し、証明書 (公開鍵)秘密鍵 をアップロードする必要があります。これにより、証明書が Alibaba Cloud Certificate Management Service に保存されます。証明書は [マイ証明書] で表示できます。

4.2 プライベートバケットへの CDN アクセスを承認する

OSS バケットがプライベートの場合は、CDN にアクセス権を付与します。そうしないと、権限がないため、すべてのオリジンリクエストが失敗します。

  1. CDN コンソールの [ドメイン名] ページに移動し、追加したドメインを見つけて、[操作] 列の [管理] をクリックします。

  2. Back-to-Origin 設定 セクションで、OSS 非公開バケットへのアクセス をオンにし、[同一アカウント内のバケット] を選択します。クロスアカウントアクセスについては、「プライベート OSS バケットからのオリジンフェッチを設定する」をご参照ください。

  3. image

4.3 URL 署名を設定する

URL 署名 (タイムスタンプベースのホットリンク保護とも呼ばれます) は、アクセス URL に署名と TTL を追加することで、リソースへの不正アクセスを防止します。CDN はいくつかの署名メソッドを提供します。

  1. Alibaba Cloud CDN コンソールの [ドメイン名] ページに移動し、追加したドメインを見つけて、[操作] 列の [管理] をクリックします。

  2. リソースアクセス制御 タブで、URL 署名の設定 を選択し、[変更] をクリックします。

  3. 設定ページで、タイプ A を選択し、マスターキーマスターキー を設定し (少なくとも 1 つのキーを設定)、それらを保存します。サーバーはこれらのキーを使用して署名付き URL を検証します。使用例については、「タイプ A 署名」をご参照ください。

  4. 署名付き URL の TTL を設定します (例: 1800 秒)。

    image

4.4 使用量上限を設定する

使用量上限を設定して、ドメインの最大帯域幅、トラフィック、および HTTPS リクエスト数を設定します。これにより、攻撃やリソースの乱用による予期しないトラフィックスパイクによる高額な請求や金銭的損失を防ぐことができます。

  1. [ドメイン名] ページで、ターゲットドメインを見つけ、[操作] 列の [管理] をクリックします。

  2. ドメインの左側のナビゲーションウィンドウで、トラフィックスロットリング をクリックします。

  3. [使用量上限] タブで、機能の説明を参照して、使用量上限ポリシーを設定します。

  4. [変更] をクリックして、[統計期間][しきい値]、および [ブロック解除時間] を設定します。パラメーターの詳細については、機能の説明をご参照ください。

  5. [OK] をクリックします。使用量上限ルールが作成され、すぐに有効になります。

4.5 モニタリングとアラートを設定する

リアルタイムモニタリングを設定する

特定のドメインのピーク帯域幅に対してアラートルールを設定します。ピーク帯域幅が設定されたしきい値に達すると、システムは管理者にアラートを送信し、潜在的なリスクにタイムリーに対応できるようにします。

支出アラートを設定する

[課金] > [請求管理][利用可能クレジットアラート] 機能を使用して、アカウントの支出を管理します。アカウントの残高が特定の金額を下回ると、指定した連絡先にアラートを送信します。

トラブルシューティング

リクエストが 403 Forbidden を返す

トラブルシューティングの手順

  • ページのエラーメッセージを確認します。You don't have permission to access the URL on this serverdenied by IP ACL = not in whitelist のような理由が含まれている場合は、この情報を使用してブロックしているポリシーを特定します。

  • エラーメッセージが追加の詳細なしで You don't have permission to access the URL on this server である場合は、CDN の URL 署名とリモート認証の設定を確認してください。

キャッシュヒット率が低く、オリジンリクエストが頻繁に発生する

トラブルシューティングの手順

同じリソースに対して curl -I コマンドを複数回実行し、Age および X-Cache 応答ヘッダーを確認します。Age: 0 または X-Cache: MISS はキャッシュミスを示します。

解決策

  • キャッシュルールの TTL が短すぎるか、「キャッシュなし」に設定されています。キャッシュルールの TTL を長くしてください。

  • [パラメーターの無視] が有効になっていますが、URL にはバージョン管理や画像処理に必要なパラメーター (例: ?v=1.1x-oss-process) が含まれています。これにより、CDN は URL の異なるバージョンを同じリソースとして扱い、コンテンツエラーや機能の失敗につながります。この場合、[パラメーターの無視] を無効にしてください。

  • オリジンの応答ヘッダー (例: Cache-Control: no-cache) が CDN にリソースをキャッシュしないように指示しています。オリジンのキャッシュポリシーを調整するか、キャッシュの有効期限を設定する際に [オリジンの No-Cache ヘッダーを無視] を有効にして、CDN がオリジンの no-cache ヘッダーを無視するように設定します。

AccessDenied エラー

トラブルシューティングの手順

エラーメッセージを確認します。You have no right to access this object because of bucket acl の場合、OSS バケットの ACL がプライベートであり、CDN にアクセスを承認していないためにエラーが発生します。

解決策

CDN コンソールの [オリジンフェッチ] ページで、プライベート OSS バケットを有効にします。次に、リソースの消去とプリフェッチ機能を使用して、キャッシュされたエラーを消去します。リンクが更新されると、リソースにアクセスできます。