web-dev-qa-db-ja.com

2ノードのApacheクラスター間でデータをミラーリングするための最良の方法

私は新しいサーバー構造を設計しており、2つのApacheの主力製品とその両方の背後にあるSQLデータベースを用意する予定です。 Apacheサーバー間でデータをミラーリングするための最良の方法は何であるか疑問に思いました。ユーザーデータは、ほとんどがS3で可能になるため、これらのサーバーで制限する必要があります。

これまでに行った予備調査から、GlusterFSとDRBDについて読みましたが、単純なrsyncスクリプトでうまくいくでしょうか?

2
bswinnerton

正直なところ、Apacheマシン間でライブタイムレプリケーションを実行することはお勧めしません。彼らに独自のコードを持たせるか、「メイン」サーバーから頻繁にrsyncを実行します。ライブタイム(またはその近く)は、99%の時間は必要ない、多くのファイル検査です。

個人的には3層にすることをお勧めします。

負荷分散/ Webサーバー(http/phpプロセス)

ファイルサーバー(すべてのWebノード間で共有する必要があるコード/ファイル)

データベースサーバー(バックエンドデータベース)

サーバー間で完全なレプリケーションを実行するよりもはるかに簡単です。

専用ファイルサーバー(NFS/ect)がなく、「Web2」に「Web1のユーザーアップロード」をマウントする機能がない場合は、両方のWebサーバーが共有領域の読み取りと書き込みを行うことができます。更新しない限り、同期ectは必要ありません。ウェブサイトコード。

Web1
/var/www/website/www
/var/www/website/_files

web2
/var/www/website/www
/var/www/website/_files (NFS mouned to Web1)
/var/www/website/_files.bak (rsync copy from web1 incase web1 explodes)

どちらのサーバーもストレージの点でほぼライブタイムであり、冗長性があり、複雑な同期のナンセンスを追加する必要はありません。

編集:

http://www.migrate2cloud.com/blog/how-to-setup-nfs-server-on-aws-ec2

eC2インスタンスでNFSを使用する方法に関するガイドがあります。

5
grufftech