Sim ... use o CloudFront.
Sua finalidade oficial, é claro, é como um CDN em cache, mas ele tem a capacidade integrada de rotear seletivamente as solicitações para o sistema de origem apropriado, com base no caminho. Então, você configuraria seu caminho padrão para o S3 e as solicitações seriam enviadas para o seu intervalo. Configure uma segunda origem apontando para o Elastic Load Balancer na frente da sua implantação do Elastic Beanstalk. Defina um padrão de caminho de /api/*
para rotear solicitações para essa segunda origem.
O comportamento do cache pode ser desativado se não for necessário ou desejado.
Uma implantação do CloudFront é chamada de "distribuição".
Esta é a melhor abordagem? Depende da sua experiência e criatividade ... mas se você deseja usar os componentes disponíveis da AWS, então sim, este é provavelmente o caminho a percorrer. É o único componente que fornece essencialmente roteamento livre de manutenção de solicitações por caminho em http. (O Amazon API Gateway também roteia caminhos, é claro, mas não é adequado para esse aplicativo com o S3 como destino "curinga").