AWS S3 и AWS ELB вместо AWS Elastic beanstalk для приложения SPA Angular 6

Я создаю интерфейсное приложение Angular 6. Мой backend api создан в DotNet. Предположим, что приложение похоже на https://www.amazon.com/.

Мой запрос относится только к развертыванию клиентской части на AWS. На моем портале ожидается большое количество пользователей с переменной схемой подсчета. Я подумал об использовании AWS elastic beanstalk в качестве веб-сервера PAAS.

Можно ли использовать AWS S3 / ELB вместо beanstalk PAAS без каких-либо ограничений?


person dotnetavalanche    schedule 23.07.2019    source источник


Ответы (1)


Я не на 100% уверен, что вы имеете в виду, говоря об объединении Elastic Load Balancer с S3. Я думаю, вы можете быть сбиты с толку относительно цели ELB, которая заключается в распределении запросов на несколько серверов, например. Серверы NodeJS, но не могут использоваться с S3, который уже является высокодоступным.

При обслуживании приложения Angular существует множество вариантов:

  • Вы можете обслуживать файлы с помощью приложения nodejs, но если вы не выполняете рендеринг на стороне сервера (используя Angular Universal), я не вижу смысла, потому что вы просто обслуживаете статические файлы (файлы, которые не сшиваются вместе с помощью сервер, например, когда вы используете PHP). Сложнее развернуть и поддерживать сервер, даже используя Elastic Beanstalk, и, вероятно, трудно получить такую ​​же производительность, как при других настройках (см. Ниже).

  • Я подозреваю, что большинство людей сделают настройку корзины S3 для размещения и обслуживания статических файлов вашего приложения Angular (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). Вы в основном настраиваете свое доменное имя для разрешения на URL-адрес корзины S3. Это очень дешево, так как вы не платите за постоянно работающий сервер, а платите только за небольшую стоимость хранилища плюс плату за передачу данных, которая будет прямо пропорциональна вашему трафику.

  • Вы можете еще больше улучшить настройку S3, создав дистрибутив CloudFront, который использует вашу корзину S3 в качестве источника (места, из которого он получает файлы). Когда вы настраиваете свое доменное имя для разрешения на распространение CloudFront, вместо запроса пользователя на получение файлов из корзины S3 (что может быть в регионе на другой стороне мира и так медленнее), запрос будет направлен до ближайшего "краевого местоположения", которое будет намного ближе к вашему пользователю, и сначала проверьте, кэшируются ли файлы там. По сути, это глобальная сеть доставки контента для ваших файлов. Это немного дороже, чем сам по себе S3. См. https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/.

person lemming    schedule 27.07.2019