このトピックでは、Web アプリケーションを Elastic Compute Service (ECS) インスタンスから Simple Application Server に移行する方法について説明します。
前提条件
-
ソース ECS インスタンスと同じオペレーティングシステムバージョンの Simple Application Server があること。詳細については、「Simple Application Server の作成」をご参照ください。
説明-
Simple Application Server を作成済みで、そのオペレーティングシステムが ECS インスタンスのものと異なる場合は、システムをリセットできます。詳細については、「システムのリセット」をご参照ください。
-
Simple Application Server で選択できるパブリックイメージは、ECS インスタンスよりも少なくなっています。移行中に、類似のオペレーティングシステムバージョンのイメージを選択できます。たとえば、ECS インスタンスが CentOS 7.X パブリックイメージを使用している場合、Simple Application Server には CentOS 7.3 または CentOS 7.6 イメージを使用できます。
-
-
Simple Application Server のパスワードが設定されていること。詳細については、「インスタンスのパスワードの設定またはリセット」をご参照ください。
-
ファイアウォールで必要なポートが開かれていること。詳細については、「ファイアウォール設定」をご参照ください。
この例では、デフォルトの MySQL ポート 3306、デフォルトの aaPanel ポート 8888、およびデフォルトの phpMyAdmin ポート 888 を開く必要があります。
警告デフォルトのポートは、サーバーをセキュリティリスクにさらす可能性があります。使用後すぐにこれらのポートを無効にするか、カスタムポートに変更することを推奨します。
背景情報
このトピックでは、LNMP (Linux、Nginx、MySQL、PHP) 環境を実行する ECS インスタンスから Simple Application Server に WordPress ウェブサイトを移行する方法について説明します。この移行により、ウェブサイトの運用を継続し、データをそのまま維持できます。次の表に、この移行で使用されるサーバーとツールを示します。
-
サーバーの詳細
ECS インスタンス
Simple Application Server
-
イメージ:CentOS 7.8 パブリックイメージ。
-
実行環境とアプリケーション:LNMP 環境で WordPress ウェブサイトをホストします。
バージョンの詳細:
-
Nginx バージョン:1.16.1
-
MySQL バージョン:5.7.28
-
PHP バージョン:7.0.33
-
WordPress バージョン:5.1.10
説明このトピックでは、LNMP 環境のセットアップや ECS インスタンスへの WordPress ウェブサイトのデプロイ方法については説明しません。詳細については、「WordPress サイトの手動構築 (CentOS 7)」をご参照ください。
-
イメージ:CentOS 7.6。
-
-
移行ツール
ツール
説明
aaPanel (無料)
サーバー管理パネルです。aaPanel を使用して、ECS インスタンスから Simple Application Server に LNMP 環境を複製します。
scp コマンド
このコマンドは、SSH プロトコルを介してファイルをリモートでコピーするために使用されます。ECS インスタンス上の Web アプリケーション (データベースデータを除く) は、scp コマンドを使用して Simple Application Server にコピーされます。
Data Transmission Service (DTS)
Data Transmission Service (DTS) を使用して、データベースを ECS インスタンスから Simple Application Server に移行します。DTS の詳細については、「Data Transmission Service とは」をご参照ください。
注意事項
-
スナップショットを作成してデータをバックアップします。
詳細については、次のトピックをご参照ください:
-
ECS インスタンス:スナップショットの作成。
-
Simple Application Server:スナップショットの作成。
警告ECS インスタンスと Simple Application Server 用に別々のスナップショットを作成することを推奨します。移行の失敗によりデータの問題が発生した場合、スナップショットを使用してクラウドディスクをロールバックできます。
-
-
両方のサーバーの実行環境のバージョンが同一であることを確認します。
一部のウェブサイトでは、実行環境に特定のバージョンが必要です。ソースサーバーと宛先サーバーのバージョンが一致しない場合、移行後にウェブサイトが正しく機能しない可能性があります。ECS インスタンスの実行環境のすべてのコンポーネントの正確なバージョンを特定する必要があります。たとえば、LNMP 環境では、Nginx、MySQL、PHP のバージョンをメモし、Simple Application Server に同じバージョンをデプロイします。
-
ネットワーク接続を確認します。
ECS インスタンスと Simple Application Server の両方がパブリックネットワークアクセスを持っていることを確認します。国際リージョン間で移行する場合、不安定なネットワーク状況が移行を遅くする可能性があることに注意してください。
移行後の影響
|
項目 |
説明 |
|
ハードウェアに紐づけられたアプリケーション |
ECS インスタンスと Simple Application Server は異なる VPC にあります。移行により基盤となるハードウェアが変更されるため、特定のハードウェアに紐づけられたアプリケーションライセンスが無効になる可能性があります。移行後もライセンスが有効であることを確認する必要があります。 |
|
パブリック IP アドレス |
ECS インスタンスのパブリック IP アドレスは、Simple Application Server のものとは異なります。ECS インスタンスに関連付けられたドメイン名がある場合は、移行後に DNS レコードを更新して、ドメイン名を Simple Application Server のパブリック IP アドレスに向ける必要があります。 |
ステップ 1: aaPanel のインストールと設定
この例では、aaPanel を使用して、Simple Application Server 上の実行環境を効率的に設定し、その設定が ECS インスタンスのものと同一であることを確認します。
実際の移行では、ビジネス要件を満たし、ECS インスタンスの設定と一致するように、Simple Application Server 上のウェブサイト実行環境を手動で設定する必要があります。
-
コンソール経由で Simple Application Server にリモート接続します。
詳細については、「Linux サーバーへの接続」をご参照ください。
- 次のコマンドを実行して、
rootユーザーに切り替えます:sudo su root -
aaPanel をインストールします。
aaPanel ウェブサイトにアクセスして、お使いのオペレーティングシステム用のインストールパッケージを入手します。この例では、CentOS 7.6 を実行する Simple Application Server を使用します。次のコマンドを実行して、aaPanel の無料版をインストールします。
yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel次のような出力は、インストールが成功したことを示します。パブリックアドレス、プライベートアドレス、ユーザー名、パスワードを保存します。
================================================================== Congratulations! Installed successfully! ================================================================== aaPanel Internet Address: https://8.218.XX.XX:7800/d55e4627 aaPanel Internal Address: https://172.19.XX.XX:7800/d55e4627 username: k6tzrhwj password: d2ae**** Warning: If you cannot access the panel, release the following port (7800|888|80|443|20|21) in the security group ================================================================== Time consumed: 1 Minute! -
ローカルマシンで、Web ブラウザーでパブリックアドレスを開きます。次に、保存したユーザー名とパスワードを使用して aaPanel にログインします。
aaPanel にログインした後、aaPanel アカウントにもログインする必要があります。aaPanel アカウントをお持ちでない場合は、画面の指示に従って登録してください。
ログイン後、パネルは次の図のように表示されます。

