デフォルトのオリジンがS3であるCloudfrontディストリビューションをセットアップしようとしていますが、コンテンツがS3で見つからない場合は、EC2インスタンスからコンテンツをフェッチする必要があります。
これらの複数のオリジンをセットアップできますか:S3とEC2、および2つの動作。どちらもデフォルトで(*)になり、必要に応じて2番目のオリジン(EC2)にフェイルオーバーしますか?
プロセスは次のとおりです。
S3で更新されるまで、ここでは一時的なリダイレクトソリューションで問題ありません。
S3リダイレクトは、欠落しているオブジェクトではなく、既存のオブジェクトまたはバケット全体に対してのみ機能するように見えるため、S3リダイレクトは答えではありません。
どうすればそれを達成できますか?
ありがとう、Adoram
CloudFrontはユースケースをサポートしていません。これはアプリケーションで処理する必要があります。システムがS3への転送を完了するまで、アイテムのCDNURLを提供しないでください。
CloudFrontのオリジンフェイルオーバー機能を使用すると、ディストリビューションにプライマリとセカンダリの2つのオリジンを設定できます。これにより、CloudFrontがプライマリオリジンが利用できないことを検出した場合にコンテンツがセカンダリオリジンから提供されます。 CloudFrontでは、Originが利用できない場合に、カスタムエラーページを設定したり、Lambda @Edgeでリダイレクトを生成したりできます。オリジンフェイルオーバーを使用すると、AWSオリジンまたはAWS以外のカスタムHTTPオリジンの組み合わせ間でフェイルオーバーロジックを簡単にセットアップできるため、視聴者のエクスペリエンスへの中断を最小限に抑えることができます。たとえば、オリジンとして機能する2つのAmazon S3バケットを作成し、コンテンツを個別にアップロードすることができます。 CloudFrontがプライマリバケットからリクエストするオブジェクトが存在しない場合、またはプライマリバケットへの接続がタイムアウトした場合、CloudFrontはセカンダリバケットからオブジェクトをリクエストします。そのため、HTTP4xxまたは5xxステータスコードのいずれかに応答してフェイルオーバーをトリガーするようにCloudFrontを設定できます。