Я развернул приложение nodejs на экземпляре ec2. Я использовал атлас для mongoDB, балансировщика нагрузки, Aws ssl для защиты соединения и pm2. Поскольку я уже использую балансировщик нагрузки aws, мне нужно использовать nginx. Как лучше всего развертывать приложение nodejs на ec2. если мне нужно использовать ngnix, где настроить перенаправление http на https?
Лучшая практика для развертывания приложения nodejs на экземпляре aws ec2
- Обычно вы настраиваете http- ›https на своем LB. 14.08.2020
- да, я перенаправил весь http на https в LB. мне нужно использовать nginx? 14.08.2020
Ответы:
Похоже, вам нужно разработать веб-приложение. Я бы предложил ниже архитектуру. введите описание изображения здесь. Это устранит боль при размещении / обслуживании серверов.
Все компоненты AWS могут быть программно интегрированы с помощью AWS SDK, а Amplify - это оболочка поверх этого.
Разработайте свой пользовательский интерфейс в любой среде JavaScript и разместите его в AWS S3. Используя CloudFront, вы можете кэшировать слой пользовательского интерфейса. Поместите уровень шлюза API, который будет перехватывать весь трафик из вашего пользовательского интерфейса. Использование AWS Amplify может значительно упростить разработку пользовательского интерфейса за счет множества встроенных компонентов оболочки. Он поставляется с интерфейсом командной строки, который также можно использовать для развертывания.
Разместите приложение Spring Boot + DB Driver (или NodeJS / C # / PHP / Python / и т. Д.) С Rest API в AWS Beanstalk. BeanStalk можно настроить с балансировкой нагрузки, автоматическим масштабированием группы и т. Д. Если AWS Beanstalk кажется вам сложным, рассмотрите возможность использования архитектуры AWS Lambda (бессерверная, микросервисы).
AWS DocumentDB - это расширение MongoDB, и, возможно, вы сможете его использовать. В данном случае это опять же хорошо масштабируемый и очень гибкий NoSQL.
Вы можете использовать AWS Cognito (https://www.slideshare.net/awsugkochi/acdkochi19-enterprise-grade-security-for-web-and-mobile-applications-on-aws) для хранения учетных данных пользователей в группах и добавления разрешений и аутентифицировать / авторизовать пользователей.
В API Gateway вы можете настроить AWS Cognito Authoriser и защитить API от несанкционированных вызовов.
Некоторые из вспомогательных сервисов могут использоваться для интеграции электронной почты / SMS и т. Д. AWS SNS (Pub / Sub) + SQS (Queue) - ›Если вы хотите разделить какой-либо процесс, вы можете использовать SNS + SQS. Вы можете отправлять электронные письма с помощью AWS SES. AWS Route53 - это DNS, и здесь можно разместить ваш домен.
Если вам нужно загрузить какие-либо файлы в облако и сохранить их для пользователей, используйте AWS S3.
Вам необходимо защитить доступные в Интернете компоненты, такие как API Gateway и Cloudfront, с помощью AWS WAF.
Все эти системы создают журналы, и к ним можно получить доступ из облака AWS. Ваши API-интерфейсы можно отслеживать на предмет производительности и ошибок с помощью AWS X-Ray.