-
aaPanel で、ECS インスタンス上のものと一致する実行環境を設定します。
-
左側のナビゲーションウィンドウで、App Store をクリックします。
-
App Sort セクションで、Deployment をクリックします。
-
リストから次のアプリケーションを見つけ、それぞれの Operation 列にある Install をクリックします。
-
Nginx
[Install] をクリックし、
nginx 1.16バージョンを選択して、[Submit] をクリックします。 -
MySQL
[Install] をクリックし、
mysql 5.7バージョンを選択して、[Submit] をクリックします。 -
PHP-7.0
[インストール] をクリックし、デフォルト設定のままにして、[送信] をクリックします。
-
phpMyAdmin
[Install] をクリックし、
phpmyadmin 4.9バージョンを選択して、[Submit] をクリックします。
インストールには時間がかかる場合があります。
-
-
-
aaPanel で、サイトを追加します。
-
左側のナビゲーションウィンドウで、[Website] をクリックします。
-
[PHP Project] タブで、[Add site] をクリックします。
-
[Add site - Support batch site building] ダイアログボックスの [Create site] タブで、パラメーターを設定し、[Submit] をクリックします。
次の表に主要なパラメーターを示します。他のパラメーターにはデフォルト値を使用します。
パラメーター
説明
例
ドメイン名
-
Simple Application Server に解決されるドメイン名がある場合は、ここに入力します。
-
それ以外の場合は、テスト用に Simple Application Server のパブリック IP アドレスを使用します。移行が完了したら、ドメイン名をバインドしてこの設定を更新できます。
この例では、テスト用に Simple Application Server のパブリック IP アドレスを使用します。
説明
サイトの説明です。このフィールドはオプションです。
この例では、このパラメーターを
server-Bに設定します。ウェブサイトのパス
ウェブサイトのルートディレクトリです。aaPanel のデフォルトのルートディレクトリは /www/wwwroot ディレクトリにあります。
この例では、このパラメーターを /www/wwwroot/wordpress に設定します。
サイトが追加されると、ページは次の図のように表示されます。

