アイキャッチ

システム移行は難易度が高い? 適切な進め方と失敗を防ぐコツを解説

エンジニア辞典

    システム移行とは、既存システムから新システムへ移行する作業のこと。エンジニアであればご存じの方が多いのではないでしょうか。

    単純な作業だと思われがちですが、実は新規システム開発よりも難易度が高いとされています。移行作業においてトラブルが発生した場合、データ損失や業務停止など多大な影響を及ぼす可能性があるため、高いスキルと細心の注意が必要なのです。

    老朽化などにより必ず発生する避けられないイベントの一つであるシステム移行を成功させるには、進め方を深く理解し、重要なポイントを押さえなければなりません。

    この記事では、システム移行の進め方や難しいとされる理由、成功させるためのポイントなどを解説します。

    システム移行とは

    システム移行

    システム移行とは、既存のシステムやデータの一部またはすべてを別の新たな環境へ移行する作業のこと。シーンでシステム移行が必要とされるシーンと、システム移行方式の種類については次の通りです。

    システム移行が必要とされるシーン

    システム移行が必要とされるシーンとして、以下のようなケースが想定されます。

    ・ハードウエアのサポート終了

    ハードウエアにはほとんどの場合、メーカーによるサポート期限が設けられています。

    サポート期限が終了してもそのハードウエアの使用を続けることは可能ですが、故障などのトラブルが生じた場合にはメーカーからのサポートが受けられません。

    リスクが高い状態になってしまうため、サポート期限が終了するタイミングに合わせて新たなハードウエアにシステムを移行するケースが大半です。

    ・OSのサポート終了

    ハードウウエアと同様にOSにもサポート期限があります。サポートの終了したOSを使用し続けていると、トラブル発生時のサポートが受けられないことはもちろん、セキュリティー更新プログラムなども配布されなくなります。

    これによりセキュリティーホールが発生し、外部から悪意のある攻撃を受ける可能性が非常に高くなるため、OSのサポート終了時にもシステム移行が必要です。

    ・システムの老朽化

    現行のシステムを長く使用していると、使用されている技術やハードウエアの老朽化が必ず発生します。

    パフォーマンスが悪くなる、コストが増加する、新しい技術を使用したほかのシステムと連携できなくなる……といったデメリットが目立ってきた際には新しいシステムへ移行するタイミングです。

    ・システム統合

    企業合併などにより経営環境が変化し、それぞれの企業で使用していたシステムを一つに統合する必要が出てくる場合があります。

    その際にもシステム移行を行い、複数のシステムを一つの環境へ統合します。

    ・オンプレミスからクラウドへの移行

    近年あらゆる分野でクラウドの活用が進み、システムをオンプレミス環境からクラウド環境へ移行するケースが増加。運用負荷やコストの軽減、拡張性や利便性の高さなどのメリットがあるため、クラウドへのシステム移行を積極的に進めている企業が増えています。

    システム移行の方式

    システム移行の方式には複数の種類があり、それぞれに向き・不向きがあるため要件に応じて選択します。ここでは、代表的な三つの方式について解説します。

    ・一括移行

    特定の時点で現行システムの全機能を休止し、一括で新システムへ切り替える方式です。

    新旧システムの連携などが必要なく、移行に必要なコストや労力を最小限に抑えられます。移行後に新システムでトラブルが生じた場合は影響が大きいですが、旧システムはそのまま残すため切り戻せばすぐに業務を再開できます。

    ただしシステムを全停止する期間が必要で、データの容量によっては移行作業に時間がかかり、停止期間が長時間になる場合もあります。そのため休日や週末など利用者が少ない期間に作業を実施することが多いです。

    長期間システムを停止することが可能で、コストや労力をなるべく抑えたい場合に向いています。

    ・段階移行

    現行システムから段階的に新システムへ切り替える方式です。システムを部分ごとに休止して順番に切り替えていきます。そのため、移行期間中は「この機能は現行システムで稼働」「こっちの機能は新システムで稼働」といった運用が必要となります。

    一括移行方式よりも切り替えの単位が小さいため(短いシステム停止を繰り返す)ため、長時間のシステム停止が不要。データ容量が多い場合でも、トラブルが発生するリスクを減らせることがメリットです。

    一方、新旧システムの連携が必須であり一括移行と比べるとコストや手間、トータルの時間は多くかかります。

    長期間のシステム停止が難しい場合や、大規模なシステムでの移行リスクを軽減したい場合に向いています。

    ・並行運用

    現行システムと新システムを同時並行で稼働させて結果を比較検証し、新システムに問題がないことが確認できた時点で現行システムを停止する方式です。

    新システムでトラブルが生じても、現行システムは稼働し続けるため業務への影響は最小限に抑えられます。全ての移行方式の中でもっともリスクの少ない方式と言えるでしょう。

    一方、両システムへのデータの二重入力の手間や、同期させるために必要となるソフトウエアを導入するコストが発生します。結果を比較検証することで確実性は上がりますが、そのチェック作業にも時間がかかるため業務負荷となるケースも。

    システムを短時間でも停止できない場合や、リソースに余裕がありリスクを最小限に抑えたい場合に向いています。

    システム移行の基本的な進め方

    システム移行

    ここからは、システム移行の基本的な進め方について解説します。

    1.現行システム・データの調査

    まずは現行システムの仕様について確認します。OSやデータ形式、運用状況などを調査し、移行するデータ量や新システムとの互換性などを把握します。その後はデータを精査し、不要なものは削除して整理するデータクレンジングを行います。

    2.移行計画書の作成

    移行対象範囲を明確化し、具体的な計画を立てます。移行において重要となる以下のような項目を検討し、移行計画書を作成します。

    ・移行方針
    ・スケジュール
    ・移行対象
    ・移行方式
    ・使用する移行ツール
    ・移行による業務への影響、対処法
    ・移行体制
    ・移行テストの方法

    3.移行プログラムの作成

    現行システムから新システムへデータを移行するためのプログラムを作成します。移行先のデータ項目やテーブルと照合できるように注意しなければなりません。

    4.移行リハーサル

    移行計画書に基づいて移行手順の確認を行う作業が移行リハーサルです。本番と同様の手順で全体を通して実際に作業を行います。使用する予定の移行プログラムやツールを実行し、正確性や処理時間を検証します。

    何らかの課題が発見された場合は解決策の検討や手順の変更を行い再度リハーサルを実施し、課題を全て解消できるまで繰り返します。

    5.移行作業の実施

    リハーサルによって問題がないと判断されたら、本番システムで移行作業を実施します。システムの利用者には移行スケジュールやシステム停止時間、業務影響などを事前にアナウンスしておきます。

    6.新システムのテスト

    移行作業が完了したら新システムに問題がないかテストします。一般的な利用状況を広く想定し、全ての項目をチェックする作業です。万が一バグや不具合が確認されたら、迅速に取り除けるよう調査・対応を行います。

    システム移行が難しいとされる理由

    システム移行

    システム移行は一般的に難易度が高く、強いプレッシャーを伴う作業と考えられています。その理由としては以下のようなものが挙げられます。

    作業の正確性が求められる

    正確性はどの作業にも求められますが、移行作業においては「正確さや違いが誰の目にも明らかになる」という点でよりシビアと言えます。

    例えば移行元と移行先のデータはぴったり一致しなければならず、もし一部の移行漏れや同期の不具合により不一致が生じると、業務へ多大な影響を及ぼす可能性があります。移行作業者に責任が問われることも十分に考えられるため注意が必要です。

    緻密な計画が不可欠

    システム移行は新規開発よりも容易にとらえられがちですが、一つのプロジェクトとして考えるべき作業です。着手する際には緻密な計画が必要不可欠と言えます。

    本番環境での作業のためしっかり計画を立てあらゆるケースを想定して準備しておかないと、不測の事態が起きた際に業務がストップしてしまいます。人的ミスによる影響も大きいため、注意深く作業できるよう余裕のあるスケジューリングも大切です。

    新旧システム両方を深く理解する必要がある

    新旧システムでデータ構造が大きく変化することもよくあります。そのまま移行することができない場合は、新システムの項目を旧システムのどの項目からマッピングするか一つずつ定義しなければなりません。

    このような作業を行うにはそれぞれのシステムについて深く理解し、項目の意味や役割を熟知している必要があります。

    限られた期間内に完了させなければならない

    システム移行作業は目標時間内に完了させることを強く求められます。特にシステムの停止時間が発生する作業の場合、完遂できないと予定外の業務ストップや機会損失が発生してしまうことも。本番作業は一発勝負のため、想定外の問題が発生する可能性もあります。

    システム移行を成功させるためのポイント

    システム移行

    システム移行は何らかのトラブルによって失敗してしまった場合、ビジネスへの影響が大きい重要な作業です。ここでは、システム移行を成功させるために注意すべきポイントについて解説します。

    移行対象を正確に洗い出す

    移行漏れを防ぐために、移行元システム・データの調査や移行計画書を作成する段階で移行すべき対象を正確に洗い出します。必要事項が漏れていた場合、新システムでのデータ不一致により大きな影響を及ぼす可能性があるからです。

    また本番移行前に漏れが判明した場合でも、決定事項を再検討しなければならず大きな手戻りが発生します。全体のスケジュールが遅延してしまうため、初期の段階で移行対象の精査は入念に行わなければなりません。

    システム停止時間を最小限にする

    移行に伴うシステムの停止時間は少なければ少ないほど良いとされています。特にBtoCのWebサービスなどでは「システム停止時間=営業ができない時間」となるため、機会損失や売り上げに直結するからです。移行コストと売り上げへの影響を比較して、最適な移行方式や使用するツールを検討すると良いでしょう。

    また移行プログラムの速度改善ができないか見直したり、移行対象のデータをできる限り減らしたりすることも移行時間を短くするために効果的です。

    リハーサルは本番に近い環境で行う

    リハーサルでは本番での作業時間や正確性を厳密に見積もらなければなりません。そのためできる限り本番に近い環境で行う必要があります。

    例えばサーバーのスペックやデータ量を本番と同じ状態で検証を行うと良いでしょう。性能やデータ量の違いにより本番で想定外に時間がかかり予定した期間内に作業が終わらなかった、などのトラブルを防ぎます。

    コンティンジェンシープランを立てる

    コンティンジェンシープランとは、緊急事態に備えてあらかじめ定めた対応策です。

    例えば移行作業中に緊急事態が発生した場合にはシステムを移行前の状態に切り戻すかどうか、その手順などをあらかじめ計画しておきます。コンティンジェンシープランを立てておくことで緊急事態発生時にも迅速に落ち着いて対応でき、影響を最小限にできるメリットがあります。

    ただし、コンティンジェンシープランを実行した際の旧システムの動作などもテストしなければならないため、作業量が増えることは認識しておきましょう。

    要件に適した方法で安全なシステム移行を実施しよう

    システム移行

    システム移行はシステムを活用する企業では必ず発生するイベントにも関わらず、重要性があまり認識されておらず評価されにくい作業です。しかしシステム移行に失敗してしまうと企業にとって大きな損失を招きかねません。膨大な時間や予算、人的リソースも必要となるため、緻密な計画を立てて慎重に実行すべきプロジェクトです。

    システム移行を実施する担当者にとってはプレッシャーが大きいですが、各移行方式や手順、ツールなどをきちんと理解して活用し、リハーサルを入念に行えば安全に実施することが可能です。難易度が高いシステム移行ですが、成功に導くことができれば貴重なスキルが身につくでしょう。ぜひシステム移行を行う際の参考にしてください。

    文/江副杏菜

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集





    サイトマップ