Posted at

IBM Cloud Internet Services (CIS) とIBM Cloud Object Storage (ICOS) の連携


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

image.png


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」ボタンを押下して、ルールを作成します。

image.png

このタイミングで、bucket名.[自ドメイン]から実際のICOS bucketへのCNAMEレコードがCISのDNSに自動的に作成されます。

image.png

作成したルールを再度edit画面で見ると、このルールで実際に行われることは、マッチしたURL文字列のResolve Overrideと、その際のHost Header Overrideである事が確認できます。

image.png

このルールと、次項で行うDNS設定により、image.[自ドメイン]へのリクエストが、ICOSのbucketに向かうようになります。


DNS設定

次に、CISのDNS設定画面で、サブドメイン「image」に対するレコードを作成します。Proxy設定はONにします。

image.png

このレコードを追加する目的は、Proxy設定をONにすることで、image.[自ドメイン]へのアクセスがCISを経由するようにする事です。CISを経由させることで、前項で定義したページルールのURL matchにマッチするようになり、そのルール内のResolve Override定義によって名前解決され、リクエストがICOSに向かうので、実はこのDNSレコードの名前解決設定は使われません。ですので、上記の例では、imageの名前解決先をICOS bucketへのCNAMEとしていますが、ここは何でも構いません。(どこか適当なウェブサーバーへのAレコードにしても動作は変わりません。)


動作確認

以上の設定により、image.[自ドメイン] へのアクセスで、ICOSに置いたファイルへのアクセスが可能になりました。

image.png