AS400基幹システムのGoogle Cloudマイグレーション:レガシーDB2 for i からPostgreSQLへの一貫支援

長年AS400(IBM i)で稼働してきたレガシー基幹システムを、Google Cloud上のCloud SQL for PostgreSQLへ全面マイグレーション。脱AS400・リプラットフォームによるシステム刷新を一貫して支援。

  • GoolgeCloud
  • AS400
  • マイグレーション

大手NPO法人

ご依頼の背景

長年AS400(IBM i)で稼働してきたレガシー基幹システムを、Google Cloud上のCloud SQL for PostgreSQLへ全面マイグレーション。脱AS400・リプラットフォームによるシステム刷新を目指し、DB移行・データ移行・バッチ移行・クラウド基盤構築・運用設計まで、事前調査フェーズから本番運用まで一貫して支援しました。

IBM i(AS400)は製造業・流通業を中心に、長年にわたり基幹システムの中核として活用されてきたプラットフォームです。しかし保守人材の高齢化・運用の属人化・DR対応の見直しといった課題から、脱AS400・脱IBM iを目指したクラウドマイグレーションを検討する企業が増えています。レガシーシステムからの脱却とモダナイゼーションによるDX(デジタルトランスフォーメーション)推進の一環として、リプラットフォームに踏み出す選択が広がっています。
本案件では、DB2 for iで管理された大規模なDBオブジェクト(テーブル1,262件・プロシージャ358件・ファンクション35件・トリガー5件ほか)を対象に、PostgreSQLへの変換方式設計・データ移行・バッチ基盤の再構成・Google Cloudインフラ設計・運用手順整備まで、全フェーズを一貫して支援しました。

大手NPO法人

長年IBM i(AS400)をレガシー基幹システムとして運用してきた企業。業務処理の中核をDB2 for i上のストアドプロシージャ・トリガー・バッチ処理で担っており、周辺アプリケーションとの密結合も進んでいました。保守人材の確保・災害対策の強化・クラウドを活用した運用近代化を目的として、脱IBM iによるシステム刷新とGoogle Cloudへのリプラットフォームを決定されました。

抱えていた課題

  1. 01

    レガシーDB2 for i と PostgreSQL の仕様差異が大きく、マイグレーション方針が立てられない

    IBM i上のDB2 for iには、オープンDB標準とは異なる固有仕様が数多く存在します。オブジェクト名の大文字小文字の扱い、ストアドプロシージャの構文差異、独立コミット(autonomous)処理の制約、シーケンス値取得の差異、ROW_NUMBER等のSQL挙動差異、エラーメッセージの文字化けなど、PostgreSQLとの仕様ギャップは多岐にわたります。
    加えて、周辺アプリケーションが発行するSQLの特性まで踏まえた命名ルールの設計が必要であり、「DDLを変換すれば完了」という単純なマイグレーションは成立しません。本開発に進む前に、こうした仕様差異をどう吸収するかの方式設計が定まっておらず、脱AS400に踏み切れない状況にありました。

  2. 02

    脱AS400を阻む三重の壁:データマイグレーション・バッチ移行・クラウド運用まで不確実な論点が山積

    DB仕様の差異以外にも、レガシーシステムからのマイグレーション全体を通じて不確実な論点が複数重なっていました。データ移行においては、IBM i 特有の文字コードや桁数の扱い、NULL・空文字の不統一、BLOBを含むテーブルの移送方法など、標準的なエクスポート・インポートでは吸収しきれないデータ品質上のリスクが潜んでおり、マイグレーション本番での事故が懸念されていました。バッチ・RPG処理についても、夜間バッチや画面起点のファイル取込がAS400固有の実行環境と密結合しており、脱AS400後にどのような実行基盤へ再設計するかの方針が定まっていませんでした。さらに、マイグレーション後の運用体制も課題でした。クラウド環境での保守接続・バックアップ・リカバリ・障害時のネットワーク切替・DR対応まで、移行プロジェクトと並行して運用設計を一から整備する必要があり、システム刷新後に「運用できない」状態に陥るリスクを抱えていました。

導入ソリューション

