コンテンツデリバリーネットワーク (CDN) を使用して、Object Storage Service (OSS) バケットからの静的リソースへのアクセスを高速化します。この設定では、OSS がオリジンサーバーとして機能します。CDN は、世界中の POP (Points of Presence) にファイルをキャッシュするため、ユーザーは最寄りのノードからコンテンツを取得できます。これにより、レイテンシーが大幅に削減され、オリジンサーバーの負荷が軽減されます。
メリット
Alibaba Cloud OSS は低コストのストレージを提供し、CDN は静的リソースの配信を高速化します。OSS を CDN のオリジンサーバーとして使用すると、次のメリットがあります。
-
CDN はリソースに対するすべてのユーザーリクエストをルーティングするため、オリジンサーバーの負荷が軽減されます。
-
CDN トラフィックの単位価格は、OSS への直接アクセスによるインターネットアウトバウンドトラフィックよりも低くなります。
-
クライアントは最寄りの CDN POP からリソースをフェッチするため、ネットワーク転送が短縮され、レイテンシーが削減されます。
技術アーキテクチャ
CDN は OSS のキャッシュレイヤーとして機能します。ユーザーがリソースをリクエストすると、リクエストはまず最寄りの CDN POP に到達します。
-
キャッシュヒット: POP がリクエストされたリソースをキャッシュしている場合、リソースをユーザーに直接返し、応答時間を短縮します。
-
キャッシュミス: POP がリクエストされたリソースをキャッシュしていない場合、リクエストをオリジンサーバー (OSS バケット) に転送してリソースをフェッチします。その後、POP はリソースをユーザーに返し、将来のリクエストのためにコピーをキャッシュします。
課金
CDN アウトバウンドトラフィックと、OSS から CDN へのオリジントラフィックに対して料金が発生する場合があります。詳細については、「OSS コンテンツアクセラレーションの課金」をご参照ください。
事前準備
-
Alibaba Cloud アカウントに登録し、本人確認を完了しました。
-
OSS をアクティブ化し、リソースをアップロード済みであること。
-
有効なドメイン名を所有していること。
-
中国本土でリソースを高速化するには、まずICP 登録プロセスを完了してください。
操作手順
ステップ 1: CDN にドメイン名を追加し、OSS に関連付け
CDN コンソールでアクセラレーション用のドメイン名を追加し、オリジンサーバーとして OSS バケットに関連付けます。
-
CDN コンソールにログインし、[ドメイン名] ページに移動します。
-
ドメイン名の追加 をクリックし、基本情報を設定します:
-
ドメイン: インターネット上にコンテンツを提供するためのドメイン名です。例:
www.example.com。 -
アクセラレーションリージョン: お客様の主なユーザー層に最も近いリージョンです。
-
ビジネスタイプ:お客様のリソースタイプです。 たとえば、20 MB 未満のイメージおよび small Web ファイルの場合は、[イメージと small ファイル] を選択します。
-
-
[オリジンサーバーの追加] をクリックし、OSS の情報を入力します:
-
[オリジン情報]: OSS ドメイン。
-
[ドメイン名]: ドロップダウンリストから対象の OSS バケットのパブリックエンドポイントを選択します。

-
-
[OK] をクリックし、次に [次へ] をクリックして推奨 CDN 機能を設定します。
ステップ 2: コアアクセラレーションポリシー (推奨機能) の構成
推奨機能ウィザードに従って、キャッシュの有効期限、Range オリジンフェッチ、URL パラメーターの無視を構成します。これらの設定により、CDN のキャッシュヒット率、アクセスパフォーマンス、およびセキュリティが向上します。
2.1 キャッシュの有効期限の構成
適切なキャッシュルールは、CDN のパフォーマンスを最大化し、オリジンへの不要なリクエストを削減します。キャッシュの有効期限 (Time-to-live (TTL) とも呼ばれます) をリソースの特性に基づいて設定します。最初に一致したルールが適用されます。以下に推奨される構成を示します。
|
ファイルタイプ |
拡張機能 |
TTL |
説明 |
|
画像/オーディオ/ビデオ |
|
30 日 |
コンテンツは頻繁に変更されません。 |
|
静的スクリプト |
|
1 時間 |
コンテンツはバージョンリリースに伴い頻繁に変更されます。 |
|
ウェブサイトのホームページ |
|
キャッシュなし (0 秒) |
ユーザーが常に最新のページ構造を受け取ることを保証します。 |
2.2 [パラメーターの無視] の構成
[パラメーターの無視] 機能は、キャッシュキーを生成する際にクエリ文字列 (URL の ? の後の部分) を削除します。これにより、リクエスト URL に異なるパラメーターが含まれていても同じキャッシュファイルが提供され、キャッシュヒット率が向上し、オリジントラフィックが削減されます。

2.3 [Range オリジンフェッチ] の有効化
この機能は、画像のような小さなファイルではなく、オーディオやビデオのような大きなファイルを配信する場合に推奨されます。
Range オリジンフェッチの構成を有効にすると、CDN POP が OSS バケットから大きなファイルをリクエストした場合、OSS は CDN リクエストで指定された範囲に基づいてコンテンツをチャンクで返します。これにより、トラフィック消費とリソース応答時間が削減されます。

2.4 OSS ファイルの自動キャッシュ更新の設定
OSS コンソールの[バケット設定] > [ドメイン名]ページで、対象ドメインの[カスタムドメイン名のマッピング]と[CDN キャッシュの自動更新]を有効にします。 自動 CDN 更新をトリガーするための操作を選択します。
更新はイベントベースであり、100% 信頼できるものではなく、リアルタイムではありません。ネットワークの問題や高トラフィックなどの極端なケースでは、更新イベントが失われる可能性があります。即時更新が必要な場合は、リソースのパージとプリフェッチを使用することを推奨します。

