web-dev-qa-db-ja.com

中小企業向けの高可用性アーキテクチャ

私たちは小さなスタートアップです。現在のセットアップでは、リモートロケーションに専用サーバーがあります。当社のウェブサイトとアプリケーションはそのサーバーでホストされています。ウェブサイトと一部のアプリケーションはPHPにあり、残りはJava TomcatとJBossを使用するアプリケーションです。データベースサーバーはmysqlです。mysqlデータをローカルサーバーにバックアップします。明らかに、このセットアップではさまざまな問題が発生する可能性があります。最近、深刻なダウンタイムの問題やその他の恐怖が発生しました。

私たちが考えている新しいセットアップは次のとおりです。

1)現在のサーバーと同じ構成の新しいサーバーを購入する。すべてのアプリとソフトウェアを備えた現在のサーバーと同様にこれを設定します

2)BackupPCを使用して新しいサーバーへのホットバックアップを実行します。 (Webサイト、phpアプリ、jboss、Tomcatアプリなどの頻繁に変更されるファイルのみを同期します)

3)準同期レプリケーションを使用して新しいサーバーでmysqlスレーブを実行する

4)プライマリサーバーを指す別のサーバーでリバースプロキシとしてApache/nginx/lighttpdを実行します。

5)ローカルサーバーでスレーブの実行を続行します

ダウンタイムが発生した場合は、リバースプロキシをセカンダリサーバーにポイントできます。セカンダリサーバーをポイントする前に、セカンダリサーバーが完全に同期されていることを確認する必要があるため、自動フェイルオーバーは実行しません。

上記のアプローチの長所と短所は何ですか?または、これをどのように改善できますか?リバースプロキシがSPOFになることを理解しています。この時点で、費用効果の高いソリューションを探しています。リバースプロキシは、ある程度適切な構成の低価格サーバーにすることができますか?

いろいろな記事を読んでまとめました。私の理解の一部が間違っている可能性があります。お気軽に修正してください。

1
Steve

sPOFとリバースプロキシの必要性を排除する安価で簡単なソリューションは、DNSを低いTTL値(例:60秒)に設定し、必要に応じてIPアドレスを変更することです。サーバーを切り替える。

ダイナミックDNSをサポートするDNSプロバイダー(またはAmazon Route 53)を使用している場合は、プロセスを自動化する小さなスクリプトを作成することもできます。

2
Yoav Aner