2011-09-10 18 views
5

WebサイトをAmazon AWSに移動する過程で、展開に関する重要な問題が提起されています。Amazon AWSでのWebサイトのデプロイ

私はS3とEC2インスタンスを実行しています。 S3インスタンスは、画像、JavaScript、CSSなどのすべての静的コンテンツを処理しています。しかし、EC2のインスタンスでは、私はコードベースを更新したいときに "git pull"を実行できるように、/ var/www /にGitリポジトリを開始しました。

完全にシームレスになるように、静的コンテンツとコードを同時にアップロードする方法を解決する方法が見つからないようです。フロントページのロゴとレイアウトを更新したいとします。 logo.pngをS3にアップロードすると、EC2の現在のコードベースは、新しいレイアウトが展開されていなくても自動的に新しいロゴを指し示します。

S3に新しい名前(logo-2.pngなど)でlogo.pngをアップロードすると、HTMLのlogo.pngへの参照がすべてlogo-2.pngに更新され、展開されますか?

ご理解いただきありがとうございます - ありがとうございます!

答えて

1

ジェンキンスやSpringloops、または多分レーキのような配置を行うには、3番目の手順を実行します。

こうして、両方のビルドステップを1回のコミットから同時にトリガすることができます。

1

はい、私のファイルには現在のgit commit hashがあります。例えば、minified..cssのように、あなたのS3ファイルの名前は間違いありません。ビルドを行うために使用しているツールがあれば、まずS3ステップを実行してからアプリケーションコードを実行します。

これは、人々が古いファイルをブラウザのキャッシュにキャッシュし、古いバージョンを取得するため、これは特に重要です。

logo.gifのように私のすべてのファイルを名前空間にするわけではありません。そのファイルは決して変更されず、これまでに行ったことがあれば手動で追加します。logo.gif?v = 1

上記のことを行うには、RsyncとKnoxを使用する単純なノードスクリプトを設定します。

興味があれば私はdev toolソースをオープンしています。私のユースケースにはかなり特殊ですが、あなたはそれを選ぶことができます。

S3からプルするためにクラウドフロントを使用することをおすすめします。 Cloudfrontは高速で、セットアップに15分しかかかりません。最後に、これらのアセットでgzipとExpiredヘッダーを使用することを忘れないでください。

関連する問題