ステップ 3: DNS 解決の構成と検証
-
CDN コンソールの ドメイン ページに移動し、ステップ 1 で追加したドメインを見つけて、その CNAME 値をコピーします。値が空の場合はページをリフレッシュしてください。

-
同じ Alibaba Cloud アカウントで、DNS コンソールにログインします。パブリックゾーンページでドメインを見つけ、[設定] をクリックします。
-
CNAME レコードを作成するには、[レコードの追加] をクリックします。
-
レコードタイプ:
CNAME。 -
ホスト名: サブドメインのプレフィックス (例:
www)。 -
レコード値: CDN コンソールからコピーした CNAME 値。
-
-
その他のパラメーターはデフォルト値のままにし、[OK] をクリックします。

ステップ 4: セキュリティ設定の構成
4.1 HTTPS の有効化
HTTPS を使用するには、CDN コンソールでドメインに証明書を追加する必要があります。有効な証明書を追加するまで、ドメインは HTTPS 経由で機能しません。
HTTPS を有効にすると、従量課金制の HTTPS リクエストが生成されます。これらのリクエストは CDN データ転送パッケージの対象外です。支払い遅延によるサービス停止を防ぐため、アカウントに十分な残高があることを確認するか、HTTPS リクエストパッケージを購入してください。詳細については、「静的 HTTPS リクエスト」をご参照ください。
-
CDN コンソールのドメインページに移動し、追加したドメインを見つけて、[管理]を[操作]列でクリックします。
-
「HTTPS 設定」タブを選択し、「HTTPS 証明書」セクションで、[変更] をクリックします。
-
「HTTPS 設定」ページで、「HTTPS セキュアアクセラレーション」を有効化し、証明書パラメーターを設定します。
説明-
Alibaba Cloud Certificate Management Service から取得した証明書がある場合は、SSL 証明書サービス を選択し、証明書名 ドロップダウンリストから購入済みの証明書を選択します。証明書が見つからない場合は、証明書にバインドされているドメインがアクセラレーション対象ドメインであるかどうかを確認してください。
-
サードパーティ証明書を使用している場合は、カスタム証明書 (証明書 + プライベートキー)を選択します。 証明書名を入力し、次に証明書 (公開鍵)と秘密鍵をアップロードする必要があります。 これにより、証明書は Alibaba Cloud Certificate Management Service に保存されます。 [マイ証明書]で証明書を表示できます。
-
4.2 CDN にプライベートバケットへのアクセスを許可
OSS バケットが非公開の場合、CDN にアクセスを許可する必要があります。そうしないと、権限がないためすべてのオリジンリクエストが失敗します。
-
CDN コンソールでドメインページに移動し、追加したドメインを見つけて、[管理]を[操作]列でクリックします。
-
「Back-to-Origin 設定」セクションで、OSS 非公開バケットへのアクセス を有効化し、[同一アカウント内のバケット] を選択します。クロスアカウントアクセスの場合は、「プライベート OSS バケットからのオリジンフェッチ」をご参照ください。

4.3 URL 署名の構成
URL 署名 (タイムスタンプベースのホットリンク保護とも呼ばれます) は、アクセス URL に署名と TTL を追加することで、リソースへの不正アクセスを防ぎます。CDN はいくつかの署名方法を提供しています。
4.4 使用量上限の構成
使用量上限の構成 を行うことで、ドメインの最大帯域幅、トラフィック、および HTTPS リクエスト数を設定できます。これにより、攻撃やリソースの不正利用によって引き起こされる予期せぬトラフィックスパイクによる高額請求や経済的損失を防ぐことができます。
4.5 モニタリングとアラートの設定
リアルタイムモニタリングの設定
特定のドメインのピーク帯域幅に対してアラートルールを設定します。ピーク帯域幅が設定されたしきい値に達すると、システムは管理者にアラートを送信し、潜在的なリスクにタイムリーに対応できるようにします。
支出アラートの設定
アカウントの支出を管理するには、[請求] > [請求管理] の利用可能残高アラート機能を使用します。この機能は、アカウントの残高が一定額を下回った場合に、指定された連絡先にアラートを送信します。
トラブルシューティング
リクエストで 403 Forbidden が返される場合
トラブルシューティング手順
-
ページ上のエラーメッセージを確認します。メッセージに
You don't have permission to access the URL on this serverが含まれ、理由としてdenied 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.1やx-oss-processなど) が含まれています。これにより、CDN は異なるバージョンの URL を同じリソースとして扱い、コンテンツエラーや機能の不具合を引き起こします。この場合は、[パラメーターを無視] を無効にしてください。 -
オリジンレスポンスヘッダー (
Cache-Control: no-cacheなど) が、リソースをキャッシュしないように CDN に指示しています。オリジンのキャッシュポリシーを調整するか、キャッシュの有効期限を設定する際に [オリジンのキャッシュなしヘッダーを無視] を有効にして、CDN がオリジンのキャッシュなしヘッダーを無視するように設定してください。
AccessDenied エラー
トラブルシューティング手順
エラーメッセージを確認します。メッセージが You have no right to access this object because of bucket acl である場合、エラーの原因は OSS バケットの ACL が非公開であり、CDN にアクセス権限を付与していないことです。
ソリューション
CDN コンソールの [オリジン取得] ページで、プライベート OSS バケットを有効にします。次に、リソースのパージとプリフェッチ機能を使用して、キャッシュされたエラーをパージします。リンクが更新されると、リソースにアクセスできるようになります。
