TeamsからGoogle Chatへ移行するツールを検証してみた
2024年3月22日にGoogle Chat APIとして他のチャットツールからの受け口になるAPIがリリースされました。しかしAPIなので他のチャットツールからの移行となると「移行ツールを自分で作る」必要性があります。対応してる移行ツールも少ないですがありますが、その為にコストを払って・・・というのも考えものです。
しかし、2024年12月17日、Google公式からMicrosoft TeamsからGoogle Chatへのチャンネルデータ移行ツールがリリースされました。Google Chat APIとMicrosoft Graph APIを使って移行してるものと思います。今回これを使って移行を検証してみたいと思います。
目次
今回利用するツール
管理コンソール上から作業を行う必要があるため特権管理者の権限が必要な点と、Microsoft Teamsの「チャンネルデータ」を移行する為、Microsoft365側の特権管理者権限が必要になります。
また、チャンネルデータなので「個人のチャット」については移行対象外のようです。移行対象に関してはこちらに一覧表でまとめられています。ボットのメッセージも移行対象外で、スレッドも最大500件までと制限が付けられています(まぁ、500件もスレッドで返信することはあまりないと思いますが)。
また、Teamsのチャンネルへの投稿時の添付ファイルはSharepointにアップロードされて管理されますが、これも移行対象外となります。
事前準備
以下の作業はすべてGoogle Workspaceの管理コンソール側で行います。すでに利用可能な状態となっているので、管理者権限があれば移行を実行することが可能です。
Microsoft365と接続する
以下の手順で移行ツールとMicrosoft365を接続する必要があります。
- 管理コンソールにログインする
- 左サイドバーより、データ→データのインポートとエクスポート→データ移行(新規)をクリックする
- パネルに「Microsoft Teams」があるので、移行をクリックする
- Microsoftアカウントに接続するをクリックする
- Microsoftアカウントログイン画面になるので、M365側特権管理者のアカウントでログインする
- 要求されているアクセス許可が出てくるので、承諾をクリックする
これで接続は完了しました。
図:既にツールが用意されています。
図:要求されるスコープ
移行マップデータを作成する
Teamsのチャンネルリストを取得する
- TeamsのチャンネルIDを一つずつ取得するのはダルすぎるので、Teams管理センターを開く
- 左サイドバーよりTeams→チームを管理を開く
- テナント内の全チームがリストアップされてるので全部選択する
- Excelアイコンのエクスポートをクリックする
- しばらく待つと上部通知欄のダウンロードにリンクが出るのでクリックするとCSVがダウンロードされる
このファイルを開くと、「Groups Id」という列があり、これがチャンネルのIDとなります。
図:Teams管理センターから作業を行う
移行マップCSVを作成する
移行させるTeamsのチャンネルIDをまとめたCSVファイルを作成する必要があります。前述の手順からの続きとなります。このリストは10MB未満且つ150,000行未満である必要があります。
- 前述の手順のステップ2にある「サンプルCSVをダウンロード」をクリックする。(migration_maps_sample.csvというファイルがダウンロードされます)
- LibreOfficeなどのツールでサンプルCSVを開く
- Source MicrosoftTeamsIDの列に前述のTeams管理センターから入手したリストのGroup IDを列挙していく
- CSVとして保存し直す
- 管理コンソール側のステップ2の「移行マップのCSVをアップロード」をクリックして、CSVファイルを指定します。
これで移行マップCSVファイルは完成しアップロードも完了しました。
図:チャンネルIDを列挙しただけのCSV
IDマップを作成する
IDマップとは何か?というと、Google Workspace側で利用してるドメインやユーザのメアドと、Microsoft365側で利用してるドメインとユーザのメアドが異なる場合、そのままでは当然移行が出来ませんので、これを1:1で対応するのがIDマップです。移行元と移行先との間でアカウントを一致させる必要があり、これをもとに権限などを保持します。
以下の手順でCSVを作成してアップロードする必要があります。
- 管理コンソールのステップ3における「サンプルCSVをダウンロード」をクリックしてダウンロードする(identity_maps_sample.csvというファイルがダウンロードされます)
- Source Emailの列はMicrosoft365側のユーザのユーザプリンシパルネーム等を入れる(いわゆるメアド)
- Destination Emailの列はGoogle Workspace側のユーザのメアドを入れる
- CSVとして保存し直す
- 管理コンソール側のステップ3の「IDマップのCSVをアップロード」をクリックして、CSVファイルを指定します。
これでマッピングまで含めて完了しました。
図:IDマッピングも必要になるでしょう
移行設定を行う
最後に移行設定を行う必要があります。Google Chat APIの制限として30日以内に移行を完了しないといけません。よって、あまりにも莫大な場合には分けて移行する必要や、移行するデータの期間を絞って移行の実行が必要です。
- メッセージの開始日:移行対象とするメッセージの移行対象日付を指定する
- マッピングされていないID:もしIDマップで指定していないユーザがいた場合どうするか?のオプション
上記を入力して「保存」をクリックする
図:移行オプションを指定する
移行を実行する
いよいよ実行しますが色々と注意点があります。以下の手順をその必要性まで含めて理解し実行する必要があります。
移行実行開始
手順的にはステップ5の移行するにある「移行を開始ボタン」をクリックするだけなのですが、この時点で
- データ移行用のクライアントIDが発行されます
- クライアントIDに対して自動的に対象APIに対するドメイン全体の委任が付与されます。
といった作業が行われます。
移行完了後、レポートを元に失敗した内容などを確認してみたりしますが、これで完了ではなく移行開始時から完了までの間のデータやエラーになってるけれども再実行で救えるものもあるので、次項の差分実行を必ずを行いましょう。
図:移行を実行しました
差分実行をする
前述にもあるように、移行開始時から完了時までの間のデータや、エラーになってるけれどネットワークエラーなどでエラーとなってるものについては再実行をすることで移行できます。再実行で重複することは無いので、「差分移行を実行」をクリックします。(通称デルタ更新と呼ばれてるのがコレ)
移行済みデータはスキップされますので短時間で完了するはずです。
図:必ず差分実行を行いましょう
スペースのロールアウト
前述までで移行は完了していますが、最後に「スペースのロールアウト」をしないとGoogle Chatのスペースに表示されません。この作業を行い、問題がなさそうであれば「移行を終了する」をクリック→移行を終了して削除を実行して完了となります。
図:スペースをロールアウト
図:移行を終了する
移行結果の比較
Teams側およびGoogle Chat側の2つのそれぞれの見え方の差は以下の図のようになります。全てBotが移行してる事になっているため、送信主などはチャット欄に名前は記載されますが、自分の場合であってもDataMigrationServiceという名前で投稿してる形となっています。
返信に関してもきちんと返信として取り込まれている為、違和感はありません。移行できないデータ等など受け入れなければならないものがありますが、概ね良い感じで移行出来ているのではないかと思います(本来はGoogle DriveにSharepoint側へ添付ファイルを移行もしてほしい所)
図:Teams側の見え方
図:Google Chat側の見え方
関連リンク
- Microsoft Graph API を使用する
- 別のサービスから Google Chat にメッセージ データをインポートする
- Google Chat API を使って他のメッセージング プラットフォームからデータをインポートする機能の一般提供を開始
- Google ChatからTeamsへの移行手順について
- 「Google Chat」が「Slack」「Microsoft Teams」と相互運用可能に!
- Make the switch from Google Workspace the right way
- Migrating Microsoft Teams to Spaces in Google Chat - CloudM
- Microsoft Teams to Google Chat Migration Guide for Businesses
- Microsoft Teams 管理センターでチームを管理する
- ShareGateを利用してTeamsの中身をテナント内で移行してみた