С AWS-сервисами у нас есть веб-приложение, работающее из ведра S3, и доступ к данным через REST API из Load Balancer (который установлен в приложениях Node.js, запущенных на экземпляре EC2).
В настоящее время мы указали URL следующим образом:
- Балансировщик API: апи. somedomain.com
- Статическое веб-приложение на S3: somedomain.com
Но наличие этой установки вызвало множество проблем, так как запросы CORS с этой настройкой. Мы могли бы обойти CORS со специальными заголовками, но это не работает со всеми браузерами.
То, что мы хотим достичь, - это запустить API в том же домене, но с другим путем:
- Балансер загрузки API: somedomain.com /апи
- Статическое веб-приложение на S3: somedomain.com
Одна из идей заключалась в том, чтобы подключить балансировщик нагрузки API к CDN и перенаправить весь запрос на Load Balancer, если запрос идет по пути "/api/*". Но это не работает, поскольку наш API использует не только запросы HEAD и GET, но также POST, PUT, DELETE.
Другая идея - использовать второй экземпляр EC2 вместо ведра S3 для размещения веб-сайта (с использованием какого-либо веб-сервера, такого как nginx или apache). Но это слишком много накладных расходов, когда все уже на месте (S3 статический контент-хостинг). Также, если вы используете этот сценарий, мы не получили бы все преимущества производительности Amazon CloudFront.
Итак, можете ли вы рекомендовать объединить Load Balancer и S3, чтобы они работали в одном домене, но с разными путями? (API на somedomain.com /api и веб-приложение на somedomain.com)
Спасибо!