LoginSignup
4
2

More than 1 year has passed since last update.

Code Engine:CISのPage Ruleを使ったカスタムドメイン設定

Last updated at Posted at 2022-06-29

概要

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にて、以下のアプリケーションを作成済です。
image.png

現在はhttps://yyyy.jp-tok.codeengine.appdomain.cloud/でアクセスできるとします。
image.png

こちらのアプリケーションにhttps://xxxx.domain.com/でアクセスできるよう設定します。

Code Engine概要やアプリケーション作成方法は以下をご覧ください。
qiita:数分でアプリがデプロイできるコンテナ環境!IBM Cloud Code Engine

設定してみる

1. page ruleの設定

検索バーでCISリソース名を検索し、詳細画面を開きます。左メニューより「Performance」をクリックし、「ページ・ルール」をクリックします。ルール一覧右上の「ルールの作成」をクリックします。
image.png

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を指定することにします。

page ruleの設定を作成できたので、有効化します。

2. DNS設定

CIS詳細画面の左メニューより「Reliability」をクリックし、「DNS」をクリックします。
image.png

下にスクロールし、「追加」をクリックします。
image.png

以下の2つを設定します。

  • CNAME:「"解決のオーバーライドで設定したURL"」、「"Code EngineのアプリケーションURL"」
  • A:「"サブドメイン"」、「"任意のIPアドレス"」
    • このAレコードはPage ruleを動作させるためだけに設定します。そのため、登録するIPアドレスは後で使用することはないので何でも構いません!ここでは、8.8.8.8を利用します。

以下のように、先ほど追加したAレコードとCNAMEの作成が確認できました。
次に、Aレコードのプロキシー設定を有効化します。
image.png

以上で設定終了です。

アクセスしてみる

モザイクをかけていますが、設定したカスタムドメインにてアクセスできました!!

(参考)より詳細な挙動を知りたい方はこちらをご覧ください。
CIS(Cloud Internet Service): Host Header OverrideとResolve Overrideを使ったICOSアクセス

ご利用における注意

CIS導入費用について

新規にCISを利用するの場合、追加費用がかかります。
CISには5つのプランがありますが、最も安価なstandardプランで約3万円〜かかります。。

ドメインを複数利用したい場合

開発と本番にてサブドメインではなくドメインを分けたいといった要件がある場合、2つ以上のドメインが必要になります。
standardプランでは利用可能なドメインは1つのため、以下の2パターンが考えられます。

  • プランのアップグレード
  • standard プランを2つ購入 (こちらの方が現実的かもしれません)

その他のプラン比較表はこちら

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2