在 AWS EC2 上部署 Web 应用程序

Posted

技术标签:

【中文标题】在 AWS EC2 上部署 Web 应用程序【英文标题】:Deploy Web Application on AWS EC2 【发布时间】:2014-05-21 16:05:04 【问题描述】:

我有一个需要将 mysql、JAVA JDK 和 JBoss 部署到 AWS EC2 的 Web 应用程序。 将其部署到最终客户的最佳实践和最佳方式是什么?我有几个问题:

    我将使用 Amazon Linux AMI,还有其他推荐的吗? 安装时存放 JBoss 文件的最佳位置在哪里? 我需要 MySQL 的实时备份,对我来说最好的方法是什么?如果发生任何崩溃而不会丢失任何数据,我将需要能够检索并运行它。那么使用 Amazon RDS 还有哪些其他替代方案?

这是我第一次部署网络应用程序,希望能提供一些意见。

提前谢谢你

【问题讨论】:

你考虑过弹性豆茎吗?他们不支持 JBoss,但如果您的应用程序集成得不是太紧密,则可能值得从 JBoss 迁移到 Tomcat。您将节省大量时间和配置工作。 感谢 anttix,我已经能够使用 Elastic Beanstalk 成功部署应用程序,但由于这是 JBoss,我需要投入一些时间和配置才能成功部署它 【参考方案1】:

这个问题相当广泛。不过,我会尽力帮忙的。

使用 JBOSS,您可能希望查看以下内容:

http://aws.typepad.com/awsaktuell/2013/10/elastic-jboss-as-7-clustering-in-aws-using-ec2-s3-elb-and-chef.html

如果您愿意将容器从 JBOSS 切换到 Tomcat,您可以使用 Elastic Beanstalk(因为它不支持 JBOSS 容器)。这样一来,所有的数据库、自动缩放和备份都将由 Amazon 负责。

您可以在此处查看有关如何将 Java 应用程序部署到 Tomcat 容器的 AWS 文档: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.html

【讨论】:

谢谢 Rico,不,我们将为此使用 JBoss。我已经能够使用 Elastic Beanstalk 成功部署应用程序。我需要知道 JBoss 文件应该安装在哪里以及备份持久性数据库的最佳方法是什么。我遇到过 Amazon RDS,也知道有一个使用 EBS、S3 的选项,它可以拍摄快照并将其保存到 S3,有没有办法绕过 EBS 并直接保存到 S3?【参考方案2】:

Amazon RDS 提供多区域故障转移和创建自动每日备份的能力。当您需要冗余 MySQL 时,它是一个非常好的解决方案。

但是,请记住,您需要正确设置性能指标,因为一旦部署了 Amazon RDS 实例,就无法配置最大连接数等关键指标。您被绑定到每个您使用的实例可用的最大连接数。在这种情况下,如果您需要扩展,则需要部署一个新的 RDS 实例。

Amazon Linux AMI 也非常好。它维护得很好,并且 RPM 存储库保持最新。如果需要,您还可以添加 3rd 方存储库。

能够从一个非常精简的基础构建服务器堆栈比部署 RH 之类的东西要好得多。

【讨论】:

以上是关于在 AWS EC2 上部署 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 AWS BeanStalk 将非 Web Java 应用程序部署到 EC2?

将使用 Celery 和 Redis 的 Flask 应用程序部署到 AWS:直接使用 Elastic Beanstalk 还是 EC2?

使用 AWS Elastic Beanstalk 将多个应用程序部署到单个 EC2 实例

在 AWS ec2 实例上部署 Node Express 应用程序和 php 应用程序的最佳实践

在将MEAN Stack应用程序部署到AWS EC2时设置环境变量

AWS EC2 Windows实例无法通过公共IP访问