Cloud Run をカスタムドメイン(独自ドメイン)で公開するために Cloudflare を使う方法

やり方

特に難しいところはないです。

1. Cloud Run の「サービス」メニューから「カスタム ドメインを管理」をクリックする

ここです。

2. 「マッピングを追加」をクリックして情報を入力していく

注意点がいくつかあります。

2-1. マッピングに対応しているリージョンが限られている

それは、マッピングに対応しているリージョンが限られていることです(2022/10/15 時点)。

マッピングを利用したい場合には、予めこれらのリージョンでサービスを作成する必要があります*1

2-2. ドメインは「確認済み」である必要がある

所有するドメインが自らのものであるという確認を済ませておく必要があります。

上記 2点 をクリアしたならばどんどん情報を入力して、最後に「続行」を押します。

3. 確認待機状態になる

入力が終わるとマッピング一覧画面に遷移し、マッピングの確認待機状態になります。

gyazo.com

4. Cloudflare 側で DNS を設定する

Cloudflare で DNS を設定します*2

CNAME名前 にサブドメインを入力し、コンテンツ には ghs.googlehosted.com を入力します*3

そしてここで注意点があります。

「SSL/TLS」の「概要」の項目内で、「SSL/TLS 暗号化モード」を「フル」にする必要があります。Cloud Run が HTTPS なので「フレキシブル」ですと証明書のエラーになってしまいます。

すでに「フレキシブル」で運用していて「フル」にできないという場合には、「ルール」の「ページルール」の項目で特例のフィルタを作ればうまくいきます*4

5. ひたすら待つ

ここもハマりやすい(ハマった)ところですが、Cloud Run 側で「確認済み」になるのに結構な時間がかかります。5分 や 10分 といったものでなく、時間単位でかかることがありました*5

辛抱強く待つと良いと思います。

「ひたすら待つ」状態になっているかどうかは、カスタムドメインにアクセスすると分かります。以下のような Cloudflare の SSL handshake failed (525) エラーが出れば、「ひたすら待つ」状態です。

*1:「Cloud Run の」マッピング機能を使わなずにマッピングする方法はあります

*2:この設定が先で、Cloud Run の設定が後でも良い

*3: "ghs.googlehosted.com" は現状は統一されていますが、今後変わる可能性もあり、正確な値は Cloud Run の設定を確認します

*4:ただし、フィルタには上限数がある

*5:なので、本番環境の際には注意が必要です

Powered by はてなブログ