私は新しいサーバー構造を設計しており、2つのApacheの主力製品とその両方の背後にあるSQLデータベースを用意する予定です。 Apacheサーバー間でデータをミラーリングするための最良の方法は何であるか疑問に思いました。ユーザーデータは、ほとんどがS3で可能になるため、これらのサーバーで制限する必要があります。
これまでに行った予備調査から、GlusterFSとDRBDについて読みましたが、単純なrsyncスクリプトでうまくいくでしょうか?
正直なところ、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を使用する方法に関するガイドがあります。