首页 > 解决方案 > 亚马逊网络服务。使用哪些?

问题描述

我需要帮助。我必须在一个月内编写一个 Web 应用程序。而且我必须使用 AWS。但我从未使用过这些服务。我没有太多时间,但有很多服务。我也将 Java 与 Spring Boot 一起使用。

应用:用户可以连接和控制真空吸尘器的机柜。该应用程序与吸尘器同步,可以打开、关闭、调整速度等,相应的,有一个授权页面。

请告知我可以在我的应用程序中使用哪些亚马逊服务。

标签: amazon-web-services

解决方案


看起来您需要开发一个 Web 应用程序。我会建议下面的架构。 在此处输入图像描述

所有 AWS 组件都可以使用 AWS 开发工具包以编程方式集成,而 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 DynamoDb 可以用作数据库。在这种情况下,这又是一个高度可扩展、非常灵活的 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 免受未经授权的调用。

一些辅助服务可以用来整合email/SMS等。AWS SNS (Pub/Sub) + SQS (Queue) -> 如果你想解耦任何进程,你可以使用SNS + SQS。您可以使用 AWS SES 发送电子邮件。AWS Route53 是 DNS,您的域可以在这里托管。

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

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

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


推荐阅读