🗺 システム構成図
🏢 オンプレミス環境
💻 ユーザー端末
業務アクセス
🔄 データ連携サーバ
ASTERIA
🛡 Router / Firewall
🌐 インターネット
🔑 IAP
保守アクセス
▼ Partner Interconnect(通常時)
▼ Cloud VPN(障害時切替)
☁️ Google Cloud Platform
📍 東京リージョン(本番・開発・検証)
🟠 本番環境
⚖️ 外部ロードバランサー(Cloud Load Balancing)
Zone A
🖥 Web / AP サーバ(GCE)
Zone B
🖥 Web / AP サーバ(GCE)
↓ 内部ロードバランサー
Zone A(プライマリ)
🗄 Cloud SQL for PostgreSQL
Zone B(スタンバイ HA)
🗄 Cloud SQL for PostgreSQL
⚙️ Cloud Run ⏱ Cloud Run Jobs(バッチ) 📦 Cloud Storage 🌐 Cloud NAT
🟢 開発・検証環境
🖥 Web / AP サーバ(GCE) 🗄 Cloud SQL for PostgreSQL ⚙️ Cloud Run / Cloud Run Jobs 📦 Cloud Storage
📍 大阪リージョン(DR / 災害対策)
東京リージョン障害発生時の切替先。Cloud VPN 経由で接続。常時フル稼働でなく 1〜2 日以内に復旧可能な実務的設計。
🔒 Cloud VPN(接続) 🖥 Web / AP サーバ(GCE) 🗄 Cloud SQL(リードレプリカ) ⚖️ 内部ロードバランサー 🌐 Cloud NAT
🔧 共通サービス
📊 Cloud Monitoring 📝 Cloud Logging 🌐 Cloud DNS 🔑 IAP(保守アクセス制御) 🛡 Cloud SQL Auth Proxy 🏗 Terraform
本番環境
開発・検証環境
DR環境(大阪)
オンプレミス

図:本案件における Google Cloud 移行後のシステム構成(一般化表示)

🛠 提供したソリューション
01 🔍

事前調査フェーズで不確実性を構造化し、本開発の方式を先に確定

「何を決めないと本開発に進めないか」を基準に、移行の難所を 8 つの観点に分解。移行方式と残課題を文書化した上で本開発へ接続しました。

🗄 DB 移行 仕様差異・変換方式・テスト方針
📊 データ移行 文字型・例外データ・BLOB 対応
⚙️ バッチ処理 実測による性能懸念の先出し
🖥 周辺アプリ 影響調査・互換性確認
☁️ 稼働環境 GCP 構成・性能・コスト検証
🌐 通信設計 Interconnect / VPN 構成
🛡 災害対策 DR 構成・切替方針
🔧 保守環境 保守接続手順・運用設計
02 🗄

DB 移行:変換ルールの方式化と多層テストによる品質担保

テーブル 1,262 件・プロシージャ 358 件・ファンクション 35 件・トリガー 5 件を対象に、DB2 for i 固有の仕様差異を 3 つの軸で吸収しました。

変換ルールの方式化
命名規則(小文字統一)・DDL 変換方針(CREATE OR REPLACE 統一)・PLpgSQL 変換パターンを方式書として整理。担当者が変わっても再現性高く変換できる体制を構築。
ラッパー実装
周辺アプリとの互換維持のため、変換後プロシージャにラッパープロシージャを作成。既存の呼び出しインタフェースを変更せずに移行を完了できる設計を採用。
多層テスト戦略
plpgsql_check による静的チェック・新旧比較テスト・Function / Procedure / Trigger 単体テスト・DB 全体設定テストの 4 層で品質を多面的に検証。
03 📊

データ移行:例外データを吸収する移行方式の設計

事前に文字型カラム調査・イレギュラーデータ調査を実施し、データ特性に応じた 2 系統の移行経路を設計。移行本番での事故リスクを先に可視化・対処しました。

標準テーブル
CSV 出力
Cloud SQL import
BLOB テーブル
ASTERIA
Cloud SQL import
文字コード UTF-8 統一 日時フォーマット定義 NULL / 空文字の規則化 桁超過データの吸収 混在カラムへの対処
04 ⚙️

バッチ・RPG 移行:Cloud Run Jobs への実行基盤再設計

単純移植ではなく、クラウド運用を前提とした実行基盤への再設計を行いました。AS400 固有の依存を排除し、ログ・障害検知まで Google Cloud に統合しました。

移行前(AS400)
AS400 固有のジョブスケジューラで管理
RPG によるファイル取込・バッチ処理
オンプレ依存の実行環境
ログ・障害検知が属人的
移行後(Google Cloud)
Cloud Run Jobs で実行基盤を標準化
GCS 配置 → Cloud Run 起動型バッチへ再構成
Java(Corretto 8)+ Docker でコンテナ化
Cloud Monitoring でログ・障害を一元管理
05 ☁️

Google Cloud 基盤設計:本番・DR・運用まで一貫して構築

「動く」から「運用できる」まで、開発・検証・本番・DR の 4 面構成を一気通貫で設計・構築しました。

