2011-06-20 11 views
4

EC2のElastic Load Balancing機能の実装を検討していますが、頻繁に変更され、最も一般的な戦略が保持するWebアプリケーション(LAMPスタック上)を実行していますロードバランシングされているサーバー間でアプリケーションが同期します。データベースは他の場所にも存在するので、変更を加えると実際のスクリプトを同期させておくことについて(今のところ)心配しています。Webサーバーの負荷分散とコンテンツの同期の維持

+0

私もこの問題を抱えています:( – CodeGuru

答えて

4

一つの方法は、rsyncを使用してファイルを転送し、サーバー上でプロジェクトをビルドすることができcontinuous integrationを使用している、これはまだありません。

(PHPUnitで、コードカバレッジ、コード分析、など)が利用可能なプラグインのかなりの束があります。

Jenkins

方法:

  1. Install Jenkins
  2. はおそらく(プロジェクトを構成しますコードはいくつかのコードバージョンシステムにあるはずです)
    1. サーバー、プロジェクトパス、事前ジョブ、ポストジョブなどの設定
  3. 作業/ジョブをスケジュールします。
  4. これで完了です。

参考:

  1. 構成:
    1. configuring - ex.1
    2. Initial configuration
      1. Configuring the jobs
  2. http://agile.dzone.com/news/continuous-integration-php
5

は、それはあなたがスクリプトを更新しようとしている頻度によって異なります。

  • 最も一般的な解決策は、EBSボリュームに共有コンポーネントを保存するスナップショットを作成し、インスタンスからそれをマウントすることである - のいずれか(コード全体をすべてのインスタンスに渡って同期させておくことができます)またはセカンダリボリューム(コードのみを含み、Canonicalなどの他のユーザーによって構築されたAMIを使用できるようにします)
  • よく更新されますrsyncのような単純な解決策が勝者になる可能性があります。代わりにS3でそれらを保ち、S3ヒューズモジュールを使用してS3から直接スクリプトをマウントすることができます(このsolu S3ヒューズキャッシュの仕方によっては、S3 GETリクエストの数を少し増やすことになります)。この問題に対処する
0

あなたはAWSインフラ上でシェフ/パペットを実行することができます。これをGit/SVNに統合してください。新しい変更はSVNのシェフによって自動的に取得され、定期的にAmazon EC2 Webサーバーに移行されます。

関連する問題