Какую среду Elasti c Beanstalk я должен выбрать? - PullRequest
2 голосов
/ 16 июня 2020

Моя задача - переместить наш существующий расчет java (сервлет в виде файла WAR) с нашего собственного сервера на AWS. Это расчет без пользовательского интерфейса или базы данных. Другие компании должны иметь возможность вызывать расчет в своих программах. Сервлет принимает почтовый запрос с полезной нагрузкой Json, а ответ отправляет Json полезную нагрузку обратно клиенту после выполнения вычисления. Расчет относительно тяжелый и, следовательно, требует много времени (1-2 se c.).

Я решил использовать AWS Elasti c Beanstalk для облачных вычислений, но сомневаюсь Какую среду EB использовать - серверную или рабочую среду? и если я должен использовать AWS API Gateway перед EB?

Надеюсь, кто-нибудь сможет прояснить это для меня.

1 Ответ

1 голос
/ 16 июня 2020

Рабочая среда создает очередь SQS , в которую вы отправляете свои задания. Чтобы разрешить доступ к нему из-за пределов AWS, вам нужно будет установить его с помощью API Gateway (предпочтительный способ).

Однако рабочая среда работает асинхронно . Он не возвращает вызывающему абоненту результаты работы. Вам понадобится какой-то другой механизм для ваших клиентов, чтобы вернуть результаты, например, через другой вызов API.

Альтернативой является веб-среда , где клиенты получают ответ прямо от вашего json заявка на обработку. 1-2 секунды - это не так много времени ожидания HTTP-запроса.

Для более сложного решения на основе EB можно посмотреть: Создание связей между средами Elasti c Beanstalk . У вас будет интерфейсная среда для ваших клиентов, связанная с рабочей средой, которая выполняет обработку заданий json.

Другой способ - переписать приложение в lambda , если возможно конечно. Lambda отлично подходит для 1-2-секундных задач обработки.

...