Cloud Run for Anthos サービスにカスタム ドメインを使用できます。
サービスにカスタム ドメインを使用するには、サービスをカスタム ドメインにマッピングして DNS レコードを更新します。サービスは example.com
などのドメイン、または subdomain.example.com
などのサブドメインにマッピングできます。
HTTPS を使用している場合、ドメイン マッピングを機能させるには、マネージド TLS 証明書を使用するか、独自の証明書を提供する必要があります。
同じ Cloud Run for Anthos サービスに複数のカスタム ドメインをマッピングできます。
始める前に
サービスにマッピングするドメインを所有しているか、購入する必要があります。任意のドメイン名登録事業者を使用できますが、Google Domains または Cloud Domains を使用すると、Cloud Run for Anthos のドメインは自動的に確認されるため、ドメインの所有権の証明手続きを行う必要はありません。
Cloud Domains にドメインを登録する場合は、Cloud Run for Anthos コンソールで Cloud Domains にドメインを登録するをご覧ください。
Cloud Run for Anthos で WebSocket を使用している場合は、次の
kubectl
コマンドを実行してallow_connect: true
で Istio EnvoyFilter オブジェクトを作成し、WebSocket サポートを有効にする必要があります。cat <<EOF | kubectl apply -f - apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: allowconnect-cluser-local-gateway namespace: gke-system spec: workloadSelector: labels: app: cluster-local-gateway configPatches: - applyTo: NETWORK_FILTER match: listener: portNumber: 80 filterChain: filter: name: "envoy.http_connection_manager" patch: operation: MERGE value: typed_config: "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager" http2_protocol_options: allow_connect: true EOF
カスタム ドメインとサービスのマッピング
カスタム ドメインをサービスにマッピングするには、Google Cloud コンソールまたは Google Cloud CLI ツールを使用します。
Console
Google Cloud コンソールでドメイン マッピング ページを開きます。
表示ウィンドウが小さすぎると、カスタム ドメインのマッピング ボタンは表示されないので、ページの右上にあるその他アイコンをクリックする必要があります。
[ドメイン マッピング] ページで、[マッピングを追加] をクリックします。
[マッピングを追加] フォームのプルダウン リストから、カスタム ドメインをマッピングするサービスを選択します。
ドメイン名を入力します。基本パスのマッピングはサポートされていません。基本パスという用語は、ドメイン名の後の URL パス名を指します。たとえば、
users
はexample.com/users
の基本パスです。Cloud Run for Anthos では、ドメインを特定の基本パスではなく/
にのみマッピングできます。そのため、パスのルーティングは、サービスのコンテナ内のルーターを使用するか、Firebase Hosting を使用して処理する必要があります。[続行] をクリックします。
Google Domains からカスタム ドメインを購入した場合を除き、Google Cloud プロジェクトで使用する前にドメインの所有権を確認します。たとえば、
subdomain.example.com
をサービスにマッピングする場合、example.com
ドメインの所有権を確認する必要があります。ドメインの所有権を確認する方法については、ウェブマスター セントラルのヘルプをご覧ください。ドメイン登録事業者のウェブサイトで、最後の手順で表示された DNS レコードを使用して DNS レコードを更新します。ドメイン マッピングの [...] 操作メニューで [DNS レコード] をクリックすると、レコードが表示されます。
[完了] をクリックします。
コマンドライン
Google Domains からカスタム ドメインを購入した場合を除き、Google Cloud プロジェクトで使用する前にドメインの所有権を確認します。使用するカスタム ドメインが確認済みかどうかを判別するには、コマンドを使用します。
gcloud domains list-user-verified
ドメインの所有権を確認する必要がある場合は、ウェブマスター セントラルの確認ページを開きます。
gcloud domains verify BASE-DOMAIN
ここで、BASE-DOMAIN は確認するベースドメインです。たとえば、
subdomain.example.com
をマッピングする場合は、example.com
の所有権を確認する必要があります。ウェブマスター セントラルで、ドメイン所有権の確認を完了します。詳しくは、ウェブマスター セントラルのヘルプをご覧ください。
サービスをカスタム ドメインにマッピングします。
gcloud run domain-mappings create --service SERVICE --domain DOMAIN
以下のように置き換えます。
SERVICE
を、サービス名に置き換えます。DOMAIN
を、カスタム ドメインに置き換えます。基本パスのマッピングはサポートされていません。基本パスという用語は、ドメイン名の後の URL パス名を指します。たとえば、users
はexample.com/users
の基本パスです。Cloud Run for Anthos では、ドメインを特定の基本パスではなく/
にのみマッピングできます。そのため、パスのルーティングは、サービスのコンテナ内のルーターを使用するか、Firebase Hosting を使用して処理する必要があります。省略可:
DOMAIN
がすでに別のサービスにマッピングされている場合は、--force-override
フラグを追加できます。このフラグは、前のサービスからマッピングを削除し、DOMAIN
とSERVICE
の間の新しいマッピングに置き換えます。
Istio Ingress Gateway サービスのロードバランサ IP アドレスを静的 IP として予約します。
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
以下のように置き換えます。
- ADDRESS-NAME は、静的 IP の名前に置き換えます。
- EXTERNAL-IP は、
gcloud run domain-mapping describe
コマンドで取得したA
レコードの IP アドレスに置き換えます。 - REGION は、使用しているリージョンに置き換えます。
Cloud Run for Anthos Istio Ingress ゲートウェイ
Istio Ingress Gateway の外部 IP を取得するには:kubectl get svc istio-ingress -n gke-system
次のような出力が生成されます。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) istio-ingress LoadBalancer XX.XX.XXX.XX pending 80:32380/TCP,443:32390/TCP,32400:32400/TCP
ロードバランサの EXTERNAL-IP は、使用する必要がある IP アドレスです。
ドメイン登録事業者で DNS レコードを追加する
Cloud Run for Anthos でサービスをカスタム ドメインにマッピングしたら、ドメイン登録事業者で DNS レコードを更新する必要があります。利便性のため、入力に必要な DNS レコードは、Cloud Run for Anthos によって生成され、表示されます。マッピングを有効にするには、Cloud Run for Anthos サービスを参照するレコードをドメイン登録事業者で追加する必要があります。
DNS プロバイダとして Cloud DNS を使用する場合は、レコードの追加をご覧ください。
次のコマンドを使用して、ドメイン マッピングの DNS レコード情報を取得します。
Console
Cloud Run for Anthos の [ドメイン マッピング] ページに移動します。
サービスの右側にある縦に並んだ 3 つの点のアイコンをクリックして [DNS レコード] をクリックし、すべての DNS レコードを表示します。
コマンドライン
gcloud run domain-mappings describe --domain DOMAIN
DOMAIN は、カスタム ドメイン(
example.com
、subdomain.example.com
など)に置き換えます。resourceRecords
という見出しの下にある、返されたすべてのレコードが必要です。ドメイン登録事業者のアカウントにログインし、DNS 構成ページを開きます。
ドメインの構成ページのホストレコード セクションを見つけて、ドメインを Cloud Run for Anthos サービスにマッピングしたときに取得した各リソース レコードを追加します。
上記の DNS レコードを DNS プロバイダのアカウントに追加するときに、次の操作を行います。
- 前のステップで返された DNS レコードのタイプを選択します(
A
、AAAA
またはCNAME
)。 www
という名前を使用してwww.example.com
にマッピングします。@
という名前を使用してexample.com
をマッピングします。
- 前のステップで返された DNS レコードのタイプを選択します(
ドメインのアカウントの DNS 構成ページで変更を保存します。通常、この変更が反映されるまでに数分しかかかりませんが、登録事業者やドメインの以前の DNS レコードに設定されている有効期間(TTL)によっては、数時間かかることもあります。このオンラインの
dig
バージョンなどのdig
ツールを使用して、DNS レコードが正常に更新されたことを確認できます。新しい URL(
https://www.example.com
など)でサービスを閲覧して、成功したかどうかをテストします。マネージド SSL 証明書が発行されるまでに数分かかる場合があります。
確認済みのドメイン所有者を他のユーザーまたはサービス アカウントに追加する
ユーザーがドメインを検証すると、そのユーザーのアカウントに対してのみドメインの検証が行われます。つまり、ドメイン マッピングを追加できるのは、そのドメインを使用しているユーザーだけです。他のユーザーがドメインを使用するマッピングを追加できるようにするには、ユーザーを確認済みのオーナーとして追加する必要があります。
ドメインで確認済みのオーナーを他のユーザーまたはサービス アカウントに追加するには、Search Console のページから権限を追加します。
ウェブブラウザで、このアドレスに移動します。
[プロパティ] で、ユーザーまたはサービス アカウントを追加するドメインをクリックします。
[確認済みサイト所有者] リストまでスクロールして [サイト所有者を追加] をクリックし、Google アカウントのメールアドレスまたはサービス アカウント ID を入力します。
サービス アカウントのリストを表示するには、Google Cloud コンソールの [サービス アカウント] ページを開きます。
Cloud Run for Anthos コンソールで Cloud Domains にドメインを登録する
Cloud Run for Anthos コンソールで Cloud Domains にドメインを登録するには、次の手順を行います。
Cloud Run for Anthos の [ドメイン マッピング] ページに移動します。
[ドメインを登録] をクリックします。
ドメインの登録の手順で登録プロセスを完了します。
ドメインを Cloud Run for Anthos にマッピングし、ドメイン登録事業者で DNS レコードを追加します。