DNS・ドメイン設定
UZU プロジェクトで使用しているドメインの管理方法と、新しいサブドメインを追加する手順を説明します。
ドメイン管理の概要
DNS レコードはすべて Cloudflare で管理する (各ドメインのネームサーバーは *.ns.cloudflare.com)。 レジストラ (ドメインの登録先) は Cloudflare に移管済みのものと Squarespace に残っているものが混在するが、 レコードの編集はレジストラに関係なく Cloudflare のダッシュボードで行う。
| ドメイン | 用途 | DNS レコードの編集先 |
|---|---|---|
uzu-app.com | ユーザー向けサービス(Web・Studio・Room・Store 等) | Cloudflare DNS |
uzu.one | バックエンド・内部サービス(API・gRPC・監視等) | Cloudflare DNS |
mdms.jp | マダミス.jp(マーダーミステリー総合情報サイト) | Cloudflare DNS |
マダミス.jp | mdms.jp へのリダイレクト | Cloudflare DNS |
sally-inc.jp | 会社コーポレートサイト | Cloudflare DNS |
uzu-asset.com | Cloudflare Workers(ゲームコンテンツ配信等) | Cloudflare DNS |
サブドメイン一覧
uzu-app.com(ユーザー向け)
サブドメインは {env}.{service}.uzu-app.com の命名規則に従います。本番環境では {env}. プレフィックスが省略されます。
| サブドメイン | 環境 | 用途 |
|---|---|---|
www.uzu-app.com | prd | マーケティング Web サイト |
studio.uzu-app.com | prd | シナリオ作成ツール(Studio) |
dev.studio.uzu-app.com | dev | Studio 開発環境 |
stg.studio.uzu-app.com | stg | Studio ステージング環境 |
editor.studio.uzu-app.com | prd | シナリオエディター(リアルタイム共同編集) |
dev.editor.studio.uzu-app.com | dev | エディター開発環境 |
stg.editor.studio.uzu-app.com | stg | エディターステージング環境 |
docs.studio.uzu-app.com | prd | Studio ドキュメント |
room.uzu-app.com | prd | ルーム予約・コード入力 |
dev.room.uzu-app.com | dev | ルーム開発環境 |
stg.room.uzu-app.com | stg | ルームステージング環境 |
store.uzu-app.com | prd | ブラウザコインストア (GKE Ingress) |
dev.store.uzu-app.com | dev | コインストア開発環境 |
stg.store.uzu-app.com | stg | コインストアステージング環境 |
uzu.one(バックエンド・内部サービス)
サブドメインは {env}.{service}.backend.app.uzu.one の命名規則に従います。
| サブドメイン | 環境 | 用途 |
|---|---|---|
prd.graph.backend.app.uzu.one | prd | GraphQL API |
stg.graph.backend.app.uzu.one | stg | GraphQL API(ステージング) |
dev.graph.backend.app.uzu.one | dev | GraphQL API(開発) |
prd.grpc.backend.app.uzu.one | prd | gRPC サービス |
stg.grpc.backend.app.uzu.one | stg | gRPC サービス(ステージング) |
dev.grpc.backend.app.uzu.one | dev | gRPC サービス(開発) |
prd.asynqmon.backend.app.uzu.one | prd | 非同期タスクキュー監視 |
stg.asynqmon.backend.app.uzu.one | stg | 非同期タスクキュー監視(ステージング) |
dev.asynqmon.backend.app.uzu.one | dev | 非同期タスクキュー監視(開発) |
prd.v2.studio.uzu.one | prd | Studio リアルタイム WebSocket |
stg.v2.studio.uzu.one | stg | Studio WebSocket(ステージング) |
dev.v2.studio.uzu.one | dev | Studio WebSocket(開発) |
translator.uzu.one | prd | UZU Translator SPA (Cloudflare Workers) |
api.translator.uzu.one | prd | UZU Translator API (Cloudflare Workers) |
uzu-asset.com(Cloudflare Workers)
Cloudflare Workers のカスタムドメインとして使用。
| サブドメイン | 環境 | 用途 |
|---|---|---|
*.dev.uzu-code-content.uzu-asset.com | dev | ゲームコンテンツ配信(Scenario Content Server) |
*.stg.uzu-code-content.uzu-asset.com | stg | ゲームコンテンツ配信(ステージング) |
*.prd.uzu-code-content.uzu-asset.com | prd | ゲームコンテンツ配信(本番) |
その他のドメイン
| ドメイン | 用途 |
|---|---|
mdms.jp | マダミス.jp(マーダーミステリー総合情報・予約サイト) |
マダミス.jp | mdms.jp へのリダイレクト |
sally-inc.jp | Sally 株式会社コーポレートサイト |
新しいサブドメインの追加手順
共通手順(Cloudflare)
- Cloudflare ダッシュボード で対象ドメインを開く
- DNS → Records を開く
- Add record でレコードを追加して Save
- DNS 反映まで数分待つ (Cloudflare は通常すぐ反映される)
A レコードの追加(Static IP を使う場合)
| 設定項目 | 値 |
|---|---|
| Type | A |
| Name | サブドメイン名(例: dev.store) |
| IPv4 address | GCP で発行した Static IP アドレス |
| Proxy status | DNS only (下記参照) |
GKE Ingress に向けるときは DNS only にする
GKE の ManagedCertificate は HTTP-01 challenge で証明書を発行する。Proxied (orange-cloud ON) にすると challenge が Cloudflare edge で吸収されて証明書が発行できず、FailedNotVisible のまま止まる。 GKE Ingress / GCLB に向ける A レコードは必ず DNS only にする (auth / uzutokyo / store がこの構成)。
CNAME レコードの追加(他サービスを指す場合)
| 設定項目 | 値 |
|---|---|
| Type | CNAME |
| Name | サブドメイン名(例: docs.studio) |
| Target | 指し先のドメイン(例: ghs.googlehosted.com) |
| Proxy status | 指し先のサービスに合わせる (GCP 系は DNS only) |
TIP
Cloudflare Workers のカスタムドメインを追加する場合は、wrangler.toml の routes に設定を追加すれば Cloudflare が自動的に DNS レコードを作成します。
GCP で Static IP を発行する場合
サブドメインを GCP 上のリソースに向ける場合は、先に Static IP を発行します。
- VPC ネットワーク > IP アドレス を開く
- 対象のプロジェクトを選択(例:
uzu-dev,uzu-stg,uzu-prd) - 外部静的アドレスを予約 をクリック
- 名前・リージョンを設定して予約
- 発行された IP アドレスを DNS レコードの Data に設定
確認方法
DNS レコードが正しく反映されたか確認するには:
# A レコードの確認
dig dev.auth.uzu-app.com
# CNAME レコードの確認
dig docs.studio.uzu-app.com CNAME
# 簡易確認(IP のみ)
nslookup dev.auth.uzu-app.com注意事項
- Cloudflare のアカウント: DNS を編集する権限がない場合は CTO に招待を依頼してください(メールアドレスを伝える)
- SSL 証明書: GKE (Kubernetes) 上のサービスは、Ingress の
managed-certificatesで自動的に SSL 証明書が発行されます。新しいサブドメインを追加した場合、対応するManagedCertificateリソースの作成が必要な場合があります - CORS 設定: 新しいサブドメインを追加した場合、バックエンドの CORS allowlist(
backend/internal/servers/graph/main.go)に追加が必要な場合があります