-
-
-
aaPanel で、MySQL データベースを設定します。
-
左側のナビゲーションウィンドウで、[Databases] をクリックします。
-
[Database Manager] ページで、root パスワードを変更します。
-
[Root password] をクリックします。
-
[ルートパスワード] テキストボックスに任意のパスワードを入力し、[送信] をクリックします。
この例では、パスワードは
Test@123に設定されています。重要パスワードを設定する際は、安全な場所に保存してください。
-
-
[Database Manager] ページで、[phpMyAdmin] をクリックします。
-
[phpMyAdmin] ページで、MySQL の
rootユーザーとパスワードを入力し、Go をクリックします。 -
上部のナビゲーションバーで、[SQL] をクリックします。次のコマンドを入力し、Go をクリックします。
データ移行のためには、MySQL ユーザーにリモート接続権限が必要です。Simple Application Server 上に MySQL ユーザーを作成する必要があります。
-- mysql データベースに切り替えます。 use mysql; -- この例では、リモート接続用の MySQL ユーザーは 'testUser' で、パスワードは 'Test@123' です。 create user 'testUser'@'%' IDENTIFIED BY 'Test@123'; -- 'testUser' にリモート接続権限を付与します。 grant all privileges on *.* to 'testUser'@'%' with grant option; -- 変更をすぐに適用します。 flush privileges; -
上部のナビゲーションバーで、[SQL] をクリックします。次のコマンドを入力し、Go をクリックします。
移行後に WordPress サイトがデータベースに接続できるようにするには、ECS インスタンス上の WordPress で使用されているものと同一のデータベースとユーザーを Simple Application Server 上に作成する必要があります。
この例では、ECS インスタンス上の WordPress サイトの MySQL データベース名は
wordpress、データベースユーザー名はuser、パスワードはPASSword123です。-- wordpress データベースを作成します。 create database wordpress; -- 新しいユーザー 'user' をパスワード 'PASSword123' で作成します。 create user 'user'@'localhost' identified by 'PASSword123'; -- wordpress データベースのすべての権限を 'user' に付与します。 grant all privileges on wordpress.* to 'user'@'localhost' identified by 'PASSword123'; -- 変更をすぐに適用します。 flush privileges;
-
-
aaPanel で、ファイアウォールを設定します。
-
左側のナビゲーションウィンドウで、[Security] をクリックします。
-
[Firewall] セクションで、デフォルトの MySQL ポート 3306 を開きます。
設定は次の図のようになります。

