こんにちは。情報システム課の市川です。
先日、社内で利用しているGoogle Workspaceのプライマリドメインを10数年使われていた ”nulab.co.jp”から”nulab.com”へ変更しました(以下、ドメイン変更)。
ドメイン変更は、Google Workspaceだけでなく、広範囲に影響を及ぼす大変な作業でした。例えば、Google Workspace以外のGoogleサービスやGoogle認証を行っているSaaSサービスなどに影響を与えます。
そして今回、同じように大変な思いをしている方々の参考になればとブログを書くことにしました。また、現在 情報システム課の仲間を募集中(2023年12月時点)ですので、弊社の情シスに興味がある方にもお読みいただけると嬉しいです。
目次
当ブログの要旨
まず、当ブログに記載している内容を簡単にまとめてみました。ざっくりと内容を把握いただき、詳細を知りたい方は次に進んでもらえればと思います。
項目 | 内容 |
ドメイン変更の目的 | 利便性向上のため。 ・弊社では、IdPとして利用しているEntra ID(旧Azure AD)が”nulab.com”、Google Workspaceが”nulab.co.jp”でドメインが異なる ・その結果、利用サービス毎にドメインを意識する必要があり、不便に感じていた |
ドメイン変更で大変だった点 | 影響範囲の特定に時間がかかったこと。 時間がかかった理由は3点。 ・Google Workspaceのドメイン変更に関する制約事項が多く、その対処に苦慮したから ・他のGoogleサービスのドメイン変更に対する影響がわからなかったから ・Google認証を利用したSaaSサービスが多かったから |
ドメイン変更に要した時間 | ・要した時間は1時間半 ・そのうち、メールのダウンタイム(計画内)が1時間発生 |
ドメイン変更後の影響 | ・トラブルは3件発生 ・ただし、業務が停止するほどの重大な障害は未発生 |
ドメイン変更に当たっての前提事項
ドメイン関連の用語の説明
ここでは、ドメイン変更の詳細をお伝えするにあたり、必要となる用語を簡単に説明しておきます。
用語 | 内容 |
プライマリドメイン | Google Workspaceで利用するメインのドメイン。 このドメインが、ユーザーのプライマリメールアドレスとして利用され、Google アカウントに関連付けられる。 |
メールエイリアス | 1つのメールアドレスで複数のメールアドレスを利用できる仕組み。 |
エイリアスドメイン | メールエイリアスを自動で付与するためのドメイン。 |
セカンダリドメイン | ユーザーのGoogleアカウントを別のドメインで管理したい場合に利用するドメイン。また、プライマリドメインに所属しているユーザーのメールエイリアスのドメインとして手動で選択することが可能。 |
具体的な内容を知りたい方は、Google Workspace管理者ヘルプを参照ください。
弊社のドメイン構成とメールシステム
弊社のドメイン変更前後の構成とメールシステムは、次のイメージ図の通りとなっています。
変更後の構成が、エイリアスドメインからセカンダリドメインになっている理由については「4.2.プライマリドメイン候補に対する制約」の「補足2」で説明します。現時点では「構成が変わったんだー」くらいに思っていただければ大丈夫です。
ドメイン変更の目的
ドメイン変更は、一言でいうと利便性を向上させるために行っています。具体的には、以下の状況を解消するためにドメインを変更したいと考えるようになりました。
- IdPとして利用しているEntra IDとGoogle Workspaceのプライマリドメインが異なる状況
- その結果、ユーザーはログインするサービスによってドメインを意識する必要があり、使い勝手が悪い(※1)
■ドメイン変更前のEntra IDとGoogle Workspace
サービス | プライマリドメイン | 利用者アカウント |
Entra ID | nulab.com | XXX@nulab.com (Microsoftアカウント) |
Google Workspace | nulab.co.jp | XXX@nulab.co.jp (Googleアカウント) |
事前準備:Google Workspaceの制約事項への対処
Google Workspaceには、ドメイン変更に関する様々な制約事項により、事前に準備すべき点が多くあります。本章では、それらの制約事項の説明と弊社で行った対処について記載していきます。
ドメイン変更の設定反映時間に対する制約
ドメイン変更には、設定反映までの時間に関する制約がいくつか存在します。特に時間的に大きな制約が2つあり、これらを考慮すると作業に72時間以上かかることになります。
- Google Workspaceからセカンダリドメイン/エイリアスドメインを削除したばかりの場合、そのドメインを追加できるようになるまでに最長で24時間かかることがある(セカンダリドメイン/エイリアスドメインの削除が必要になる理由は「4.2.プライマリドメインの候補に対する制約」で説明します)
- プライマリドメインを変更した後、新しいプライマリドメインが有効になるまで最長で48時間かかることがある
しかし、実際に検証してみると、作業がより短時間で行えることがわかりました。そのため、作業当日の計画は検証にかかった時間を元に立てることにしました。
プライマリドメイン候補に対する制約
Google Workspaceでは、「プライマリドメインへの変更はセカンダリドメインしかできない」という制約があります。そのため、弊社のように既存のエイリアスドメイン”nulab.com”をプライマリドメインに変更したい場合、一旦エイリアスドメインから”nulab.com”を削除し、その後セカンダリドメインとして再登録する必要があります。しかし、この作業を実施すると3つの問題が発生してしまいます。
No | 問題点 |
1 | エイリアスドメインを削除したタイミングでメールエイリアスも自動的に削除される。そのため、メールのダウンタイムが発生する。 |
2 | セカンダリドメインとして登録した後、自動でメールエイリアスが追加されない。そのため、Google WorkspaceのGUI上で各ユーザー毎に手動でメールエイリアスの追加が必要となり、ダウンタイムの時間が長くなる。 |
3 | ダウンタイム発生中にメールを受信した場合、送信元に対しハードバウンスが返される。送信元によっては、ハードバウンスによりサプレッションリストに追加され、弊社宛のメールが意図せず送信されなくなってしまう。 |
1つ目の問題については、ダウンタイムを縮小させることを考えました。「4.1.ドメイン変更の設定反映時間に対する制約」から、エイリアスドメインをセカンダリドメインとして再登録するまでの最大時間は24時間となりますが、検証の結果、1時間程度で実施できることがわかりました。
2つ目の問題については、GASでAdmin SDK Directoryサービスを使うことで、時間を短縮することにしました。
3つ目の問題については、ソフトバウンスで返してリトライを行ってもらえるよう、別途メールサーバーを準備しました。なお、メールサーバーの準備については、クックパッド様のドメイン変更ブログを参考にさせて頂いています。
ここで、本題ではありませんが、少し補足をさせて頂きます。
補足1:エイリアスドメイン”nulab-inc.com”もセカンダリドメインに変更した理由
nulab-inc.com”も”nulab.com”と同様にセカンダリドメインとして追加することにしました。
”nulab.com”のみをセカンダリドメインとして追加した状態でドメイン変更すると、nulab-inc.com”がセカンダリドメイン”nulab.co.jp”のエイリアスドメインとして存在してしまうからです。
補足2:プライマリドメインを変更した後にセカンダリドメインをエイリアスドメインに変更しなかった理由
ドメイン変更後、セカンダリドメイン(nulab.co.jp/nulab-inc.com)は、エイリアスドメインに戻さないことにしました。
理由はメールのダウンタイムが再発生してしまうからです。仮にエイリアスドメインへ戻した場合、セカンダリドメインを一度削除する必要があります。セカンダリドメインを削除するには事前にメールエイリアスを削除する必要があり、その際に発生するダウンタイムを避けたいと考えました。
ただし、エイリアスドメインに戻さない場合、ドメイン変更後に作成したユーザーに対し”nulab.co.jp”と”nulab-inc.com”のメールエイリアスが自動で付与されなくなります。そのため、事前に周知を行い、メールエイリアスを作成しない方向で調整しました(※2)。
IdPからGoogle WorkspaceへのSSO設定/プロビジョニングに対する制約
IdPを使用してGoogle WorkspaceのSSOやプロビジョニングの設定が行われている場合、プライマリドメイン名が含まれる項目は、新しいプライマリドメイン名を反映した内容に変わるので、IdP側の設定を合わせて変更する必要があります。
弊社では、Entra IDを使ってSSOやプロビジョニングを行っています。そのため、事前にEntra ID側の設定変更箇所を確認し、作業当日の手順へと組み込みました。
Chrome関連の設定に対する制約
Google Workspaceの管理コンソール上にはいくつかChromeOS/Chromeブラウザに関する設定があるのですが、2つの制約があります
- Google Workspace上でMeetデバイスが登録されている場合、プライマリドメインを変更することができない
- Chrome Enterpriseライセンスが有効になっている場合、プライマリドメインを変更することができない
弊社は、上記の制約に該当しない状況でした。しかし、過去Meetデバイスを利用していたこともあり、念のためGoogle Workspaceのサポートへ問合せを行っています。結果的にプライマリドメインへ変更可能な状況である旨を回答頂き、調査を完了させました。
事前準備:他のGoogleサービスの影響確認
Google Workspaceと各Googleサービスの検証環境を作り、ドメイン変更後もサービスへログインできることを確認しました。
ドメイン変更に伴う各Googleサービスの影響に関するナレッジが少ないこともあり、「検証せざるを得なかった」というのが正直なところです。
参考までに、検証したサービスとその結果を記載しておきます。
Googleサービス | 検証結果 |
Google Cloud Platform | ドメイン変更後のGoogleアカウントでログイン可能(※3) |
Firebase | |
Google 広告 | |
Google アナリティクス | |
Googleタグマネージャー | |
YouTube | |
Chrome ウェブストア | |
Google Play Console | (未検証) |
Googleサービスのうち、Google Play Consoleのみ検証を行いませんでした。Google Workspaceの管理者ヘルプサイトにGoogle Play Consoleを利用する際に必要となるデベロッパーアカウントがドメイン変更の影響を受けると明示されていたからです。
対処として、デベロッパーアカウントを移行する手続きが必要となります。詳細な移行手順をGoogle Play Consoleのヘルプデスクへ確認しながら、移行の準備を進めていきました。
ですが、ヘルプデスクに書かれていた内容と実際の挙動が違う結果となりました。詳細は、”11.1.Google Play Consoleのデベロッパーアカウント移行”に記載します。
事前準備:Google認証を利用しているSaaSサービスの影響確認
Google認証を行っているサービスは、パターンに分けて対応を行っていきました。
パターン | 対処 |
ドメイン変更の影響がない | 対処不要 |
ドメイン変更の影響があり且つSAML認証やMicrosoftアカウント認証への切替が予算・期間的に可能 | Google認証からSAML認証またはMicrosoftアカウント認証への切り替え |
ドメイン変更の影響があり且つSAML認証やMicrosoftアカウント認証への切り替えが予算・期間的に不可 または、ドメイン変更の影響がわからない |
Google認証から一旦ID/パスワード認証へ切り替えし、ドメイン変更後に再度Google認証へ切り替え |
対象となるサービスは30種程度あり、それぞれ対して以下の作業が発生するため、地味に大変だったと記憶しています。
- 各SaaSサービスのサポート窓口への問合せ(ドメイン変更の影響確認)
- 切り替え方法の確認
- 切り替え手順の作成
- サービス利用者への切り替えの実施や確認依頼
- 設定変更作業(SAML認証へ変更する場合)
- 切り替えの進捗状況の確認やリマインド
当日作業のサマリー
事前準備を済ませ、全社へと周知を行った後、いよいよ当日作業を迎えることになります。先に断っておきますが、当日作業の記事が8章~10章まで続いており長いです…。そのため、作業の全行程を表にまとめています。
Google Workspaceの制約事項への対処を十分に行ったことで、当日はスムーズに作業を終わらせることができました。なお、作業はメールのダウンタイムが発生することもあり、週末に行っています。
項目 | 計画 | 実績 |
変更前準備 | ||
8.1.Entra ID上での自動プロビジョニング停止 | 10分 | 2分 |
8.2.DNSのMXレコード変更 | 5分 | 9分 |
8.3.一時メールサーバでの受信確認 | 20分 | |
ドメイン変更作業 | ||
9.1.エイリアスドメイン削除 | 10分 | 4分 |
9.2.セカンダリドメイン追加 | 40分 | 14分 |
9.3.メールエイリアス追加 | 20分 | |
9.4.Googleメールサーバーへのメール直送による受信確認 | 10分 | 16分 |
9.5.DNSのMXレコード切り戻し | 5分 | |
9.6.Gmailでのメール受信確認 | 20分 | 15分 |
9.7.プライマリドメインの変更 | 30分 | 2分 |
9.8.プライマリメールアドレスの変更 | 30分 | 2分 |
9.9.グループアドレスの変更 | 15分 | 8分 |
9.10.テストドメインエイリアスの変更 | 5分 | 3分 |
変更後作業 | ||
10.1.Entra ID上でのSSO設定変更 | 10分 | 5分 |
10.2.Entra ID上での自動プロビジョニング設定変更 | 10分 | 6分 |
合計 | 4時間 | 1時間26分 |
当日作業:変更前準備
Entra ID上での自動プロビジョニング停止
弊社では、Entra IDで、SCIMを使ったGoogle Workspaceユーザーの自動プロビジョニングを行っています。ドメイン変更中にプロビジョニングの同期処理が行われないよう、停止を行いました。
DNSのMXレコード変更
メールのダウンタイム中に受信したメールを送信元へソフトバウンスで返すよう、”nulab.com”と”nulab-inc.com”のDNSのMXレコードを事前準備したメールサーバーへ変更します。作業前日に各DNSのMXレコードのTTL値を短く(弊社では300秒に設定)していたおかげで、切り替えはスムーズに行われました。この切り替えが完了した時点で”nulab.com”と”nulab-inc.com”におけるメールのダウンタイムが開始となります。
一時メールサーバーでの受信確認
”nulab.com”及び”nulab-inc.com”のドメイン宛にメールを送信し、事前準備した一時メールサーバーのログからソフトバウンスが返されていることを確認しました。
当日作業:ドメイン変更
エイリアスドメイン削除
GoogleAdminコンソールへアクセスし、”nulab.com”及び”nulab-inc.com”のエイリアスドメインを削除しました。
セカンダリドメインの追加
”nulab.com”及び”nulab-inc.com”をセカンダリドメインとして追加します。5分~10分程度待つと、ドメイン所有権の確認画面が表示されます。画面の指示通りDNSに対しTXTレコードを設定することで問題なくセカンダリドメインが追加されました。
その後、Gmailの有効化処理を行います。Gmailを有効する方法としてMXレコードを使う方法と、TXTレコードを使う方法があります。しかし、MXレコードを使ってGmailを有効にするとメールがGmailに対して配送され、ロストしてしまうので、MXレコードでの有効化は行いません。そのため、ここでは「MXレコードのスキップ」を選択します。
「Gmailを有効にしました」と管理コンソール上に表示されたら作業完了です。
メールエイリアス追加
セカンダリドメインの追加が完了したので、プライマリドメイン”nulab.co.jp”の各ユーザーと各Googleグループに対し、”nulab.com”及び”nulab-inc.com”のメールエイリアスを追加します。事前に準備したGASを実行し、スムーズに完了させました。
Googleメールサーバーへのメール直送による受信確認
メールエイリアスを追加したので、MXレコードを切り替えればメールのダウンタイムは完了となります。その前に、Googleのメールサーバーへ”nulab.com”及び”nulab-inc.com”宛のメールを直送してみて正しく受信できるか確認しました。なお、確認にはSwaksを利用しています。(Swaksの利用についてもクックパッド様のドメイン変更ブログを参考にさせていただきました)
DNSのMXレコード切り戻し
”nulab.com”と”nulab-inc.com”のDNSのMXレコードを元に戻します。
Gmailでのメール受信確認
”nulab.com”及び”nulab-inc.com”のドメイン宛にメールを送信し、Gmailで受信できることを確認しました。確認ができた時点でメールのダウンタイムは終了です。
プライマリドメインの変更
いよいよプライマリドメインを”nulab.co.jp”から”nulab.com”へ変更します。こちらも特に問題なく、すぐに変更が行われました。
プライマリメールアドレスの変更
プライマリドメインを変更しても、プライマリドメインに所属する各ユーザーのプライマリメールアドレスは旧ドメインのままです。
そのため、プライマリメールアドレスのドメインを”nulab.co.jp”から”nulab.com”に変更するための作業が必要となります。変更はGoogle WorkspaceのCSVを利用したユーザー一括更新で行うことができます。
プライマリメールアドレスが”nulab.com”に変更されるタイミングで、元のプライマリメールアドレス”nulab.co.jp”は自動的にメールエイリアスへと変更されます。そのためメールのダウンタイムは発生しません。
グループアドレスの変更
グループアドレスについても、プライマリメールアドレスと同様です。プライマリドメインを変更しても、グループアドレスは旧ドメインのままになっています。しかし、プライマリメールアドレスのようにCSVによる一括更新機能は提供していませんでした。そこで、事前に準備したGASを実行し一括で変更を行っています。
こちらも「9.8.プライマリメールアドレスの変更」と同じで、グループメールアドレスが”nulab.com”に変更されるタイミングで、元にグループアドレス”nulab.co.jp”は自動的にメールエイリアスへと変更されます。そのためメールのダウンタイムは発生しません。
テストドメインエイリアスの変更
Google Workspaceでは、テストドメインエイリアス”(プライマリドメイン).test-google-a.com”が自動で割り当てられています。特に利用していなかったので、そのままでも影響はないのですが、統一感を持たせるために変更を行いました。作業としてはテストドメインエイリアスを一度無効化した後、再度有効化するだけで”nulab.co.jp.test-google-a.com”から”nulab.com.test-google-a.com”へ変更されます。
当日作業:変更後作業
Entra ID上でのSSO設定変更
Entra IDへ接続し、GooleWorkspaceとのSAML設定画面でドメイン名が含まれる設定項目を変更します。具体的には以下の設定のドメイン名が記述されている部分を”nulab.co.jp”→”nulab.com”に変更しました。
- 識別子(エンティティID)
- 応答URL(ACS)
- サインオンURL
また、ドメイン変更前はEntra ID(nulab.com)とGoogle Workspace(nulab.co.jp)のドメインが異なることからSAMLレスポンスに含まれるクレーム情報を”nulab.com”から”nulab.co.jp”へ変換するようカスタマイズを行っていました。今回、両者のドメインが一致したのでカスタマイズしていた設定を元に戻しています。
Entra ID上での自動プロビジョニング設定変更
自動プロビジョニングの属性マッピング情報をカスタマイズしていましたが、元に戻しました。カスタマイズを行っていた理由は、「10.1.Entra ID上でのSSO設定変更」で記載した内容と同様です。また、このタイミングで初めに停止していた自動プロビジョニングの同期を再開しました。
問題なく同期されたのを見届け、作業は全て完了です。
ドメイン変更後のトラブル対応
ドメイン変更後も特に重大なトラブルはありませんでした。これも他のGoogleサービスやGoogle認証を利用しているSaaSサービスの影響確認を丁寧に行ったおかげだと思っています。
しかし、3点ほどトラブルが発生したので、その内容を記載していきます。
Google Play Consoleのデベロッパーアカウント移行
結果的に問題はありませんでしたが、「5. 事前準備:他のGoogleサービスの影響確認」で記載したデベロッパーアカウントの移行ができませんでした。
以下、当時の具体的な状況となります。都合上、デベロッパーアカウントとして登録していたGoogleアカウントを”aaa@nulab.co.jp”(仮名)として記載させて頂きます。
- ドメイン変更後に移行先のデベロッパーアカウントとして”aaa@nulab.com”を新規登録を行う予定だったが、登録できない
- ドメイン変更後、Google Play Consoleへ”aaa@nulab.com”でログインできる
- Google Play Console上でのデベロッパーアカウントの所有者は”aaa@nulab.co.jp”のまま
Google Play Consoleのヘルプデスクに状況を伝えたところ「2」/「3」の状態でも引き続き問題なく利用できるとのことでした。そのため、デベロッパーアカウントの移行をしないまま、対応を完了しています。
また、「1」についてですが”aaa@nulab.com”がドメイン変更前までデベロッパーアカウントである”aaa@nulab.co.jp”であったことが原因で、新規登録が行えないとのことでした。(移行先として”aaa@nulab.com”を利用することは事前にヘルプデスクへお伝えしていたのですが…結果オーライということで)
Gmailで追加した送信メールアドレスからの送信
”nulab.com”, “nualb-inc.com”, “nulab.co.jp”以外のドメインの送信メールアドレスを追加していた場合、追加したメールアドレスを差出人としてメール送信が行えない事象が発生しました。再度、送信メールアドレスを追加し直すことで解消しています。
内製ツールの利用
GoogleアカウントでOAuthの認可を行っている内製ツール(チャットBot)の1つが利用できなくなりました。再デプロイすれば再度利用できるようになるのですが、今回は開発担当者にて代替の内製ツールを利用するよう、全社周知することで解消しています。
まとめ
長くなりましたが、Google Workspaceのプライマリドメインの変更に関する一連の作業について記載させて頂きました。
冒頭でも記載した通り、影響範囲が広いため事前の準備がとても大変でした。挫けそうになることもありましたが、準備の甲斐あって、変更作業を終えた後も大きなトラブルなく運用することができています。
- Google Workspaceのドメイン変更を行う予定だったから参考になった!
- ヌーラボの情報システム課に興味を持った!
もしブログを読んで、そんな気持ちになってもらえたら嬉しいです。
最後に
ドメイン変更を行うに当たり、各社様のテックブログをよく参考にさせてもらいました。この場を借りて感謝致します。
また、社内においても多くの方々に協力いただきました。
- 情シス担当:作業全般のサポート
- QA担当:GASのレビュー、メールサーバー関連の準備/当日作業
- SRE担当:DNS設定に関する当日作業
本当にありがとうございました!
以下、補足事項。
※1 Google Workspace自体はEntra IDでSSOできるのですが、Google認証を行う際は、”nulab.co.jp”ドメインのメールアドレスを入力する必要があり、特にドメインを意識せざるを得ない状況でした
※2 現在は社内事情により新規作成したユーザーに対しては、”nulab-inc.com”のメールエイリアスのみ手動で追加しています
※3 あくまでも弊社が検証を行った時点での結果となります