PHPアプリケーションのデプロイにAWSElasticBeanstalkを使用しています。これは、単一のgitpushアクションでアプリケーションをデプロイできるので素晴らしいことです。このアプリケーションには、JSや画像などの静的ファイルがあります。
これらの静的ファイルをAmazonCloudfrontに自動的にデプロイする方法はありますか?もちろん、デプロイスクリプトを作成することはできますが、誰かがAWSが提供するソリューションを使用しているかどうかを知りたいです。
PHPアプリケーションのデプロイにAWSElasticBeanstalkを使用しています。これは、単一のgitpushアクションでアプリケーションをデプロイできるので素晴らしいことです。このアプリケーションには、JSや画像などの静的ファイルがあります。
これらの静的ファイルをAmazonCloudfrontに自動的にデプロイする方法はありますか?もちろん、デプロイスクリプトを作成することはできますが、誰かがAWSが提供するソリューションを使用しているかどうかを知りたいです。
(S3 バケットを使用するのではなく) Cloudfront ディストリビューションのオリジンとしてアプリケーション URL を指定できます。これにより、Cloudfront が透過的に静的アセットの提供を開始します。いくつかの注意事項:
絶対 URL を使用するには、アセットへのルートを調整する必要があります。たとえば、<img src="/images/hello.png" />
になる必要があり<img src="//xxxxxx.cloudfront.net/images/hello.png" />
ます。(奇妙に見えるスキームに注意してください。これにより、同じ URL を HTTP 接続と HTTPS 接続の両方で使用できます)。
ユーザーが常に最新のリビジョンを取得できるように、ある種のリソースのバージョン管理方法を実装する必要があります。だから<img src="//a42532.cloudfront.net/images/hello.png" />
実際に<img src="//a42532.cloudfront.net/images/hello-3456464234.png" />
(または似たようなもの)になります。そうしないと、静的ファイルを更新するたびにディストリビューションを手動で無効にする必要があります。これは、Amazon が無効化に対して請求するため、非常に時間がかかり、非常にコストがかかる可能性があります。Git を使用すると、コードが Beanstalk にプッシュされる前に、アセットのファイル名に UNIX エポックを追加するコミット フックを作成できます。
AWS/S3関連のツールに関連するいくつかのオプションがあります。
S3とCloudFrontをサポートするPHPSDKをチェックしてください。次のスクリーンキャストから始めることができます。
S3で静的Webサイトをホストするオプションを確認してください。ホストされると、エッジノードからファイルを提供するようにCloudFrontを定義するのが簡単になります。
CloudBerryツールをチェックしてください。無料版もあります。S3、CloudFront、その他のストレージ関連サービスでファイルを非常に簡単に管理できます。