概要
Code Engineにてカスタムドメインを利用する際の設定として、docsにはEdge Functionsが例に挙げられています。しかし、Edge Functionsはスクリプトを手書きする必要があり、CISのプランによっては使えないものもあります。
docs: カスタム・ドメイン・ネームを使用した複数リージョンでのアプリケーションのデプロイ
そこで本記事では、CISのpage rule機能を用いて、Code EngineアプリケーションのURLに対してカスタムドメイン設定してみます。
Code Engine の新機能
2022年11月より、カスタムドメインをより簡単に実装する機能が提供されています。
こちらも併せて参照ください。
IBM Cloud docs: Configuring custom domain mappings for your app
Qiita: カスタム・ドメインを使ってIBM Cloud Code Engineのアプリを公開してみる
前提
Code Engineにて、以下のアプリケーションを作成済です。
現在はhttps://yyyy.jp-tok.codeengine.appdomain.cloud/
でアクセスできるとします。
こちらのアプリケーションにhttps://xxxx.domain.com/
でアクセスできるよう設定します。
Code Engine概要やアプリケーション作成方法は以下をご覧ください。
qiita:数分でアプリがデプロイできるコンテナ環境!IBM Cloud Code Engine
設定してみる
1. page ruleの設定
検索バーでCISリソース名を検索し、詳細画面を開きます。左メニューより「Performance」をクリックし、「ページ・ルール」をクリックします。ルール一覧右上の「ルールの作成」をクリックします。
Code Engineのアプリケーションにアクセスするためには"HTTPリクエストのホスト・ヘッダーの書き換え"、"CIS宛アクセスがCode Engine宛になるように書き換え"が必要があります。
そこで以下のように設定します。
- URLの一致:「"設定したいカスタムドメイン"」
- 今回は
xxxx.domain.com/*
を指定しています。
- 今回は
- 設定:
- 「ホスト・ヘッダーのオーバーライド」の値には「"Code EngineのアプリケーションURI"」を入力
- page ruleに一致する URI のホスト・ヘッダーを、指定した値に置き換えます。
- (https://
yyyy.jp-tok.codeengine.appdomain.cloud
/の灰色部分)
- 「解決のオーバーライド」の値には「"CISドメインの任意のURL"」を入力
- CIS宛のリクエストを、Code Engineに転送するための設定です。
- 本来はCode EngineのURLを直接入力したいところですが、「解決のオーバーライド」で入力できる値は、今回利用している同一ドメイン内のURLしか許可されていません。
- そこで、ここでは一旦CISドメイン
domain.com
を使ってresolve-xxxx.domain.com
というURLを指定し、後ほどDNSのCNAMEでCode EngineのURLを指定することにします。
- CIS宛のリクエストを、Code Engineに転送するための設定です。
- 「ホスト・ヘッダーのオーバーライド」の値には「"Code EngineのアプリケーションURI"」を入力
2. DNS設定
CIS詳細画面の左メニューより「Reliability」をクリックし、「DNS」をクリックします。
以下の2つを設定します。
- CNAME:「"解決のオーバーライドで設定したURL"」、「"Code EngineのアプリケーションURL"」
- A:「"サブドメイン"」、「"任意のIPアドレス"」
- このAレコードはPage ruleを動作させるためだけに設定します。そのため、登録するIPアドレスは後で使用することはないので何でも構いません!ここでは、
8.8.8.8
を利用します。
- このAレコードはPage ruleを動作させるためだけに設定します。そのため、登録するIPアドレスは後で使用することはないので何でも構いません!ここでは、
以下のように、先ほど追加したAレコードとCNAMEの作成が確認できました。
次に、Aレコードのプロキシー設定を有効化します。
以上で設定終了です。
アクセスしてみる
モザイクをかけていますが、設定したカスタムドメインにてアクセスできました!!
(参考)より詳細な挙動を知りたい方はこちらをご覧ください。
CIS(Cloud Internet Service): Host Header OverrideとResolve Overrideを使ったICOSアクセス
ご利用における注意
CIS導入費用について
新規にCISを利用するの場合、追加費用がかかります。
CISには5つのプランがありますが、最も安価なstandardプランで約3万円〜かかります。。
ドメインを複数利用したい場合
開発と本番にてサブドメインではなくドメインを分けたいといった要件がある場合、2つ以上のドメインが必要になります。
standardプランでは利用可能なドメインは1つのため、以下の2パターンが考えられます。
- プランのアップグレード
- standard プランを2つ購入 (こちらの方が現実的かもしれません)
その他のプラン比較表はこちら