Alibaba Cloud CDN は、OSS ドメイン名、IP アドレス、オリジンドメイン名、Function Compute ドメイン名といったオリジンタイプをサポートしています。 各オリジンタイプは複数のオリジンアドレスをサポートします。 複数のオリジンが存在するシナリオでは、プライマリとセカンダリの優先度と重みを設定して、負荷分散を実現できます。
注意事項
CDN がオリジンからリソースをフェッチすると、オリジン側で帯域幅の料金が発生します。 たとえば、オリジンが IDC の場合、IDC のアウトバウンド帯域幅料金を支払います。 オリジンが OSS の場合、OSS のアウトバウンドトラフィック料金を支払います。
オリジン情報の追加または変更
Alibaba Cloud CDN コンソールにログインします。
左側のナビゲーションペインで [ドメイン名 ] をクリックします。
[ドメイン名] ページで、管理対象のドメイン名を見つけ、[アクション] 列の [管理] をクリックします。

オリジンサイト情報 セクションで、必要に応じてオリジン設定を追加または変更します。
配信元サーバーの追加 をクリックしてオリジンを追加します。
既存のオリジンの横にある 編集 をクリックして、その設定を変更します。
パラメーター
説明
[オリジンサイト情報]
オリジンタイプを選択し、オリジンアドレスを入力します。
[OSS ドメイン名]
同一アカウント配下にある OSS バケットのパブリックエンドポイントをドロップダウンリストから選択し、オリジンとして使用します。
OSS バケットのパブリックエンドポイントをオリジンとして入力します (プライベートエンドポイントはサポートされていません)。 例:
***.oss-cn-hangzhou.aliyuncs.com。OSS のパブリックエンドポイントは OSS コンソールで確認できます。
説明詳細については、「OSS リソースの CDN 高速化」をご参照ください。
Alibaba Cloud OSS からのオリジンフェッチに対するトラフィック割引:
割引価格の適用対象となるには、CDN コンソールでオリジンタイプを [OSS ドメイン] に設定する必要があります。これにより、OSS は Alibaba Cloud CDN からのオリジントラフィックを「CDN オリジンアウトバウンドトラフィック」として認識します。
CDN コンソールで誤ってオリジンタイプを [サイトドメイン] に設定した場合、Alibaba Cloud OSS は Alibaba Cloud CDN からのオリジントラフィックを「インターネット経由のアウトバウンドトラフィック」として分類するため、割引価格の対象にはなりません。
課金の詳細については、「CDN で高速化された OSS リソースの課金」をご参照ください。
Alibaba Cloud OSS をオリジンとして使用する場合、デフォルトのオリジン Host ヘッダーを設定する必要があります。 これを OSS バケットのパブリックエンドポイントに設定してください。 そうしないと、オリジンに到達できなくなります。
Alibaba Cloud OSS をオリジンとして使用する場合、デフォルトのオリジン SNI を設定することを推奨します。 これを OSS バケットのパブリックエンドポイントに設定してください。 そうしないと、OSS がレート制限を適用する可能性があります。
[IP]
1 つ以上の IP アドレスをオリジンとして設定できます。プライベート IP アドレスはサポートされていません。 IPv4 と IPv6 の両方のアドレスがサポートされていますが、IPv6 アドレスのみを使用することはできず、少なくとも 1 つの IPv4 アドレスを含める必要があります。 Alibaba Cloud ECS インスタンスのパブリック IP をオリジンとして使用すると、手動レビューを回避できます。 IPv6 オリジンアドレスを使用するには、事前に IPv6 経由でのオリジンフェッチを有効にする必要があります。 事前に有効にしないと、IPv6 オリジンアドレスが有効にならず、オリジンフェッチが失敗します。 詳細については、「IPv6 経由のオリジンフェッチの設定」をご参照ください。
IP アドレスをオリジンとして使用する際のベストプラクティスについては、「CDN による ECS リソースの高速化」をご参照ください。
[オリジンサイト]:1 つ以上のドメイン名をオリジンアドレスとして設定できます。
説明ドメイン名をオリジンとして使用する際のベストプラクティスについては、「CDN による ECS リソースの高速化」をご参照ください。
オリジンドメイン名は、高速化ドメイン名と異なる必要があります。 両者が同一の場合、リクエストが CDN とオリジン間でループし、オリジンフェッチができなくなります。
入力したオリジンドメイン名がすでに高速化ドメイン名として設定されている場合、Alibaba Cloud CDN はエラーコード
RetErrorSourceCircleを返し、設定を拒否します。 この問題を解決するには、次のいずれかの方法を使用します。オリジンサーバーの IP アドレスを取得し、オリジンタイプを IP に変更し、オリジンフェッチ設定でオリジン Host ヘッダーを元のドメイン名として設定します。
ドメインが現在のアカウントで高速化ドメイン名として設定されており、CDN 高速化を失っても問題ない場合は、現在のアカウントでそのドメインの CDN 高速化設定を削除し、変更が有効になるまで数分待ってから、再度ドメインをオリジンとして追加します。
ドメインが別のアカウントで高速化ドメイン名として設定されている場合は、TXT レコードを追加してドメインの所有権を検証し、ドメインを現在のアカウントに移行してから、再設定します。
Alibaba Cloud CDN は、Alibaba Cloud ALB インスタンスのアドレス (例:
example.hangzhou.alb.aliyuncs.com) を直接オリジンとして追加することをサポートするようになりました。CDN + ALB アーキテクチャで DNS とオリジンを設定するには:
DNS プロバイダーのコンソールで、高速化ドメイン名を CDN によって割り当てられた CNAME アドレスに向ける CNAME レコードを作成します。 この CNAME アドレスは、CDN コンソールの [ドメイン名] ページで確認できます。
CDN コンソールで、オリジンタイプを オリジンサイト に設定し、ALB インスタンスのドメイン名をオリジンとして入力します。
設定後、リクエストフローはクライアント → CDN → ALB → サーバーとなります。ドメイン名を直接 ALB に向けないでください。 CDN の高速化は機能しません。
オリジンドメイン名の形式:
長さ:1~67 文字。
使用可能な文字:小文字 (a~z)、数字 (0~9)、ハイフン (-)。 例:example.com。
使用不可:漢字、大文字 (A~Z)、ハイフン (-) 以外の記号。 ハイフンを連続して使用したり、単独で使用したり、先頭や末尾に使用したりすることはできません。 ドメインに漢字が含まれている場合は、中国語版の ICP 登録を完了してから、サードパーティの Punycode ツールを使用して ASCII に変換します (例:xn--fiq.xn--eq)。
[FC ドメイン名]:同一アカウント配下の Function Compute ドメインをオリジンアドレスとして設定できます。 Function Compute の 地域 と ドメイン名 を選択します。 手順については、「カスタムドメインの設定」をご参照ください。
[優先順位]
プライマリオリジンとセカンダリオリジンを設定できます。 ユーザーリクエストがオリジンフェッチをトリガーすると、Alibaba Cloud CDN はまずプライマリオリジンを試みます。 プライマリオリジンが失敗した場合 (CDN ノードとオリジン間の TCP 接続が失敗した場合)、セカンダリオリジンにフォールバックします。 優先度の値の範囲は 0~127 です。 数値が小さいほど優先度が高くなります。 プライマリオリジンのデフォルトの優先度は 20、セカンダリオリジンのデフォルトの優先度は 30 です。 デフォルト以外の優先度値を設定するには、チケットを起票してください。
たとえば、オリジン A と B の 2 つのオリジンがあり、オリジン A がプライマリ、オリジン B がセカンダリとして設定されている場合、Alibaba Cloud CDN を介してオリジンフェッチを実行するユーザーリクエストは、まずオリジン A に転送されます。 オリジン A が失敗した場合 (CDN ノードとオリジン間の TCP 接続が失敗した場合)、リクエストはオリジン B にリダイレクトされます。 オリジン A が復旧すると、トラフィックはオリジン B からオリジン A に切り替わります。
[重み]
複数のオリジンが同じ優先度を共有する場合、Alibaba Cloud CDN はその重みに基づいてユーザーリクエストをオリジン間に比例配分し、重み付けによる負荷分散を実現します。 ビジネスニーズに応じて重みを設定してください。
範囲:1~100。 値が大きいほど、より多くのリクエストが割り当てられます。
デフォルト値:10。
例:オリジン A と B は両方ともプライマリ優先度です。 A の重みは 80、B の重みは 20 です。 リクエストは A と B の間で 8:2 の比率で分散されます。
説明場合によっては、オリジンフェッチリクエストの実際の分散が設定された重みと一致しないことがあります。 例:
オリジンフェッチの QPS が低い場合 (例:10 QPS 未満)、確率分布が不均一になり、実際の重みが設定値から乖離する原因となります。
すべてのリクエストが 1 つ (または少数) の IP アドレスから送信される場合、単一の IP は 1 つの CDN ノードにマッピングされ、CDN とオリジン間には TCP セッション維持が存在するため、ほとんどのリクエストが同じオリジンに送信される可能性があります。
実際のオリジンフェッチの重みが設定と一致していることを確認するには、サードパーティのネットワークプローブツールを使用します。 さまざまな地理的ロケーションとISPにプローブクライアントを設定し、十分な有効データを収集できるまでテストを実行します。
[ポート]
これは、CDN がオリジンからリソースをリクエストするために使用するポートです。 デフォルトは 80 です。 オリジンのサポート状況に応じてポートをカスタマイズできます。 有効なポートの範囲は 1~65535 です。
デフォルト値:80。
ポートを 443 に設定した場合、オリジンフェッチは HTTPS を使用します。 ポート 80 またはその他のカスタムポートの場合、オリジンフェッチは HTTP を使用します。
説明443 以外のカスタムポートで HTTPS を使用するには、「オリジンプロトコルポリシーの設定」をご参照ください。
Back-to-Origin プロトコル 機能 (デフォルトで無効) を有効にすると、ここでのポート設定は無視されます。 オリジンプロトコルポリシーを無効にするには、「オリジンプロトコルポリシーの設定」をご参照ください。
OSS ドメインをオリジンとして使用する場合、カスタムポートがサポートされるかどうかは OSS に依存します。
OK をクリックして設定を完了します。
よくある質問
同一優先度の複数のオリジンの重みが同じ場合、トラフィックはどのように分散されますか?
複数のオリジンが同じ優先度を共有し、同じ重みで設定されている場合、Alibaba Cloud CDN はユーザーリクエストをこれらのすべてのオリジンに均等に分散します。 たとえば、3 つのオリジンが同じ優先度を共有し、それぞれが 100 の重みを持つ場合、各オリジンは約 3 分の 1 のリクエストを受信します。
重みの範囲は 1~100 で、デフォルト値は 10 です。 重み 0 は有効な値ではありません。
5XX エラー、オリジンタイムアウト、オリジンプローブでのリトライ
オリジンフェッチのリトライ順序:
リトライは、オリジンリスト内のオリジンアドレスに沿って、優先度の高いものから低いものへと実行されます。
複数のオリジンが同じ優先度を共有する場合、リトライは設定された重み比率に従います。
リトライの粒度:
リトライは IP アドレスレベルで行われます。 オリジンがドメイン名の場合、CDN はそのドメインから解決されたすべての IP アドレスをリトライします。 すべての IP が失敗した後にのみ、CDN は別の利用可能なオリジンを試みます。
リトライ中、システムはデッドテーブルで利用不可とマークされたオリジンを自動的にスキップします。
リトライのステータスコード:
CDN ノードは、オリジンから 5xx ステータスコードを受信するとリトライします。
オリジン接続タイムアウト:オリジンサーバーがリトライステータスコードで能動的に応答した場合、CDN ノードはリトライステータスコードを受信するとすぐにリトライします。 オリジンサーバーがリトライステータスコードで能動的に応答しない場合、システムはオリジン接続タイムアウト処理ロジックに従い、タイムアウト期間が経過した後に CDN ノードからのリトライをトリガーします。
オリジン TCP 接続タイムアウト:10 秒。
オリジン書き込みタイムアウト:デフォルトで 30 秒 (接続が確立されたがデータ書き込みが滞った後のタイムアウト)。
オリジン読み取りタイムアウト:デフォルトで 30 秒 (オリジンサーバーへの接続を確立した後、指定された時間内にオリジンサーバーが CDN ノードによって要求されたコンテンツを完全に応答できなかった場合)。
オリジンの書き込みおよび読み取りタイムアウトは、オリジン HTTP リクエストタイムアウトを設定することで調整できます。
オリジンプローブのロジック:
TCP 接続の失敗:CDN ノードとオリジン IP アドレス間の TCP 接続確立の試行が 2 回連続で失敗した場合 (接続確立の失敗または接続タイムアウトのいずれかによる)、CDN はそのオリジン IP アドレスを利用可能なオリジンサーバーアドレスのリストから削除し、デッドテーブルに追加します。これにより、後続のオリジンリクエストはこのオリジン IP アドレスへのアクセスを試みなくなります。 その後、CDN ノードは TCP 接続の確立を試みることにより、5 秒ごとにオリジン IP アドレスをプローブします。 接続が成功した場合、オリジン IP アドレスは利用可能なオリジンサーバーアドレスのリストに復元されます。
TCP 接続が正常な場合:CDN とオリジン IP アドレス間の TCP 接続は正常であるが、オリジンサーバーの応答でリトライステータスコード (例:5xx) を受信した場合、システムはリトライロジックをトリガーします。 ただし、オリジン IP アドレスは利用可能なオリジンサーバーアドレスのリストに残り、後続のリクエストはその重みに基づいてこのオリジンに引き続き送信されます。 言い換えると、レイヤー 4 の TCP 接続が正常な場合、レイヤー 7 の HTTP リクエストの失敗によってオリジン IP アドレスが自動的にブロックされることはありません。 レイヤー 7 の HTTP リクエストの失敗時にシステムがオリジン IP アドレスをブロックするようにしたい場合は、チケットを起票してこの設定をリクエストする必要があります。
関連ドキュメント
オリジンの概要については、「オリジン」をご参照ください。
複数のオリジンを使用する場合、異なるオリジン Host ヘッダーを指定して、オリジンフェッチを異なるオリジンに向けることができます。 「デフォルトのオリジン Host ヘッダーの設定」をご参照ください。
HTTP または HTTPS オリジンプロトコルをカスタマイズするには、「オリジンプロトコルポリシーの設定」をご参照ください。
オリジンがプライベート OSS バケットの場合、高速化ドメインに対してプライベート OSS バケットのオリジンフェッチを有効にします。 「プライベート OSS バケットのオリジンフェッチ」をご参照ください。
オリジン IP が複数のドメインをホストし、オリジンフェッチに HTTPS を使用する場合は、オリジン SNI を設定します。 「デフォルトのオリジン SNI の設定」をご参照ください。
CDN のオリジンフェッチ戦略とルールについては、「オリジンフェッチ」をご参照ください。