Telegramの5DCの謎:DC2・DC3の実態
原題: Mysteries of Telegram Data Centers
なぜ重要か
Telegramのインフラ構造とDC割り当てロジックの実態を技術的に明らかにしており、サービスの信頼性や地域ごとの通信品質を理解する上で有益な情報となる。
ブロガーのCoxxs氏が2022年5月に調査・公開した記事によると、TelegramはDC1〜DC5の5つのデータセンターを持ち、DC1・DC3が米国マイアミ、DC2・DC4がオランダ・アムステルダム、DC5がシンガポールに位置する。アカウントは登録時の電話番号の国番号によってDCが決定され、変更はできない。DC2には多数のユーザーが存在し、DC3は約2020年頃にユーザーが移転し現在はほぼ無人とされる。
Telegramは公式にDC1からDC5までの5つのデータセンター(DC)を持つと説明しており、各アカウントは登録時の電話番号の国番号に基づいて特定のDCに割り当てられる。割り当て後は変更できず、ユーザーが誤ったDCに接続しようとするとサーバーはエラーを返す仕組みとなっている。
中国語圏のTelegramコミュニティではDC5(シンガポール)が頻繁にダウンすることで知られており、+86(中国)の電話番号で登録したユーザーの多くがDC5に割り当てられている。
あるボットを使ったDC調査では、調査対象のグループ内でDC1に360人、DC4に50人、DC5に390人のユーザーが確認された一方、DC2とDC3のユーザーは0人という結果が出た。これを受け、DC2・DC3にはユーザーが存在しないとの憶測や、両DCが親DCの補助的な役割を担うとの説が浮上した。
しかし、Coxxs氏の詳細な調査(2022年5月時点)によると、実際にはDC1・DC2・DC4・DC5の4つが通常の新規登録を受け付けており、それぞれに多数のユーザーが存在する。DC2には+49(ドイツ)など対応国番号で登録したユーザーが確実に割り当てられており、ユーザー数も多い。
DC3については、かつてユーザーが存在したものの、2020年頃にDC3のユーザーがDC1へ移行されたとみられ、現在は新規登録も行われておらず、ユーザーがほぼいない状態と考えられている。
ボットがDC2ユーザーを検出できなかった理由は、ボット自体のDC取得方法に欠陥があったためとされる。実際のDCを正確に確認するには、TelegramのMTProtoプロトコルを使ってDC1に接続し、auth.sendCodeインターフェースを呼び出す方法が有効で、その際にサーバーが返す「PHONE_MIGRATE_2」などのエラーメッセージで正確なDCを特定できると説明されている。