簡體   English   中英

在 aws ec2 實例上部署 nodejs 應用程序的最佳實踐

[英]best practice to deploy nodejs app on aws ec2 instance

我已經在 ec2 實例上部署了 nodejs 應用程序。 我使用了 mongoDB、負載均衡器、Aws ssl 的地圖集來保護連接和 pm2。 由於 iam 已經在使用 aws 負載均衡器,我應該需要使用 nginx。 在 ec2 上部署 nodejs 應用程序的最佳實踐是什么。 如果我需要使用 ngnix 在哪里配置 http 到 https 重定向?

看起來您需要開發 web 應用程序。 我會建議下面的架構。 在此處輸入圖像描述。 這將消除托管/維護服務器的痛苦。

所有 AWS 組件都可以使用 AWS SDK 以編程方式集成,Amplify 是在此之上的包裝器。

在任何 JavaScript 框架中開發您的 UI,並將其托管在 AWS S3 中。 使用 CloudFront,您可以緩存 UI 層。 放置一個 API 網關層,它將攔截來自您的 UI 的所有流量。 使用 AWS Amplify 可以通過許多內置的包裝器組件來極大地簡化您的 UI 開發。 它帶有 CLI,也可用於部署。

在 AWS Beanstalk 中使用 Rest API 托管您的 Spring Boot+DB 驅動程序(或 NodeJS/C#/PHP/Python/等)應用程序。 BeanStalk 可以配置負載平衡、Auto Scaling Group 等。如果 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 網關中,您可以配置 AWS Cognito Authoriser 並保護 API 免受未經授權的調用。

一些輔助服務可以用來整合email/SMS等AWS SNS (Pub/Sub) + SQS (Queue) -> 如果你想解耦任何進程,你可以使用SNS + SQS。 您可以使用 AWS SES 發送電子郵件。 AWS Route53 是 DNS,您的域可以在此處托管。

如果您必須將任何文件上傳到雲並為用戶存儲,請利用 AWS S3。

您需要使用 AWS WAF 保護面向 Internet 的組件,例如 API 網關和 Cloudfront。

所有這些系統都會生成日志,並且可以從 AWS cloudwatch 訪問。 可以使用 AWS X-Ray 監控您的 API 的性能和錯誤。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM