GWS(Google Workspace)プライマリドメインの変更
某月某日、GWS(Google Workspace)プライマリドメインの変更を実施した。幸いにして大きなトラブルもなく終えることができ、ホッとしている。
変更方法については、すでにGoogleのヘルプやGMOペポバさんのブログで詳しく述べられているので、ここで自分が書き残しておく意味は薄いかもしれないが、少しでも何かの役に立つことを願って、乱筆ながらもしたためる次第である。とはいえだいぶ記憶も薄れてきたので、頑張って思い出しながら書くます。基本的には公開情報をもとに、多少自分の経験や感想を加味した程度です。
特にらんたんさんには、相談に乗っていただき本当に感謝しています。
ありがとうございます!!
プライマリドメイン変更の概要
旧 hoge@hoge.co.jp
新 hoge@hoge.com
様々な事情によりこれまでエイリアスドメインとして使用していたcomをプライマリドメインにするのが今回のミッションだ。
手順としては、ザックリ下記の流れ。
com エイリアスドメインの削除
com セカンダリドメインの登録
予備のメールアドレス追加(Rubyで一気に。各アカウント&グループメール分をやる。)
セカンダリをプライマリに昇格
各アカウントのメールアドレスのプライマリを変更
グループメールアドレスのプライマリを変更
各種影響確認
1〜3がcomアドレスのメールのダウンタイムとなる。
6と7は状況により前後することも。
準備
資料とテスト環境を用意して、双方を行ったり来たりしながら理解を深めていった。
資料
まずは資料の熟読である。
特に次の2点は必読である。
これらを最低5回は通読し、検証しながら何度も読み返すことになる。
資料1
Google Workspace管理者ヘルプ
Google Workspace のプライマリ ドメインを変更する
https://support.google.com/a/answer/7009324?hl=ja
資料2
2022-01-19 Google Workspaceのプライマリドメイン変更を実施しました
https://tech.pepabo.com/2022/01/19/primary-domain-change/
テスト環境
本番とは別のGWSテナント(テナント、と言うのかどうかわからないが、ここではとりあえずそのように呼称する)とテスト用のドメインを用意し、操作感などを検証した。
ここで注意されたいのは、新規にテナントを用意する際のプランである。
テナントを用意するルートにもよるが、ほとんどの場合、最初の14日間(代理店によっては30日間など)は無料となっている。本来であれば嬉しいが、ドメイン変更に関してはこの制約が邪魔になる。作業やそれぞれの状況にもよるが、すぐにドメイン変更テストを行いたいときは、購入元に連絡し、この無料期間をわざわざ無効にする必要がある。
今回のケースでは、月払い対応が可能となるよう、代理店などは通さずにGoogleから直接申し込みとした。
https://support.google.com/a/answer/9983832
この辺は付き合いのある代理店や経理的観点などから、よしなにしてください。
Googleのサポートは?
問い合わせてみたが、基本、特段のサポートはない。質問には答えてくれるが、その回答はGoogle Workspace管理者ヘルプを見てねに帰結するといった感想。
私の問い合わせ力が低いせいもあるのかもしれない。
Rubyコードの差分
GMOペパボさんの元のコードではAlias.new(a)であったが、
これを下記のようにAlias.new(**a)にした。
alias_email = Google::Apis::AdminDirectoryV1::Alias.new(**a)
これについては、Rubyのこの記事が詳しい。
https://www.ruby-lang.org/ja/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
Ruby素人にはよくわからんが、引数の解釈をどうにかするために**で対応してるのかな?と言う雑な理解です。
Rubyについては、初めて触ることになったので、環境構築やrbenvにも四苦八苦した。その辺りについては、多くの記事があるのでここでは割愛する。
RubyでHello Worldできるあたりまでは自分で頑張って、あとはエンジニアさんにも協力を仰いだ。
変更作業当日
実施手順書と役割分担
実施手順書を用意し、役割分担を決めて行った。
実施手順書は、当日作業すべきもの、作業内容をチェックリスト形式で用意し、順番の間違いや作業漏れが無いようにした。
念の為に、なんらかの原因で作業が進展しない場合やロールバックが必要な際の撤退ラインも決めておいた。
役割分担としては、概ね下記のような感じにした。この辺りは適宜兼務したり分担したり、組織の状況にもよるかと思う。
作業者1: メインのGWSコンソール作業者(今回、自分はこの役)
作業者2: AWSなどドメインまわり、TXTなどの設定者。今回はエンジニアチームに依頼した。
オブザーバ1: 実施手順書のテェックリスト消し込み、作業時間計測者
オブザーバ2: 全体監督、オブザーバ(ケツモチ)
当日のタイムテーブル例
結果として下記のような流れになった。
メールのダウンタイムとしては、20〜30分程度で済んだ。
ここに記した時間は実際の時間ではなく、イメージとして数字は丸めてある。
9:00 関係者集合(今回は全員オンライン)事前準備、環境をざっと確認する。
9:15 作業開始。エイリアス削除、セカンダリ登録、予備のメールアドレスの追加を行う。エイリアスの削除を行い、メールのダウンタイム開始となる。エイリアス削除後、ドメイン登録がすぐに行えず肝が冷えた(後述)
9:30 プライマリ昇格
9:40 プライマリメール変更を行い、必要な作業は終了。
9:50 変更後の各種挙動チェック。メール送受信(個人アドレス、グループ共に)、GWS関連サービス各種(カレンダ、ドライブ、アナリティクス、GCPなど)、SaaS各種(Zoom、Slackなど)
変更作業中〜後のあれこれ
エイリアス削除後、おそらく内部処理のためにセカンダリ登録が数分行えずヒヤヒヤし肝が冷えた。ここはテスト環境ではすぐに登録し直せたが、実環境では、エイリアス削除後もキャッシュ的に内部に残っているせいか、すぐに同一ドメインをセカンダリ登録しようとすると、そのドメインは使用されているといったエラーが出て一瞬焦った。ここは数分、じっと待ってリトライすることで登録を行えた。こういう時はコーヒーを淹れに行き、人間を一度リフレッシュさせるコーヒーメソッドが有効である。
変更後すぐは、カレンダの表示が調子が悪かった。数百件分のユーザの読み込みなどの内部的な処理によるものと思われ、時間が経過するとこれは改善された。
変更作業の前後に、関係者にメール送信をしてその挙動を確かめる際には、こちらのツールを利用した。おんなじようなメールをコピペで送るのは面倒なので。
https://web-breeze.net/gmail-insertion-sending/
ドメイン変更後の主なトラブル
ざっとまとめると次のようにいくつかトラブルが発生した。
Gmail
Zoom
内製システム
基本的にはログアウト→再ログインで大筋はどうにかなるが、一部、対応が必要なものもあった。
正直に告白すると、ドメイン変更作業後、自分はコロナに罹り高熱でダウンしていた。まさに変更作業の翌日から高熱が出たので知恵熱かと思った。そのため変更後のこれらのトラブル対応にはチームメンバーがあたってくれ、感謝してもしきれない。変更作業は休日に行ったので、変更後の最初の営業日から二、三日はこれらの対応が必要だったようだ。
Gmail
下図のようなエラーが出現し、メールが送信できないといった問い合わせが発生した。
一度ログアウトし、再度ログインすることで解消したようだった。
再ログインでも解決しない場合は、シークレットモードで試す、キャッシュをクリアする、とにかく急ぎで送るならスマホのGmailアプリを利用する、といった対応が考えられる。
また、SalesforceなどのGmailアドオンからログを保存できなくなったとの問い合わせが寄せられた。アカウント連携を設定し直すことで対応したと記憶している。
Zoom
基本的には、これまで旧ドメイン(co.jp)で登録していたユーザは、そのまま新ドメイン(com)にスムーズに切り替えられる。
しかしながら、エイリアスとしてcomだった時代にcomアドレスでZoomアカウントを作成していたことがある一部のユーザはログインできなくなるといったことが発生した。その場合には、一度、アカウントの管理画面から「アカウントを終了する」を実行し、アカウントを削除したのちに、Googleサインインでログインを行えば解決したはず。
プライマリドメイン変更に伴うバニティURLの変更については、別の記事にまとめた。
内製システム
これについては、各組織での対応となるのでなんとも言えないが、メールアドレスに紐づく形でユーザを制御しているような場合に特に注意が必要と考えれば良いだろうか。
課題
グループメールのプライマリアドレス変更を一括行う良い方法が思い浮かばず、結局、GWSコンソールから1件ずつポチポチ手動で脳筋変更した。全部で120件程度だったので、今回は手動でもまあ良かったが、APIなどを用いて何かしら良い方法を模索すればよかったなと、反省している。
感謝と感想
転職してから新しい環境で取り掛かった比較的大きな案件がこれだった。GWSの管理コンソールをまともに触るのも初めて、Rubyをまともに触るのも初めて、社内の体制や名前と顔もまだろくに覚えていない、色々な社内稟議や調整をするにもどうするんだっけ、そんな約3ヶ月だった。アホな質問にも真摯に対応してくださった会社の皆様には頭が上がらない。冒頭にも書いたが、GMOペポバさんのブログとらんたんさんには特に助けられた。深く感謝申し上げます。GWSの契約関係で相談に乗ってくれたな〜さん、本当にいつもありがとうございます。
当日、緊張のあまりトラックボールマウスを持つ手が震えた。手が震えると、トラックボールでカーソル位置を指定しづらいという知見を得たのは笑い話です。Apple Watchによれば、作業時の最大心拍は100をやや越えたくらいのようだった。
今回のためにIT守護も用意したので、今度、お礼参りに行かないと。
神田明神はオンライン授与所があり、そこでお守りも買えます。
もしも、今後、プライマリドメインの変更作業をする方がいたとして、このnoteがほんの少しでもお役に立てば幸いです。
#GWS
#プライマリドメイン
#ドメイン
#ドメイン変更
#プライマリドメイン変更
#GoogleWorkspace