微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在AWS EC2实例上部署Node.js应用的最佳实践

如何解决在AWS EC2实例上部署Node.js应用的最佳实践

我已经在ec2实例上部署了nodejs应用。我已经为mongoDB,负载均衡器,Aws ssl使用了地图集来确保连接和pm2的安全。由于IAM已经在使用AWS负载均衡器,因此我需要使用Nginx。在ec2上部署nodejs应用的最佳实践是什么?如果我需要使用ngnix在哪里配置http到https重定向

解决方法

看起来您需要开发一个Web应用程序。我建议下面的架构。在此处输入图片说明。这将消除托管/维护服务器的麻烦。

可以使用AWS开发工具包以编程方式集成所有AWS组件,而Amplify是此基础上的包装。

在任何JavaScript框架中开发UI并将其托管在AWS S3中。使用CloudFront,您可以缓存UI层。放置一个API网关层,它将拦截来自UI的所有流量。使用AWS Amplify可以通过许多内置包装器组件极大地简化UI开发。它带有CLI,该CLI也可用于部署。

在AWS Beanstalk中使用Rest API托管Spring Boot + DB驱动程序(或NodeJS / C#/ PHP / Python / etc。)应用程序。可以使用Load Balancing,Auto Scaling Group等配置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(公共/子站点)+ SQS(队列)->如果要分离任何流程,则可以使用SNS + SQS。您可以使用AWS SES发送电子邮件。 AWS Route53是DNS,可以在此处托管您的域。

如果您必须将任何文件上传到云并存储给用户,请利用AWS S3。

您需要使用AWS WAF保护面向Internet的组件,例如API Gateway和Cloudfront。

所有这些系统都会生成日志,并且可以从AWS cloudwatch访问它。使用AWS X-Ray可以监视您的API的性能和错误。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。