CISのResolve Override with COS機能とは
先日、IBM Cloud Internet Services (CIS)のページルールで、Resolve Override with COS という機能が利用可能になりました。
https://cloud.ibm.com/docs/infrastructure/cis?topic=cis-resolve-override-cos#resolve-override-cos
これは、CISで使っている利用者のドメイン、サブドメインを、ICOSのBucketに紐づけられる機能です。
先日可能になったICOSのパブリックアクセス機能( https://cloud.ibm.com/docs/services/cloud-object-storage/iam?topic=cloud-object-storage-iam-public-access )と組み合わせる事で、例えば、www.example.com としてCISを通して公開しているウェブサイトのうち、image.example.com 配下のファイルはICOSから配信するといった事が簡単にできるようになりました。
CISを使ってウェブサイトを公開しながら、画像・動画・PDF等の静的ファイルはICOSに置いておきたい、といったユースケースに便利かと思います。
実際に設定してみます。
ICOSのBucketにファイルをアップロードして公開
下記などを参考に、ICOSにファイル(今回は画像ファイル)をアップロードし、パブリックアクセス可能な状態にしておきます。
https://qiita.com/testnin2/items/6379e5bc5ea165212e15
Resolve Override with COSのページルールを作成
CISのページルールで、Resolve Override with COSのルールを作成します。
今回はimageというサブドメインをICOSと紐づけたいので、URL matchの欄をimage.[自ドメイン]にしています。
Rule Settingで、Resolve Override with COSを選択すると、そのアカウントにあるICOSのbucketをプルダウンから選べますので、今回の画像ファイルを配置したbucketを選択します。
「Provision 1 Resource」ボタンを押下して、ルールを作成します。
このタイミングで、bucket名.[自ドメイン]から実際のICOS bucketへのCNAMEレコードがCISのDNSに自動的に作成されます。
作成したルールを再度edit画面で見ると、このルールで実際に行われることは、マッチしたURL文字列のResolve Overrideと、その際のHost Header Overrideである事が確認できます。
このルールと、次項で行うDNS設定により、image.[自ドメイン]へのリクエストが、ICOSのbucketに向かうようになります。
DNS設定
次に、CISのDNS設定画面で、サブドメイン「image」に対するレコードを作成します。Proxy設定はONにします。
このレコードを追加する目的は、Proxy設定をONにすることで、image.[自ドメイン]へのアクセスがCISを経由するようにする事です。CISを経由させることで、前項で定義したページルールのURL matchにマッチするようになり、そのルール内のResolve Override定義によって名前解決され、リクエストがICOSに向かうので、実はこのDNSレコードの名前解決設定は使われません。ですので、上記の例では、imageの名前解決先をICOS bucketへのCNAMEとしていますが、ここは何でも構いません。(どこか適当なウェブサーバーへのAレコードにしても動作は変わりません。)
動作確認
以上の設定により、image.[自ドメイン] へのアクセスで、ICOSに置いたファイルへのアクセスが可能になりました。