Eu não acho que você precise (ou queira) redirecionar o pedido depois de obter um 404 do bucket do S3. Você então faria duas solicitações sequencialmente e atrasaria as coisas.
O CloudFront suporta vários servidores de origem. Não pense nisso como S3 entre o CloudFront e o EC2, mas o S3 próximo ao EC2. Dê uma olhada aqui:
Origin Servers
You can configure one or more origin servers for your Amazon CloudFront download distribution. Origin servers can be an AWS resource, such as Amazon S3, Amazon EC2, Elastic Load Balancing, or a custom origin server outside of AWS. Amazon CloudFront will request content from each origin server by matching the URLs requested by the viewer with rules you configure for your distribution. This feature allows you the flexibility to use each AWS resource for what it’s designed for – Amazon S3 for storage, Amazon EC2 for compute, etc. – without the need to create multiple distributions and manage multiple domain names on your website. You can also continue to use origin servers you already have set-up without the need to move data or re-deploy your application code.
Há também uma boa postagem no blog sobre como configurar várias origens aqui .