開発環境 東京リージョン GCE / Cloud SQL Cloud Run Jobs
検証環境 東京リージョン GCE / Cloud SQL Cloud Run Jobs
本番環境 東京リージョン GCE × 2(Zone A/B) Cloud SQL HA 外部 LB / 内部 LB
DR 環境 大阪リージョン GCE / Cloud SQL 1〜2 日以内に復旧
🔗 通常時:Partner Interconnect
🔀 障害時:Cloud VPN へ切替
🗄 Cloud SQL:HA + PITR + Auth Proxy

整備した運用手順書(計 8 種)

DB リカバリ手順
GCE リカバリ手順
ネットワーク切替手順
環境切替手順(本番↔DR)
アラート確認手順
IAP 接続手順
パッチ適用手順
証明書更新手順
⚒ 使用技術・サービス
主要テクノロジースタック
Google Cloud — コンピューティング
Compute Engine Cloud Run Cloud Run Jobs
Google Cloud — データベース
Cloud SQL for PostgreSQL HA オプション PITR
Google Cloud — ネットワーク
Cloud Load Balancing Partner Interconnect Cloud VPN Cloud DNS Cloud NAT
Google Cloud — セキュリティ・運用
IAP(Identity-Aware Proxy) Cloud SQL Auth Proxy Cloud Monitoring Cloud Logging
Google Cloud — ストレージ
Cloud Storage(GCS)
インフラ管理
Terraform
データ移行
ASTERIA(BLOB 移行) Cloud SQL import(CSV)
DB 品質管理・ランタイム
plpgsql_check Java(Amazon Corretto 8) Docker

導入効果

事前調査から運用設計まで一貫した支援により、大規模レガシー基幹システムの高品質なマイグレーションを実現しました。

IBM i上の大規模DBオブジェクト群を対象に、変換・テスト・データ移行・バッチ移行・インフラ構築・運用設計まで全工程を完遂。単にリプラットフォームして「クラウドに載せる」だけでなく、移行後の定常運用・障害対応・DR復旧まで見据えたシステム刷新・モダナイゼーションを実現しました。

  1. 01

    大規模DBオブジェクトのマイグレーションを高品質・属人化なく完遂

    テーブル1,262件・プロシージャ358件・ファンクション35件・トリガー5件を含む大規模レガシーDBオブジェクトを対象に、変換ルールの方式化・進捗管理表・多層テスト戦略を組み合わせてマイグレーションを完遂しました。自動変換だけに頼らず、ラッパープロシージャの実装・変換スクリプトの個別調整・エラー再確認まで対応。変換結果の品質を担当者の属人的なスキルに依存せず、方式として再現可能な形で進めました。

  2. 02

    バッチ性能リスクをマイグレーション本番前に特定・切り分け

    バッチ処理時間を事前調査段階で実測した結果、PostgreSQLへのマイグレーション後に処理時間が増大するケースを早期に特定。問題なく高速化できる処理と追加対策が必要な処理を明確に切り分け、残課題として次工程に引き継ぎました。「マイグレーションできそうか」を楽観視せず、実測に基づく判断で本番後のトラブルを事前に潰すアプローチを採用しました。

  3. 03

    システム刷新・マイグレーション完了と同時に「運用できる」状態まで構築

    マイグレーションプロジェクト完了時点で、8種のシステム管理マニュアル(DBリカバリ・GCEリカバリ・ネットワーク切替・環境切替・アラート確認・IAP接続・パッチ適用・証明書更新)を整備。東京リージョン(本番)/ 大阪リージョン(DR)の2リージョン構成・接続冗長化・PITR・切替手順まで含め、事業継続性を確保した安定運用基盤をシステム刷新と同時に整備。モダナイゼーション・DX推進の基盤として、移行後すぐに本番稼働できる体制を実現しました。

担当者の声

エヌデーデー担当者からの声

IBM i / AS400 のマイグレーションで最も重要なのは、「DB変換が終わったら完了」と捉えないことです。DB・データ・バッチ・基盤・運用は密接につながっており、どれか一つが抜けると本番後に必ず問題が発生します。

本案件では事前調査を独立フェーズに設け、レガシーシステム特有の難所を先に構造化してから本開発に進みました。特にDB2 for iのような固有仕様が多い環境では、「自動変換で済まない論点が必ず出る」という前提でテスト戦略と変換ルールを整備することが、品質担保の鍵になります。

脱AS400・脱IBM iによるシステム刷新は、「リプラットフォームして載せる」ことがゴールではありません。モダナイゼーション・DX推進を真に実現するには、運用手順書の整備・DR設計・保守接続設計まで含めて初めてマイグレーションは完了したと言える——それが当社の考え方です。