-
[Open] をクリックします。
-
ステップ 2:ECS インスタンスの設定
Data Transmission Service (DTS) を使用してデータベースデータを移行する前に、ECS インスタンスで次の手順を完了します。
-
セキュリティグループを設定します。
データベースデータを移行するには、ECS インスタンスのセキュリティグループで特定のポートを開く必要があります。この例では、ECS インスタンスと Simple Application Server の両方のデータベースは MySQL データベースです。したがって、ECS インスタンスのセキュリティグループでデフォルトの MySQL ポート 3306 を開く必要があります。詳細については、「セキュリティグループルールの追加」をご参照ください。
-
MySQL を設定します。
データベース移行のためには、MySQL ユーザーにリモート接続権限が必要です。したがって、ECS インスタンス上にリモート接続用の MySQL ユーザーを作成する必要があります。
-
ECS インスタンスにリモート接続します。
詳細については、「接続方法の概要」をご参照ください。
-
MySQL データベースにログインします。
mysql -uroot -p -
Enter password: プロンプトで、MySQL
rootユーザーのパスワードを入力します。自己管理 MySQL データベースのログインパスワードを入力する必要があります。
説明データセキュリティのため、パスワードを入力しても出力は返されません。正しいパスワードを入力して Enter キーを押すだけです。
-
wordpressデータベースを使用します。wordpressデータベースは、WordPress ウェブサイトのデータベースです。use wordpress; -
リモート接続用のデータベースユーザーを作成します。
この例では、ユーザー名は
testUser、パスワードはTest@123です。重要この例のパスワードはデモンストレーション用です。パスワード漏洩によるセキュリティリスクを防ぐため、強力なパスワードを設定し、安全に保管する必要があります。
create user 'testUser'@'%' IDENTIFIED BY 'Test@123'; - 次のコマンドを順に実行して、
testUserユーザーにリモート接続権限を付与します。- リモート接続権限を付与します。
grant all privileges on *.* to 'testUser'@'%' with grant option; - 設定をすぐに有効にします。
flush privileges;
- リモート接続権限を付与します。
- 次のコマンドを実行して MySQL を終了します:
\q;
-
ステップ 3:scp を使用したウェブサイトファイルのコピー
-
Simple Application Server の情報を確認します。
scp コマンドでウェブサイトファイルをリモートでコピーするには、ターゲットサーバーのパブリック IP アドレスと宛先パスが必要です。Simple Application Server の次の情報を確認します:
-
パブリック IP アドレス。
詳細については、「サーバーカード情報の表示」をご参照ください。
-
ウェブサイトのルートディレクトリ。
この例では、Simple Application Server のウェブサイトのルートディレクトリは /www/wwwroot/wordpress です。
-
-
ECS インスタンスにリモート接続します。
詳細については、「接続方法の概要」をご参照ください。
-
次のコマンドを実行して、scp コマンドを使用して Web アプリケーションを ECS インスタンスから Simple Application Server に移行します。
scp -r /usr/share/nginx/html/wordpress/* root@<Simple Application Server のパブリック IP アドレス>:/www/wwwroot/wordpressscp コマンドのパラメーター:
-
-r:ディレクトリ全体を再帰的にコピーします。単一のファイルをコピーする必要がある場合は、-rオプションを省略します。 -
/usr/share/nginx/html/wordpress/*:ECS インスタンス上のソースパスです。/*は、コマンドがディレクトリ内のすべてのファイルをコピーすることを示します。 -
root@<Simple Application Server のパブリック IP アドレス>:SSH プロトコルを介して Simple Application Server に接続するためのユーザーと宛先を指定します。 -
/www/wwwroot/wordpress:Simple Application Server 上のウェブサイトのルートディレクトリです。
-
-
root@<Simple Application Server のパブリック IP アドレス>'s password: プロンプトで、Simple Application Server のログインパスワードを入力します。
説明データセキュリティのため、パスワードを入力しても出力は返されません。正しいパスワードを入力して Enter キーを押すだけです。
scp コマンドは転送中にデータを暗号化するため、転送速度が制限されます。コピープロセスが完了するまでお待ちください。
ステップ 4:DTS を使用したデータベースデータの移行
- DTS コンソールにログインします。
-
左側のナビゲーションウィンドウで、データ移行 をクリックします。ページの左上隅で、タスクの作成 をクリックします。
-
データ移行タスクを設定します。
次の表に主要なパラメーターを示します。他のすべてのパラメーターには、デフォルト設定を使用します。
-
タスク名:カスタム名を入力します。例:
test-swas-01。 -
ソースデータベース (ECS インスタンス):
パラメーター
例
データベースタイプ
[MySQL] を選択します。
アクセス方法
[ECS 上の自己管理データベース] を選択します。
インスタンスリージョン
ECS インスタンスが配置されているリージョン。例:中国 (杭州)。
Alibaba Cloud アカウント間でデータを複製
この例では、[いいえ] を選択します。
ECS インスタンス ID
ECS インスタンス ID を選択します。
ポート番号
デフォルト値は
3306です。データベースアカウント
リモート接続権限を持つデータベースアカウントを入力します。例:
testUser。データベースパスワード
Test@123
重要データ侵害を防ぐために、強力なパスワードを使用し、安全に保管してください。
-
宛先データベース (Simple Application Server):
パラメーター
例
データベースタイプ
[MySQL] を選択します。
アクセス方法
[パブリック IP アドレス] を選択します。
インスタンスリージョン
Simple Application Server が配置されているリージョン。例:中国 (杭州)。
ドメイン名または IP
Simple Application Server のパブリック IP アドレス。
ポート番号
デフォルト値は
3306です。データベースアカウント
リモート接続権限を持つデータベースアカウントを入力します。例:
testUser。データベースパスワード
Test@123
重要データ侵害を防ぐために、強力なパスワードを使用し、安全に保管してください。
-
-
設定が完了したら、接続をテストして続行 をクリックして、ソースと宛先の MySQL データベースへの接続をテストします。
-
DTS サーバーアクセス承認 ダイアログボックスで、接続をテストして続行 をクリックします。
-
オブジェクトと詳細設定の構成 ウィザードで、必要なパラメーターを設定し、次へ:詳細設定 をクリックします。
主要なパラメーターは以下に説明します。詳細については、「データ移行ガイド」をご参照ください。
-
タスクステージ:ビジネス要件に基づいて、スキーマ移行、完全データ移行、または 増分データ移行 を選択します。
-
ソースオブジェクト:ソースオブジェクト セクションで、すべて選択 を選択し、
アイコンをクリックします。
操作が完了すると、ページは次の図のように表示されます。

-
-
詳細設定 ウィザードで、デフォルト設定を維持し、次へ:タスク設定の保存と事前チェック をクリックします。
事前チェックが完了するまで待ちます。事前チェックが失敗した場合は、失敗 の横にある 詳細の表示 をクリックします。原因を特定し、問題を解決してから、再度事前チェックを実行します。
-
次へ:購入 をクリックします。

-
購入 ページで、Data Transmission Service (従量課金) サービス規約 を選択し、購入して開始 をクリックします。
この例のデータ移行は無料です。実際の料金は、Data Transmission Service コンソールに表示される請求情報に基づきます。DTS の課金の詳細については、「課金の概要」をご参照ください。
移行タスクが開始されたら、タスクが完了するまで待ちます。

ステップ 5:データ移行の検証
-
ローカルホストで、ブラウザを使用して Simple Application Server 上の aaPanel にログインします。
-
WordPress Web アプリケーションファイルを確認します。
-
aaPanel の左側のナビゲーションウィンドウで、Site をクリックします。
-
PHP Project ページで、Document Root 列にあるウェブサイトのドキュメントルートをクリックします。

次の図は、Simple Application Server に移行された Web アプリケーションファイルを示しています。

-
Web アプリケーションに問題がないか確認します。
ビジネスシナリオに基づいて、Simple Application Server 上の Web アプリケーションが ECS インスタンス上のものと一致しているかどうかを確認する必要があります。たとえば、ECS インスタンスでは、wp-config.php ファイルはシンボリックリンクです。移行後、シンボリックリンクは無効になり、ファイル権限が変更されます。その後、Simple Application Server 上の wp-config.php ファイルの権限を変更する必要があります。
aaPanel でファイル権限を修正するには:
-
ファイルにカーソルを合わせ、Permission をクリックします。

-
Set permission ダイアログボックスで、ファイル権限を設定し、OK をクリックします。
実際のビジネス要件に基づいて変更を行う必要があります。この例では、すべての権限が wp-config.php ファイルに付与されています。

-
-
-
WordPress データベース情報を確認します。
-
左側の aaPanel ナビゲーションウィンドウで、[Databases] をクリックします。
-
[Get DB from server] をクリックします。
Simple Application Server の WordPress データベースの情報が表示されます。パスワードの取得に失敗した場合は、[reset] をクリックしてデータベースのパスワードをリセットします。

-
[Operation] 列で、[Tools] をクリックして WordPress データベースのテーブルデータを表示します。
Simple Application Server のテーブルデータは、ECS インスタンスのデータと同じです。

-
-
ローカルホストで、ブラウザを使用して
http://<ご利用の Simple Application Server のパブリック IP アドレス>にアクセスし、WordPress ウェブサイトへのアクセスをテストします。-
WordPress ウェブサイトが正しく読み込まれ、表示されるデータが移行前のデータと同一である場合、移行は成功です。

-
WordPress ウェブサイトにアクセスできず、
Permission deniedエラーが返される場合は、エラーメッセージに示されているようにファイル権限を修正します。詳細については、「Web アプリケーションに問題がないか確認します」をご参照ください。
-