Cloud Run に自分のサイトを公開したあと、お名前.com で取得した独自ドメインをつないで https://example.com で見られるようにする手順をまとめます。
今回は 最短で公開する方法 を中心に書きます。
ただし先に大事な注意点があり、Cloud Run の Domain Mapping は Preview で本番非推奨です。
そのため、この記事ではまず「最短で公開する方法」を紹介し、最後に「本番は Load Balancer 推奨」という補足も入れます。
この記事でやること
- お名前.com で取得した
.comドメインを使う - Cloud Run にサイトをデプロイする
- 独自ドメインをつなぐ
- HTTPS を有効にする
先に結論
最短の流れは次の 8 ステップです。
- お名前.comでドメインを取得する
- GCP プロジェクトを作る
- Cloud Run にサイトをデプロイする
-
run.appの URL で動作確認する - Cloud Run で独自ドメインを追加する
- Search Console でドメイン所有権を確認する
- お名前.com Navi で DNS レコードを追加する
- SSL の発行完了を待つ
前提
- Google Cloud のアカウントがある
- 課金が有効な GCP プロジェクトがある
- お名前.com でドメインを取得済み、またはこれから取得する
- 今回は
asia-northeast1(東京)にデプロイする - サイトは HTTP サーバとして動く形にする
Step 1. お名前.comで .com ドメインを取得する
まずは普通にドメインを取得します。
お名前.com の検索欄で希望の文字列を入れて、空いている .com を購入します。
取得後、DNS を編集する画面はあとで使います。
大まかな導線は次のイメージです。
Step 2. Cloud Run に載せるサイトを用意する
今回は一番わかりやすいように、静的サイトを Nginx で配信する最小構成で進めます。
ディレクトリ構成
my-site/
├─ public/
│ └─ index.html
├─ Dockerfile
└─ nginx.conf
public/index.html
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>My Cloud Run Site</title>
</head>
<body>
<h1>Hello Cloud Run + Custom Domain</h1>
<p>独自ドメインで公開できました。</p>
</body>
</html>
nginx.conf
server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Dockerfile
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY public /usr/share/nginx/html
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]
Step 3. GCP プロジェクトを作成する
GCP コンソールで新しいプロジェクトを作成して、課金を有効化します。
Cloud Shell を使うとローカルに gcloud を入れなくても進めやすいです。
gcloud config set project YOUR_PROJECT_ID
Step 4. Cloud Run にデプロイする
my-site ディレクトリで、次を実行します。
gcloud run deploy my-site --source . --region asia-northeast1 --platform managed --allow-unauthenticated
デプロイが終わると https://xxxxx-xxxxx-an.a.run.app のような URL が表示されます。
まずはこの URL で正しく表示できるか確認してください。
ここで見えない場合、独自ドメイン側に進んでもうまくいきません。
Step 5. Cloud Run 側で独自ドメインを追加する
Cloud Run コンソールで Domain mappings を開きます。
- Cloud Run を開く
- Domain mappings
- Add Mapping
- サービスに
my-siteを選ぶ - 追加したいドメインを入力する
例:
example.comwww.example.com
補足
www.example.com を設定したい場合でも、所有権確認は通常 ベースドメイン example.com に対して行います。
Step 6. Search Console でドメイン所有権を確認する
独自ドメイン追加の途中で、Search Console の確認フローに進みます。
一般的には、TXT レコードを DNS に追加して確認します。
例えば、Cloud Run 側や Search Console 側で次のような値が表示されます。
- Type:
TXT - Host:
@ - Value:
google-site-verification=xxxxxxxx
これを、お名前.com 側に追加します。
Step 7. お名前.com Navi で DNS レコードを追加する
DNS は お名前.com Navi から設定します。
大まかな流れは次のとおりです。
- お名前.com Navi にログイン
- ネームサーバー/DNS
- ドメインDNS設定
- 対象ドメインの ドメインDNS
- DNSレコード設定
- レコード追加
Cloud Run 側には、最終ステップで必要な DNS レコードが表示されます。
その値を、そのままお名前.com に転記するのが正解です。
典型例
ルートドメイン
- ドメイン:
example.com - ホスト:
@ - 種別:
AまたはAAAA - 値: Cloud Run 画面に表示された値
www サブドメイン
- ドメイン:
www.example.com - ホスト:
www - 種別:
CNAME - 値: Cloud Run 画面に表示された値
所有権確認
- 種別:
TXT - ホスト:
@ - 値:
google-site-verification=...
Step 8. SSL 発行を待って確認する
DNS の反映後、Google 管理の SSL 証明書が自動で発行されます。
すぐ通ることもありますが、少し時間がかかることがあります。
反映後に、以下を確認してください。
https://example.comhttps://www.example.com
よくあるハマりどころ
1. run.app は見えるのに独自ドメインが開かない
多くは DNS 設定ミスです。
A / AAAA / CNAME / TXT の値を、Cloud Run に表示された内容と完全一致で入れているか確認します。
2. 所有権確認が終わらない
TXT レコードがまだ反映されていない可能性があります。
しばらく待ってから再試行します。
3. SSL が発行されない
DNS が誤っているか、反映がまだ終わっていないことが多いです。
4. Cloud Run 側に Domain Mapping が出ない
リージョンや機能の制約に引っかかっている可能性があります。
その場合は後述の Load Balancer 構成 を使うほうが確実です。
本番運用するなら Load Balancer 推奨
ここはかなり重要です。
Cloud Run の公式ドキュメントでは、独自ドメインの設定方法として次の 3 つが案内されています。
- Global external Application Load Balancer(推奨)
- Cloud Run domain mapping(Limited availability / Preview)
- Firebase Hosting
つまり、本番用途では Load Balancer を前段に置く構成が推奨です。
Load Balancer 構成のメリット
- 本番向けの構成にしやすい
- Cloud Armor を使いやすい
- Cloud CDN を使える
- 独自証明書や経路制御の自由度が高い
- Preview 機能に依存しない
どちらを使うべきか
| 用途 | おすすめ |
|---|---|
| とにかく早く公開したい | Cloud Run Domain Mapping |
| Qiita でまず試したい | Cloud Run Domain Mapping |
| 本番公開したい | Global External Application Load Balancer |
| CDN / WAF / 詳細制御が必要 | Load Balancer |
まとめ
最短でやるなら、やることはシンプルです。
- お名前.comでドメイン取得
- Cloud Run にデプロイ
- Domain mappings で独自ドメイン追加
- Search Console で確認
- お名前.com に DNS 追加
- HTTPS 完了を待つ
最初は Cloud Run Domain Mapping で流れを掴む のがおすすめです。
ただし、本番では Load Balancer 構成を選ぶ ほうが安全です。
参考
-
Cloud Run custom domains
https://cloud.google.com/run/docs/mapping-custom-domains -
Cloud Run: global external Application Load Balancer
https://cloud.google.com/load-balancing/docs/https/setup-global-ext-https-serverless -
Cloud Run: deploy from source
https://cloud.google.com/run/docs/deploying-source-code -
Cloud Run: container port
https://cloud.google.com/run/docs/container-contract -
お名前.com Navi ガイド: DNSレコード設定
https://www.onamae.com/guide/p/70 -
お名前.com ヘルプ: DNSレコード設定とは
https://help.onamae.com/answer/7875
