概要
Cloud Object Storage(COS)コンソールを使用して、バケットのback-to-originルールを設定することができます。リクエストしたオブジェクトがバケットに存在しない場合、または特定のリクエストをリダイレクトする必要がある場合は、back-to-originルールを使用して、COSから対応するデータにアクセスすることができます。back-to-originの設定は、主にデータのホットマイグレーションや特定リクエストのリダイレクトなどのシナリオに使用され、実際の必要性に応じて設定することができます。
説明:
back-to-originによるデータプルの成功率はネットワーク環境に依存するため、チャイナテレコム、チャイナモバイル、チャイナユニコムなどのIPセグメントを優先的に使用してください。
金融クラウドリージョンのストレージバケットでは、バックトゥオリジン設定をサポートしていません。
パブリッククラウドリージョンでは、一部のリージョンのみが同期型のバックトゥオリジンをサポートしています。対象リージョンは以下の通りです:北京、成都、広州、南京、上海、中国香港、シンガポール、ジャカルタ、ソウル、バンコク、東京、リヤド、シリコンバレー(アメリカ西部)、バージニア(アメリカ東部)、サンパウロ、フランクフルト。
back-to-originルール
トリガー条件
非同期back-to-originおよび同期back-to-originモードでは、GETリクエストが404を返した場合にのみバックトゥオリジンがトリガーされます。HEADやその他のリクエストではトリガーされません。
リダイレクトモードでは、ユーザーは400~599のHTTPステータスコードをカスタマイズしてback-to-originをトリガーすることができます。
オリジンサーバーにアクセスする
非同期back-to-originおよび同期back-to-originモードでは、COSにアクセスするQueryStringおよびHeader情報をオリジンサーバーにパススルーするかどうか、オリジンサーバーへのリクエストを追加する時に追加のHeader情報を付加するかどうかを設定できます。リダイレクトモードはQueryStringがパススルーするかどうかの設定のみをサポートしています。
GET操作時にGET rangeを指定した場合、COSは元のリクエスト以外にさらにrangeなしの非同期リクエストを送信し、完全なオブジェクトデータを取得してCOSに保存します。
応答と保存
オリジンサーバーはchunkedエンコードでデータを返すことをサポートしています。
オリジンサーバーが404ステータスコードを返した場合、COSにパススルーしてユーザーに返します。3XX追従ポリシーを有効化した場合、オリジンサーバーが3XXステータスコードを返した時に別のオリジンサーバーにおいてデータをプルします。オリジンサーバーが、その他の2XXではないステータスコードを返した場合、COSは424を返します。
back-to-originが返すファイルはオリジンサーバーをリクエストする時に使用するファイル名でCOSに保存されます。例えばあるユーザーがリクエストするファイルexample.jpgがバケットに存在しない場合、COSはback-to-originメカニズムをトリガーしてユーザーが設定したback-to-originアドレス http://origin.com/example.jpg においてファイルをプルし、バケットに保存するファイルをexample.jpgと命名します。
COSに保存される新しいオブジェクトには、以下のメタデータが含まれます。データの内容はオリジンサーバーの値に追従します。
cache-control
content-disposition
content-encoding
content-type
expires
x-cos-meta-*
操作手順
2. 左側ナビゲーションバーでバケットリストをクリックし、バケットリストページに進みます。
3. back-to-originを設定したいバケットをクリックし、バケット詳細ページに進みます。
4. 左側ナビゲーションバーで、基本設定 > back-to-originの設定をクリックし、back-to-originリストの追加をクリックします。
5. ポップアップウィンドウに以下の情報を設定し、次のステップをクリックします。
back-to-originモード:実際のニーズに応じてback-to-originモードを選択できます。
非同期back-to-origin:COSで検索するようにリクエストされたファイルが存在しない場合、COSは指定のオリジンサーバーからファイルを検索し、そのファイルをバケットにアップロードしますが、ユーザー側には返しません。
説明:
非同期back-to-originは直接ファイルを返さず、まず302をクライアントに返し、さらに非同期でファイルをCOSにアップロードします。
クライアントでFollow 302を有効化し、オリジンサーバーからデータをプルすることをお勧めします。
ファイルのアップロード時間は複数の要因の影響を受け、SLAを承諾できません。適時性を必要とするユーザーがback-to-originの同期を選択することをお勧めします。
同期back-to-origin:COSで検索するようにリクエストされたファイルが存在しない場合、COSは指定のオリジンサーバーからファイルを検索し、そのファイルをユーザー側に返してバケットにアップロードします。
注意:
同期バックトゥオリジンを利用する場合、ファイルを完全にダウンロードされ、ステータスコード200が返された場合にのみ、タイムリー性が保証されます。クライアントがrangeリクエストでファイルにアクセスした場合、タイムリー性は保証されません。
リダイレクト:バケットへのアクセスをリクエストした時に特定のエラーが発生した場合、COSはリダイレクトアドレスをユーザー側に返し、オリジンサーバーのファイルを保存します。ユーザー側はリダイレクトアドレスによって、オリジンサーバーにリソースへのアクセスをリクエストします。
back-to-origin条件:ニーズに応じてback-to-originをトリガーする条件を選択することができます。back-to-originをトリガーするには、設定したすべてのback-to-origin条件が同時に満たされている必要があります。
HTTPステータスコード 404:非同期back-to-originまたは同期back-to-originを選択した場合は、 GETリクエストの後にHTTPステータスコード404が返された場合、バックトゥオリジンをトリガーされます。この設定は必須であり、無効化することはできません。リダイレクトback-to-originモードを選択した場合、400~599のHTTPステータスコードを入力できます。
ファイル名プレフィックス:リクエストされたファイル名のプレフィックスマッチングを行う際、back-to-originルールがトリガーされます。例えば、ファイル名のプレフィックスをprefixに設定し、GETリクエストでhttps://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/prefix123.jpgにアクセスする際にHTTPステータスコード404が返された場合、バックトゥオリジンルールがトリガーされます。
back-to-originプロトコル:COSがお客様が指定したオリジンサーバーにアクセスする際に使用するHTTPプロトコルで、HTTPSの強制、HTTPの強制およびリクエストプロトコルのフォローというオプションがあります。
HTTPS/HTTPの強制を選択した場合、COSはHTTPS/HTTPプロトコルを使用してオリジンサーバーにアクセスします。
リクエストプロトコルのフォローを選択すると、COSは、お客様がCOSにリクエストしたプロトコルでオリジンサーバーにアクセスします。
リクエストパラメータ:COSにアクセスする際に付加されるqueryStringリクエストパラメータをオリジンサーバーに透過的に送信するかどうかです。
リクエストヘッダー:すべてのリクエストヘッダーをパススルーするか、指定のリクエストヘッダーのみをパススルーするかを選択できます。すべてをパススルーする場合は、hostヘッダーのパススルーを禁止する設定を推奨します。一括設定にも対応しています。
指定リクエストヘッダーのパススルー:指定リクエストヘッダーのパススルーを選択する場合、この項目の設定が必要です。ここでは、オリジンサーバーにパススルーしたいリクエストヘッダー情報を追加できます。バックトゥオリジンのタイプを選択した場合、この項目の設定は不要です。
指定リクエストヘッダーのパススルーの禁止:ここでは、オリジンサーバーにパススルーしたくないリクエストヘッダー情報を追加できます。バックトゥオリジンのタイプを選択した場合、この項目の設定は不要です。
リクエストヘッダーの追加:ここでは、オリジンサーバーに戻るときに追加のリクエストヘッダーを追加できます。リダイレクト元タイプが選択されている場合は、この項目を設定しないでください。
6. 選択したback-to-originモードに応じて、以下の情報を選択して設定し、次のステップをクリックします。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです。
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
back-to-originアドレスのバックアップ:バックアップ用バックトゥオリジンアドレスの設定に対応しています。入力形式はバックトゥオリジンアドレス設定項目の説明を参照してください。この機能はストレージバケットのリージョンに依存し、対応リージョンでのみ設定可能です。
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル****設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
3xxフォローポリシー:有効にすると、オリジンサーバーが3XXリダイレクトステータスコードを返した場合、COSは自動的に3XXをフォローし、次のオリジンサーバーからデータをプルします。無効にするとリソースはプルされません。
注意:
オリジンサーバーから返された3XXがプライベートネットワークアドレスにリダイレクトされた場合、COSはフォローしません。同期バックトゥオリジンモードでは、COSはプライベートネットワークへのリダイレクトは無視されます。非同期バックトゥオリジンモードおよびリダイレクトモードでは、プライベートネットワークアドレスに対してフォローするかどうかは、業務要件に応じてご判断ください。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです。
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
back-to-originアドレスのバックアップ:バックアップ用バックトゥオリジンアドレスの設定に対応しています。入力形式はバックトゥオリジンアドレス設定項目の説明を参照してください。この機能はストレージバケットのリージョンに依存し、対応リージョンでのみ設定可能です。
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
3xxフォローポリシー:有効にすると、オリジンサーバーが3XXリダイレクトステータスコードを返す場合、COSのデフォルトの処理ポリシーは3XXに従って、別のオリジンサーバーからデータを再度プルすることになります。無効を選択してもリソースはプルされません。
オリジンサーバーへのリターンパケット:この機能を有効化すると、オリジンサーバーに、ステータスコードなどの情報を含むリターンパケットを直接返すことができます。この設定は、ストレージバケットのリージョンに依存します。対応リージョンでのみ設定が可能です。
back-to-originアドレス:ドメイン名またはIPアドレスを入力するだけで、ドメイン名またはIPアドレスの後にポート番号を追加できます。プレフィックスhttp://またはhttps://を付ける必要はありません。
正しいアドレスの例は次のとおりです。
abc.example.com
abc.example.com:8080
202.96.128.86
202.96.128.86:8080
アドレス設定:リダイレクト先のファイルまたはパスを具体的に設定するかを選択できます。以下は各設定項目の説明です:
固定ファイル****設定:バックトゥオリジンルールがトリガーされると、すべて指定された固定ファイルにリダイレクトします。
プレフィックス・サフィックスの設定:リダイレクトルールがトリガーされると、指定された前後接頭辞のファイルパスにジャンプします。
例えば、指定された前接頭辞が「test」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123.jpg にアクセスするとリダイレクトルールが発動し、<回源アドレス>/test/path/prefix123.jpg にジャンプします。
指定された後接尾辞が「.jpg」の場合、https://examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/path/prefix123 にアクセスするとリダイレクトルールが発動し、<回源アドレス>/path/prefix123.jpg にジャンプします。
注意:
指定されたプレフィックスとサフィックスの設定は同時に有効です。
リダイレクトCode:301、302、307から選択可能で、デフォルトは302です。
7. 設定したback-to-originルールが正しいことを確認し、OKをクリックします。
8. ルールを追加すると、システムは新しいルールに最高の優先度を割り当てます。COSは、最高の優先度のルールに従ってback-to-originを行います。また、ルールリストページの変更ボタンをクリックして、優先順位を調整することもできます。
注意:
高優先度のソースが失敗した場合、低優先度のソースアドレスには戻らず、元のソースのバックアップソースアドレスに戻ります。
事例
背景
APPIDは、1250000000のユーザー用に、 examplebucket-1250000000という名前のバケットを作成し、ドメイン名へのCDNアクセラレーションアクセスを有効にします。
examplebucket-1250000000.file.myqcloud.com
バケットのback-to-originアドレスを、次のように設定します。
オリジンサーバーhttp://abc.example.comに画像picture.jpgを保存します。
クライアントの初回アクセス(back-to-originの同期が有効でない場合):
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、オブジェクトをヒットできなかったと判断すると、クライアントにHTTPステータスコード302を返し、以下のアドレスにジャンプします。
http://abc.example.com/picture.jpg
クライアントの初回アクセス(back-to-originの同期が有効である場合):
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、オブジェクトをヒットできなかったと判断すると、クライアントにHTTPステータスコード200を返し、以下のアドレスにジャンプします。
http://abc.example.com/picture.jpg
この時点で、オブジェクトはオリジンサーバーからクライアントに提供され、アクセスが保証されます。同時にCOSは、オリジンサーバーからpicture.jpgをコピーし、バケットexamplebucket-1250000000のルートディレクトリに保存します。
2回目のアクセス:
http://examplebucket-1250000000.file.myqcloud.com/picture.jpg
COSは、ルートディレクトリのpicture.jpgオブジェクトに直接アクセスし、それをクライアントに返します。