Настройка сервера 1 для анализа и передачи запросов на статические файлы на сервер 2 и вычислительных запросов на сервер 3

Проблема:

Наш REST API предназначен для запросов статических изображений и запросов для других вычислительных задач, таких как рендеринг новых изображений.

Мы заметили, что наш сервер Apache-Django перегружен некоторыми запросами рендеринга и поэтому не может выполнять более частые и простые запросы статических изображений.

Основная схема решения:

Сервер 1 анализирует запросы URL-адресов и решает, является ли запрос запросом статического изображения для передачи на Сервер 2 или запросом на передачу для передачи на Сервер 3.

Сервер 2 и Сервер 3 затем отправляют ответ обратно клиенту.

Мы используем AWS.

Вопросы:

Следует ли использовать Apache-Django для всех вышеперечисленных серверов?

Следует ли рассматривать CloudFront как альтернативу для Сервера 2?

Может ли сервер 1 быть обработан каким-либо образом расширенным AWS Load Balancer?

Что еще я должен исследовать?

1 ответ

CloudFront не собирается много покупать, если каждый запрос должен сначала попасть на ваш сервер. Однако CloudFront недавно получил поддержку динамического контента, поэтому вы можете настроить свою службу на основе этого.

CloudFront будет точкой входа для всех входящих запросов. Статический контент будет храниться на S3 (с соответствующими заголовками Expires), а CloudFront будет настроен для обслуживания статического контента с S3. Динамический контент будет передаваться из ваших экземпляров EC2 (с непосредственными заголовками Expires), а CloudFront будет настроен для обслуживания динамического контента с этих серверов.

Другие вопросы по тегам