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