【移行地獄】20年運用した物理ネットワークをGCPに移行して6ヶ月炎上した全記録
プロローグ:軽く見ていたクラウド移行
2025年1月15日(月曜日)午前10時
「物理ネットワークからクラウドへの移行?簡単じゃないですか。VPC作って、サブネット切って、VMインスタンス立てるだけ。3ヶ月もあれば余裕でしょ」
経営陣の前でそう胸を張って宣言した私。まさか、その後6ヶ月間地獄を見ることになるとは夢にも思いませんでした。
これは、20年間蓄積されたレガシーな物理ネットワークをGCPに移行しようとして炎上した、血と汗と涙の記録です。
第一章:「20年の負債」という現実
移行対象:想像を絶するレガシー環境
私たちが移行しようとしていたのは、創業時から20年間拡張し続けてきた物理ネットワークでした。
本社オフィス(従業員280名)の構成:
|
|
支社3箇所:
- 大阪支社(50名)
- 福岡支社(30名)
- 札幌支社(25名)
工場2箇所:
- 千葉工場(製造ライン制御システム)
- 群馬工場(品質管理システム)
「これをクラウドに移すだけでしょ?楽勝じゃん」
1月16日:最初の衝撃
実際に既存環境の詳細調査を開始して、愕然としました。
発見した問題群:
1. ネットワーク設計の無秩序さ
|
|
|
|
「なんで各部署でゲートウェイが違うんだ…?」
2. レガシーシステムの依存関係
製造ライン制御システム(千葉工場):
- OS: Windows Server 2003(サポート終了済み)
- アプリケーション: VB6で書かれた専用ソフト
- 通信: 特定のIPアドレス(192.168.100.5)にハードコード
- ベンダー: 既に倒産
品質管理システム(群馬工場):
- OS: Red Hat Enterprise Linux 4(古すぎ)
- データベース: Oracle 9i(これも古い)
- ネットワーク: 固定IPでしか動作しない仕様
「これ…移行できるの?」
3. 謎の自作システム群
20年間で退職した歴代のIT担当者が作った「秘伝のタレ」システムが至る所に。
|
|
mystery_sync.sh の中身:
|
|
「これ誰が作ったの…?何のためのスクリプト…?」
1月20日:移行計画書の提出
上司への報告:
「移行対象システムを調査した結果、予想より複雑でした。移行期間を6ヶ月に延長したいと思います」
上司:「何言ってるの?3ヶ月って約束したじゃない。4月1日の新年度から新システムでスタートする計画だから」
「でも、レガシーシステムが…」
上司:「言い訳しないで。できる方法を考えて」
追い込まれた私の無謀な判断:「フォークリフト移行」
第二章:2月の楽観 - 小規模から始める罠
移行戦略:段階的アプローチ
せめて段階的に移行しようと、以下の計画を立てました:
Phase 1(2月): 札幌支社(25名、最小構成) Phase 2(3月): 大阪・福岡支社(80名) Phase 3(3月後半): 本社オフィス(280名) Phase 4(4月): 工場システム(最難関)
「小さいところから始めれば、問題も小さいはず」
2月5日:札幌支社移行開始
札幌支社の既存構成:
|
|
GCP移行後設計:
|
|
「シンプルで綺麗な設計。これならすぐできる」
2月10日:最初の地雷踏み
移行作業開始から5日目、最初の大問題が発生。
朝9時、札幌支社から緊急の電話:
「ファイルサーバーにアクセスできません!仕事になりません!」
調査の結果判明した問題:
1. Active Directoryドメインの依存関係
札幌のファイルサーバーは、東京本社のActive Directoryドメインコントローラーに依存していました。
|
|
問題:
- GCP上のファイルサーバーから物理DC(192.168.100.10)への接続ができない
- VPN設定がActive Directory認証に対応していない
- 認証が通らないため、全ユーザーがファイルアクセス不可
2. 固定IPアドレスへの依存
|
|
問題:
- 全PCで共有ドライブが192.168.1.10でハードコード
- 新しいIP(10.1.2.10)に変更する必要があるが、25台すべて手作業
- DNSも未整備で名前解決できない
3. プリンター設定の複雑怪奇な依存関係
|
|
なんと、札幌のプリンターの設定情報が東京のプリンター管理サーバー(192.168.100.15)で管理されていました。
依存関係の連鎖:
|
|
「なんで札幌のプリンターが東京のサーバーに依存してるの…?」
2月12日:緊急回復作業
土日を使った緊急対応:
|
|
結果:
- 土日2日間徹夜作業
- 札幌支社は月曜から通常業務再開
- しかし、プリンター問題は未解決
「小規模な支社でもこんなに大変なんて…」
第三章:3月の崩壊 - 複雑さの爆発
3月1日:大阪・福岡支社の同時移行
札幌での経験を活かし、今度は事前調査を綿密に実施。
大阪支社(50名)の発見された複雑さ:
1. 部門間VLANの複雑な設定
|
|
問題: GCPのVPCファイアウォールルールで、この複雑なVLAN間通信制御を再現する必要がある。
2. 謎の業務システム群
大阪独自の顧客管理システム:
- 開発言語:Visual Basic 6.0
- データベース:Microsoft Access(.mdb形式)
- ネットワーク:特定の共有フォルダ(\192.168.10.5\database\)
- 作成者:10年前に退職したベテラン社員
|
|
「IPアドレスがハードコードされてる…しかもアクセスファイル…」
3. 福岡支社の「独立王国」問題
3月5日、福岡支社調査で判明した事実:
福岡支社は、他の拠点とは完全に独立したネットワーク設計になっていました。
|
|
なぜこうなったのか?
2018年に福岡支社が独立採算制になった際、「本社のシステムに依存したくない」という支社長の判断で、完全に独立したシステムを構築していました。
問題:
- 福岡支社だけ移行方式が全く違う
- 統合的なGCPプロジェクト設計との整合性なし
- ユーザー管理、権限管理も独立
「これ、移行じゃなくて新規構築じゃん…」
3月15日:複数拠点同時移行の悪夢
準備期間1ヶ月で強行した結果:
移行当日のタイムライン
午前9時:移行開始
|
|
午前11時:最初のトラブル 大阪支社のVLAN間通信制御ルールでミス。営業部から技術部への通信が完全遮断される。
午後1時:データ移行でエラー多発 大阪の顧客管理システム(VB6 + Access)のデータ移行で、文字エンコーディングエラーが多発。
|
|
午後3時:福岡支社で認証システム全滅 独立したActive Directoryの移行で設定ミス。全ユーザーがログインできない状態に。
午後5時:緊急ロールバック決定
「今日中に復旧させる!」という気持ちはあったものの、現実を受け入れることに。
|
|
3月16日:ステークホルダーからの総攻撃
緊急役員会議招集
経営陣:「なぜ移行に失敗したのか?」
私:「既存システムが想定以上に複雑で…」
営業部長:「大阪支社の顧客データが一部欠損した。どう責任取るの?」
技術部長:「福岡の独立システムの件、事前に把握してなかったの?」
総務部長:「移行費用が予算の2倍に膨らんでる。説明して」
追加で判明した問題:
- データ移行時の顧客情報230件が破損
- 福岡支社のメールシステムが12時間停止
- 大阪支社の給与計算システムが月末処理不可に
「完全に詰んだ…」
第四章:4月の絶望 - 本社移行の大惨事
4月1日:新年度開始と同時に本社移行強行
経営陣からの最後通牒:「新年度開始までに移行完了。これ以上延期は認めない」
本社(280名)の移行対象システム:
|
|
4月1日午前9時:移行開始
チーム体制:
- 私(プロジェクトリーダー)
- ネットワークエンジニア 2名
- システムエンジニア 3名
- 外部委託業者 5名
移行スケジュール:
- 09:00-12:00: システム停止・データバックアップ
- 12:00-15:00: GCPインスタンス作成・設定
- 15:00-18:00: データ移行・システム設定
- 18:00-20:00: 動作確認・調整
- 20:00: 新システム稼働開始
「今度こそ成功させる!」
4月1日午前11時:最初の致命的問題
SAPシステムの移行で想定外の事態:
|
|
判明した問題:
1. SAPライセンスの厳格な制限
SAPシステムは、サーバーのハードウェア固有情報(CPU ID、MAC アドレス等)でライセンス認証を行っていました。
物理サーバー:
- CPU ID: Intel-Xeon-E5-2680-v3-12C-24T
- MAC Address: 00:1B:21:A4:32:F8
- License Key: これらの情報から生成された固有キー
GCP Compute Engine:
- CPU ID: Google-Custom-CPU (仮想)
- MAC Address: 42:01:0A:80:00:XX (動的)
- License Key: 物理サーバーとは完全に異なる
「SAPライセンスの再取得が必要…でも手続きに2週間かかる…」
2. 会計システムの謎仕様
弥生会計サーバー版の隠された依存関係:
|
|
問題:
- IPアドレスが多数の箇所にハードコード
- 経理部のサブネット(192.168.30.0/24)からのみ接続許可
- ハードウェア認証も有効
4月1日午後2時:連鎖的システム障害
人事システムで発見された致命的欠陥:
|
|
発見された深刻な問題:
- Python 2.7: サポート終了済み、GCPのイメージに存在しない
- PostgreSQL 8.4: 古すぎてGCPのマネージドサービス対象外
- プリンター直結: ネットワークプリンターとの直接通信
- ハードコードまつり: 設定ファイルではなくソースコードに直書き
4月1日午後4時:全社システム停止
エラーの連鎖:
|
|
社内の状況:
- 営業部:「顧客対応できない!見積もりシステム使えない!」
- 経理部:「月末処理が今日までなのに、会計システム動かない!」
- 人事部:「給与計算システムが止まってる!今日給与振込日だよ!」
- 開発部:「ソースコード管理サーバーアクセスできない!」
4月1日午後8時:緊急事態宣言
CEO直々の緊急指示:
「明日の業務開始(9時)までに全システム復旧。できなければプロジェクト中止、担当者処分」
午後8時からの緊急対応:
|
|
徹夜の復旧作業:
- 午後9時〜午前3時: 物理システムの緊急復旧
- 午前3時〜午前6時: データ整合性チェック
- 午前6時〜午前8時: 動作確認
4月2日午前9時:辛うじて業務再開
復旧結果:
- 基幹システム: 95%復旧
- メールシステム: 100%復旧
- ファイルサーバー: 90%復旧(一部データロス)
しかし、残された問題:
- SAP ERPの一部データが破損(受注データ50件)
- 会計システムの3月締め処理が未完了
- 人事システムの勤怠データが一部消失
「なんとか最低限は動いているが…」
第五章:工場システム移行の断念と方針転換
4月15日:工場システム移行の中止決定
本社移行の大混乱を受け、最も危険度が高い工場システム移行は中止となりました。
千葉工場の製造ライン制御システム:
- Windows Server 2003(20年稼働中)
- VB6製の制御ソフトウェア(ソースコード紛失)
- 製造機械との専用通信プロトコル
- 停止 = 生産ライン完全停止 = 日産3000万円の損失
群馬工場の品質管理システム:
- Red Hat Enterprise Linux 4(17年稼働中)
- Oracle 9i(メーカーサポート終了済み)
- 計測機器との直接通信(RS-232C, Ethernet)
- 停止 = 品質検査不可 = 出荷停止
「これを移行するなんて自殺行為だ…」
4月20日:プロジェクトの抜本的見直し
新方針:段階的ハイブリッド化
完全移行を諦め、以下の方針に転換:
Phase 1: 新規システムのクラウド化(即座に開始)
- 新しく導入するシステムはGCPネイティブ
- 既存システムとの連携は最小限
Phase 2: 移行可能システムの個別移行(6ヶ月計画)
- リスクが低く、移行メリットが明確なシステム
- 十分な検証期間を確保
Phase 3: レガシーシステムの現状維持(当面継続)
- 工場システム等、リスクが高すぎるもの
- 段階的なモダナイゼーション検討
Phase 4: ハイブリッドインフラの最適化(1年計画)
- オンプレミスとクラウドの適切な連携
- セキュリティとパフォーマンスの両立
第六章:学習と改善 - 正しい移行戦略
5月〜10月:段階的改善の実施
失敗から学んだ教訓を活かし、正しい移行戦略を実践しました。
成功例1: 新規Webアプリケーションのクラウド化
6月:顧客ポータルサイト新規開発
|
|
結果:
- 開発期間: 3ヶ月(予定通り)
- 運用コスト: 従来の60%削減
- パフォーマンス: レスポンス時間50%改善
- 可用性: 99.95%達成
成功例2: 営業支援システムの段階的移行
7月〜9月:営業支援システム(SFA)移行
|
|
移行結果:
- ダウンタイム: 2時間(計画内)
- データロス: 0件
- ユーザー満足度: 向上(レスポンス時間改善)
成功例3: ファイルサーバーのクラウド移行
8月〜10月:ファイルサーバー統合
|
|
正しい移行戦略の教訓
1. 事前調査の重要性
失敗時の調査:
- 表面的なシステム構成のみ
- 依存関係の把握不足
- 利害関係者へのヒアリング不十分
改善後の調査:
|
|
2. 段階的移行の原則
失敗時のアプローチ:
- フォークリフト移行(一括移行)
- 大きなスコープで一気に実行
- バックアップ戦略不十分
改善後のアプローチ:
|
|
3. リスク管理フレームワーク
移行リスクマトリクス:
システム | 移行難易度 | 業務影響度 | 優先度 | 戦略 |
---|---|---|---|---|
新規システム | 低 | 中 | 高 | クラウドネイティブ |
Web アプリ | 低 | 高 | 高 | 段階的移行 |
ファイルサーバー | 中 | 中 | 中 | ハイブリッド |
基幹システム | 高 | 高 | 低 | 現状維持 |
工場システム | 極高 | 極高 | 除外 | モダナイゼーション検討 |
第七章:1年後の振り返りと成果
2026年1月:プロジェクト完了報告
最終的な移行結果(1年間):
移行完了システム
- 新規システム: 100% クラウドネイティブ
- Webアプリケーション: 85% 移行完了
- ファイル・ストレージ: 70% 移行完了
- 開発・テスト環境: 100% クラウド化
現状維持システム
- 基幹システム(SAP/会計): オンプレミス継続
- 工場制御システム: オンプレミス継続
- レガシー業務システム: 段階的モダナイゼーション中
ハイブリッド環境
- オンプレミス ⟷ GCP間: 安定したVPN接続
- 統合監視システム: Cloud Operations Suite
- 統合ID管理: Google Cloud Identity
数値で見る成果
コスト効果:
|
|
パフォーマンス改善:
|
|
組織的改善:
|
|
最も価値のあった学び
1. 完璧な移行より、実用的なハイブリッド
従来の思考: 「全てをクラウドに移行しなければ意味がない」
学んだ真実: 「適切なシステムを適切な場所に配置することが重要」
2. 技術的課題より組織的課題の方が困難
技術的問題:
- IP アドレス変更
- システム間連携
- データ移行
組織的問題(より困難):
- 部門間の利害調整
- 変化への抵抗
- 責任範囲の曖昧さ
3. 小さな成功の積み重ねが信頼を作る
初期の大失敗で失った信頼を、小さな成功の積み重ねで回復。
信頼回復のプロセス:
|
|
まとめ:¥3,000万円と6ヶ月の地獄で学んだこと
プロジェクトの総コスト
直接コスト:
- 移行作業費用: ¥12M
- システム復旧費用: ¥8M
- 外部コンサル費用: ¥6M
- GCP利用料(失敗分): ¥2M
間接コスト:
- 業務停止による機会損失: ¥15M
- データ復旧作業: ¥3M
- 追加人件費(残業・休日出勤): ¥4M
総コスト: ¥50M うち無駄になった費用: ¥30M
最も重要な教訓
1. 「簡単でしょ」は技術者の最大の罠
20年蓄積されたレガシーシステムの移行は、決して簡単ではない。
- 見えない依存関係
- 失われた知識(作成者の退職)
- ハードコードされた設定
- 業務フローとの密結合
2. 段階的アプローチは面倒だが、結果的に最速
一括移行の誘惑:
- 「一気にやった方が効率的」
- 「切り戻しのコストを考えると…」
- 「プロジェクト期間を短縮したい」
現実: 一括移行の失敗リスクを考慮すると、段階的移行が最も確実で最終的に最速。
3. 技術的解決策より、組織的解決策が重要
成功の要因:
- 技術的な正確性: 30%
- 組織的な調整力: 70%
利害関係者との調整、期待値管理、変化管理が移行成功の鍵。
他の組織への提言
クラウド移行前のチェックリスト
|
|
推奨移行戦略
Green Field(新規開発)優先アプローチ:
|
|
最後に:失敗から学ぶ価値
この6ヶ月の地獄は確かに辛い経験でしたが、結果的に私たちのIT組織を大きく成長させました。
得られたもの:
- レガシーシステムへの深い理解
- リスク管理の重要性の認識
- 段階的アプローチのスキル
- ステークホルダーマネジメント力
- チーム結束力の向上
最も大切な学び: 失敗を恐れてチャレンジしないより、失敗から学んで改善し続けることの価値。
同じような移行プロジェクトに取り組む皆さんが、私たちと同じ失敗を繰り返さないことを祈っています。
そして、もし失敗しても諦めずに改善し続けることで、必ず成功に辿り着けることを信じています。
関連記事:
注意: この記事は実際の移行プロジェクト経験に基づいていますが、企業名やシステム詳細は匿名化・一般化しています。