Open6
Cloud RunのドメインマッピングでCloudflareを使う
少し手間取ったので備忘録として残しておきます。
まずはCloud Runへのデプロイを済ませてください。
Cloud Runの設定
ドメインマッピング
コンソールのCloud Runに「カスタムドメインを管理」へ
※ 一部のリージョンしか対応していません
マッピングを追加
割り当てるサブドメインを設定
DNSレコードを見て、何を設定すべきか確認。私の場合はapiというサブドメイン。
Cloudflareの設定
DNS
DNS > レコード
レコードの追加。
- タイプ ... CNAME
- 名前 ... サブドメイン
- ターゲット ... ghs.googlehosted.com
- プロキシ ステータス ... 今だけ「DNSのみ」にする。証明書のプロビジョニングプロセスが終わり次第「プロキシ済み」に変更
SSL/TLS
証明書のプロビジョニングプロセスが終わるまではフレキシブルにしておく
※ すでに他の設定になっている場合はページルールなどを使ってください
待機
気長に待ちます。1時間~1日程度。
Cloud Runのログなどを見つつこのようなログが出ていたら、何かしら設定がおかしいので、次のページも参考にしてください。
GET 302 0 B 0 ms Google-Certificates-Bridge http://hoge.com/.well-known/acme-challenge/
プロビジョニングプロセスが終わったら
Cloud Runのページで完了を確認
curl などでアクセスできることを確認してください。
SSL
Cloudflare のSSL/TSL暗号化の設定を「フル(厳密)」にします
DNS
DNSの設定を「プロキシ済み」にします。
エッジ証明書
「常に HTTPS を使用」もONに
その後curlなどでアクセスしてみて確認できたら完了です。
なお Cloud Run を日本のリージョン(asia-northeast1
など)に置いている場合、(現状では)日本からのアクセスが「日本→アメリカ→日本」になるようなので、気になる方は以下をご一読ください。