【问题标题】:How to Host a microservice webapp in AWS如何在 AWS 中托管微服务 webapp
【发布时间】:2026-02-02 21:50:01
【问题描述】:

我有一个微服务架构 Web 应用程序,我需要以便宜且优化的方式在 AWS 中托管它。

我有 3 个 Spring Boot 应用程序和两个节点应用程序。我的应用程序使用了 MySql 数据库。

以下是我的计划:

  1. 获取 1 个 EC2 实例。
  2. 为 mySql DB 获取 RDS。
  3. 在 EC2 上安装 docker。
  4. 创建 2 个 docker 容器。 一个。一个运行所有 Spring Boot 应用程序的 tomcat 容器。 湾。一个容器来运行节点应用程序。

第一季度。是否可以以这种方式部署我的应用程序,还是我对 AWS 架构的理解天生就有缺陷?

第二季度。我需要第三个 Nginx docker 容器吗?

第三季度。还有什么需要的吗?

欢迎任何帮助。提前致谢。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-rds


    【解决方案1】:

    在我看来,当前的设计很好,首先要牢记您要考虑经济性。您已通过将数据存储区移至 RDS 来隔离它。

    Q1. 是的,我认为您的方法很好。但这意味着您必须自己处理 EC2 实例和 RDS 实例的配置。如果您想将所有这些都卸载到 AMZ,您也可以尝试探索 Elastic Beanstalk。您当前使用的技术堆栈由 Elastic Beanstalk 支持,您可能会发现开始使用它有点困难,但后来证明是有益的。

    Q2。我会说是的。你应该有一个单独的 NGINX 容器。

    Q3.您还必须尝试将每个 Spring Boot 应用程序容器化,而不是让一个 docker 容器托管所有这些应用程序。您的 2 节点应用程序也是如此。将所有应用程序 docker 化后,您就可以完全隔离应用程序,并且可以比将它们保持在一起更好地处理弹性和扩展部分。

    我希望这能回答您的问题。

    【讨论】:

    • 谢谢 piy26。进一步澄清,是否有必要创建一个ECS集群来实现上述?
    • 出于开发目的和简单起见,您可以跳过使用 ECS。现在,您只需在 EC2 实例上安装 docker 并运行所有应用程序,即在该单个 EC2 实例上运行 3 个 Boot 和 2 个 Node 应用程序(如果您不使用 BeanStalk,则所有这些)。当您希望对应用程序进行生产部署时,ECS 将提供帮助。这就是为什么我建议将所有应用程序都容器化,以便在使用 ECS 或相关服务迁移到生产环境时更容易过渡。
    • 如果你不使用 BeanStalk,这一切我可以使用 beanstalk 来实现同样的效果吗?有什么特别的优势吗?
    最近更新 更多