web-dev-qa-db-ja.com

サーバーをある色から別の色に移動する計画

現在のコロケーションプロバイダーにはあまり満足していないため、別の都市にある別の会社に移転することを検討しています。私たちのビジネスは、世界中でアクセスできるオンラインスクールです(つまり、アプリケーションには24時間365日の可用性が必要ですが、最大1〜2時間のダウンタイムが手頃な価格です)。世界中の大学が独自のカリキュラムを提供しているため、これらの協定の一部では、支払いを行う場合、特定の月にX回を超えるダウンタイムを発生させることはできないとされています。

だから私は計画を立てていますが、私が見落としているかもしれない問題を誰かが見ているのか、あるいはあなたが提案できるより良い計画があるのか​​を見るために、それを公開したいと思います。

私たちのセットアップ:Intel Modular Server、刑務所付きのFreeBSD、Apache、mysql、php。学生がログインするドメインは、portal.mydomain.comのようなものです。

サーバーの2番目のインスタンスをサイトB(新しいサイト)に配置して、新しいドメイン名(portal1.mydomain.com)を付けることができると考えていました。次に、portal.mydomain.comからのすべてのトラフィックをportal1.mydomain.comにリダイレクトするように強制できます。その時点で、元のドメイン名のDNSを変更して、新しいIPアドレスを使用します。次に、DNSの変更が伝播するまで48時間かかります。その時点で、新しいインスタンスのApacheを、portal1ではなくportal.mydomain.comに応答するように変更するだけで、すべてが通常どおりビジネスになります。

私が見落としているこの計画に穴はありますか?それを行うためのより良い方法はありますか?

3
Safado

これが機能するためには、アプリケーションが現在のドメイン名に依存せず、portal1.mydomain.comで機能することを絶対に確認する必要があります。
過去の私の経験では、悲しいことに、これが常に当てはまるとは限りません。

ドメイン名に問題がないことを確認できれば、計画は適切に聞こえます。
新しいデータセンターにカットオーバーするときは、明らかにMySQL DBを同期する必要があります(計画ではそれについて言及していません)。
portal.mydomain.comDNSレコードのTTL)を低い値に設定するので、伝播に48時間かかりません。

確信が持てない場合は、これを行うことをお勧めします。
* portal.mydomain.comのTTL)を下げる(5分)
*新しいDCに新しいインスタンスをセットアップし、portal.mydomain.comもリッスンします
* MySQLDBの古いものから新しいものへの同期を維持するDC(レプリケーション)
*古いDCでApacheを停止します
**最後のDB変更が複製されるのを待つ
**新しいDBでレプリケーションを停止し、スタンドアロンになるように構成します
** portal.mydomain.comのDNSレコードを変更して、新しいインスタンスのIPを指すようにします
**新しいDCのMySQLDBにアクセスするように古いApacheインスタンスを構成します
*待って、古いApacheでリクエストを監視し、使用されなくなったらシャットダウンします
* TTLを再び通常の値に設定

これは、DC間のMySQL接続のようないくつかのことが可能であることも前提としています。

2
faker