2

PHPアプリケーションのデプロイにAWSElasticBeanstalkを使用しています。これは、単一のgitpushアクションでアプリケーションをデプロイできるので素晴らしいことです。このアプリケーションには、JSや画像などの静的ファイルがあります。

これらの静的ファイルをAmazonCloudfrontに自動的にデプロイする方法はありますか?もちろん、デプロイスクリプトを作成することはできますが、誰かがAWSが提供するソリューションを使用しているかどうかを知りたいです。

4

2 に答える 2

4

(S3 バケットを使用するのではなく) Cloudfront ディストリビューションのオリジンとしてアプリケーション URL を指定できます。これにより、Cloudfront が透過的に静的アセットの提供を開始します。いくつかの注意事項:

  1. 絶対 URL を使用するには、アセットへのルートを調整する必要があります。たとえば、<img src="/images/hello.png" />になる必要があり<img src="//xxxxxx.cloudfront.net/images/hello.png" />ます。(奇妙に見えるスキームに注意してください。これにより、同じ URL を HTTP 接続と HTTPS 接続の両方で使用できます)。

  2. ユーザーが常に最新のリビジョンを取得できるように、ある種のリソースのバージョン管理方法を実装する必要があります。だから<img src="//a42532.cloudfront.net/images/hello.png" />実際に<img src="//a42532.cloudfront.net/images/hello-3456464234.png" />(または似たようなもの)になります。そうしないと、静的ファイルを更新するたびにディストリビューションを手動で無効にする必要があります。これは、Amazon が無効化に対して請求するため、非常に時間がかかり、非常にコストがかかる可能性があります。Git を使用すると、コードが Beanstalk にプッシュされる前に、アセットのファイル名に UNIX エポックを追加するコミット フックを作成できます。

于 2012-12-14T00:38:05.600 に答える
1

AWS/S3関連のツールに関連するいくつかのオプションがあります。

  • S3とCloudFrontをサポートするPHPSDKをチェックしてください。次のスクリーンキャストから始めることができます。

  • S3で静的Webサイトをホストするオプションを確認してください。ホストされると、エッジノードからファイルを提供するようにCloudFrontを定義するのが簡単になります。

  • CloudBerryツールをチェックしてください。無料版もあります。S3、CloudFront、その他のストレージ関連サービスでファイルを非常に簡単に管理できます。

于 2012-12-13T20:09:36.333 に答える