以前、下記のようなご相談をいただきました。
現在利用しているIDC(データセンター)事業者から、データセンター設備の老朽化やサーバーホスティング事業の再編のため、急遽、サービス終了のアナウンスが届いた。
それに伴って、現在のサーバー環境のデータを、2週間程度で移行作業しなければならないので、新しいサーバー環境への移行作業のサポートをしてほしい。
これは「もしデータ移行の期限を過ぎると、その現在のサーバー環境は強制的に停止・削除されるため、その企業のWebサイトやリソースには一切アクセスできなくなる」ということを意味します。
目次
このような緊急の状況を踏まえ、弊社ではサーバー移行作業をおこなうために、以下のような計画と準備をおこないました。
まず、サーバー移行の作業をおこなう前に、通常はIDC事業者が提供するWebコンソールにアクセスし、サーバー構成(OSバージョン、IPアドレス、DNS、CPU、メモリ、ディスク、ネットワーク帯域幅、ノードリージョンなど)を把握します。
同時に、クラウドサーバー、SQL/RDS、SSL、CDN、ドメインなどのサービスリソースの有無も確認します。まず旧サーバーのインベントリを収集し、新しいサーバーの調達と移行の計画をおこないます。
しかし、旧サーバー環境の状態は特殊で、旧サーバーへのアクセスおよびIDC事業者のWebコンソールも利用不可でした。
そのため、弊社のサーバーチームは直接サーバーへログインできないため、サーバーの基本構成を把握できませんでした。そこで、顧客(及び先方の開発エンジニア)との綿密なヒアリングの結果、その顧客のシステムは PHP で開発されており、WeChatパブリックアカウントおよびオンラインでの決済機能を備えた、特定業界向けのUGCサイト(User Generated Content)であることが判明しました。
その後の更なる調査により、おおよそのサーバーおよびWebシステムの基本構成を把握することができました。
ハードウェア環境 | ソフトウェア環境 | サービス実行環境 |
CPU:4core | システムバージョン:CentOS 7.9.2009 x86_64 | Webサイトプロジェクト:1 件のWebサイトプロジェクトのファイル |
メモリ: 8GB | OS:Linux | データベース:1 つのデータベース |
ネットワーク帯域幅:10M(単一) | プログラムの構成要素:Nginx、MySQL、PHP、Redis、FTP | PHPバージョン:5.6、7.0、8.0 |
rootディスク:40G | 開発ポート:22、21、3306、443、6379 | phpMyAdmin 5.1 |
ハードディスク/ストレージ:200G | ファイアウォール:Nginx 無料ファイアウォール | MySQL 5.7.44 |
– | サーバーパネル:wdcp、pagoda panel、中国の AMH、DirectAdmin、VestaCP、Plesk などのサーバー可視化パネル | Webサイトの構成:Nginx 擬似静的(URL Rewrite)ルール 1つ
セキュリティ証明書:SSL証明書1つ |
弊社のサーバーチームで Xshell を使用して、SSH 経由で旧サーバーにログインを試みましたが、接続できず、さらにローカルの cmd コマンド(tcp/ip)からもアクセスできない状況でした。
調査の結果、IDCのサーバールームで使用されている、現在のブロードバンドプロバイダーがすでに撤退しており、China Mobile の回線のみが残っていることが判明しました。
しかし、弊社は China Telecom と China Unicom 回線を使用しており、China Mobile 回線を取得できませんでした。(5G 携帯回線を使用する方法もありますが、データ量が多く伝送時間が長いため、データ整合性を保証できません)それに加えて、IDC の帯域幅制限により、サーバーデータの安全な転送やコマンドによる、イメージ・アプリケーションコンポーネントのインストールが困難でした。
最終的に、弊社のサーバーチームは、China Mobile 回線を利用した一時的な Linux トランジットサーバーを用意し、まず Xshell でセカンダリサーバーに接続後、ssh root@127.0.0.1 コマンドを使用して旧サーバーにログインする方法で接続を確立しました。
この手順により、最も安全に旧サーバーのデータアクセスと操作が可能となりました。
# ssh conntect old linux servcer
ssh root@192.168.1.2
# write old server 192.168.1.2 pwd
トランジットサーバーを経由して旧サーバーに接続し、サーバーデータ、プログラムソースコード、データベースを圧縮しパッケージ化します。
まず、旧サーバーのデータディスクおよびシステムディスクのディレクトリ構造・容量を確認し、移行作業に必要なデータ範囲と容量を把握します。
# ハードドライブを表示
[root@MyCloudServer ~]# df
# カタログを見る
[root@MyCloudServer ~]# ls /path/to/directory
# CPUをチェックする
[root@MyCloudServer ~]# ls lscpu
# すべてのデータベースをバックアップする
[root@MyCloudServer ~]# mysqldump -u[用户名] -p --all-databases | gzip > /path/to/backup_file.sql.gz
# 単一のデータベースのバックアップ
[root@MyCloudServer ~]# mysqldump -u[用户名] -p[密码] [数据库名] > /path/to/backup_file.sql
もう一つの課題として、その顧客の旧サーバーでは、Webサイトデータのバックアップ、サーバー監視、セキュリティ、スナップショット管理など、定期的なサーバーのメンテナンスや運用保守を手掛ける、専任の担当が配置されていなかったことです。
またその顧客も元々、Alibaba Cloud、Tencent Cloud、AWS などのクラウドプラットフォームではなく、それよりも低価格なローカル企業のIDC事業者のホスティングサーバーを選択していたという背景があり、サービスリリース後のWebサイトのセキュリティや運用に関するコストが考慮されてませんでした。
その結果、サーバーのバックアップや監視サービスが不足し、データ移行に必要なバックアップ作業にも時間を要する状況でした。サーバー上の主要なWebサイトプログラム容量は160GBで、利用可能なバックアップ容量は40GBしかなく、データ圧縮と転送に大きな課題がありました。
そこで、弊社のサーバーチームは、バッチ処理方式を採用し、優先度の高いデータから順に処理しました。まず、実行可能なPHPソースコードディレクトリと、MySQLデータベースをパッケージ化し、別の検証用サーバーに転送。その後、画像などの大容量ファイルディレクトリを一括パッケージ化して転送し、Webサイトおよびサーバーログをまとめて移行しました。
最後に、Nginx、MySQL、PHP の構成を含む、サーバーサービス全体をパッケージ化し、完全に転送しました。
# 圧縮パッケージを転送する
[root@MyCloudServer ~]# scp /local/path/backup.tar.gz username@remote_host:/remote/path/
# 転送ディレクトリ
[root@MyCloudServer ~]# scp -r /local/directory/ user@remote_host:/remote/path/
小さな問題として、IDC事業者は1本のモバイル回線しかなく、大量の顧客データをダウンロードしてバックアップおよびサーバー移行を実行する際、データの転送速度が低下し、切断が発生する場合がありました。そのため、弊社のサーバーチームは顧客のWebサイトプログラム部分を細かく調査し、転送の優先度や容量の大きさをリスト化し、24時間体制で転送を監視しつつ、複数回バックアップしてデータを照合・確認しました。
顧客はまだWebサイトの開設を正式に決定していないため、まずはWebサイトのプログラムとデータベースをダウンロードして保管したいとのことでした。また、データの紛失を防ぐ必要があるため、弊社のサーバーサーバーチームは一時的に中継サーバーを使用して、顧客のWebサイト用のテスト環境を構築し、データの完全性を検証しました。特にデータベース転送では、回線の切断によるデータの欠落や文字化けの可能性に注意しました。
24時間体制で3日間に渡り作業をおこない、旧サーバーから中継サーバーへの完全移行を実現するとともに、テスト環境で、データの完全性とWebサイトの正常稼働を確認できました。
顧客のWebサイトデータには画像ファイルが非常に多く含まれていたため、顧客は画像の重複削除や圧縮、未使用画像の削除によるディスク容量の節約も希望しました。この作業には一定の時間がかかるため、顧客と協議の上、まず必要な構成のサーバーを購入し、後日、画像の重複削除と圧縮を行った上で、新サーバーに移行してウェブサイトを開設することになりました。
顧客は、今回のサーバー移行プロジェクトに対して、弊社サーバーチームの対応に高評価をいただき、Webサイトの本番公開後も、サーバー運用および監視サービスを導入いただきました。
新しいサーバーを購入・契約する際は、信頼性の高い事業者のプラットフォームや、グローバルなクラウドプラットフォームを選択してください。
オンライン決済取引やデータセキュリティ、整合性が求められるプロジェクトでは、中国や世界各国で利用される Alibaba Cloud、日本や欧米で広く使われる AWS などの大手プラットフォームを検討すると良いでしょう。これらはグローバルノード、安定したアクセス、包括的な冗長化、データの安全性と整合性が保証されています。
弊社では、サーバー購入の際、ノード構成、CDN、帯域幅、バックアップ、セキュリティ、運用保守なども考慮した、24時間365日体制でサーバー環境をサポートすることが可能です。
▼ 企業WeChat公式アカウント▼
▼ WeChatで担当者に直接連絡 ▼
WeChatスキャンコード