【问题标题】:Deploying Java web application on Amazon Web Services在 Amazon Web Services 上部署 Java Web 应用程序
【发布时间】:2026-02-04 21:55:02
【问题描述】:

我想使用 Amazon AWS 开发 J2EE Web 应用程序。我应该计划使用 AWS 的哪些组件以及用于什么目的?

以下是我的应用程序的一般规格:

  • 在 SQL Server 数据库实例上具有 servlet、JSP、JPA 的 MVC 模型。
  • 数据库当前不存在
  • 该应用程序将用于运行小规模金融场景模型,假设用户通过 HTML 表单输入
  • 该应用程序没有计划使用 Aurora

规格设计:

  • 10k I/O
  • CPU:~2 GHz
  • 内存:2 GB
  • 数据库大小:2 GB

除了数据库中的数据之外,最初没有计划任何资产;计划是用最少的设计组件将数据呈现到 JSP 中。

我想负责最少的服务器和数据库管理。

目标预算为每月 10-20 美元。

我可以从 AWS 使用什么来满足这个预算和这些规范?

【问题讨论】:

    标签: java amazon-web-services web


    【解决方案1】:

    2018 年定价更新

    由于您想负责服务器管理,这将您置于 EC2 领域(本质上是 AWS 云基础设施上的虚拟机)。

    这是云。您真的不想知道保持您的规格需要多少成本(这将超出您的承受能力)。 Due to the nature of the EC2 T2, you get CPU credits,所以你让它运行的时间越长(而不是使用它),你在使用它时获得的积分就越多。通过这种方式,它会满足您的要求,假设每天使用。

    让我们假设一下(为了降低成本),您希望 SQL Server 和 Web 应用程序位于同一个 EC2 实例上(您真的不应该这样做)。

    对于 EC2,鉴于您要求在同一主机上运行 IIS 和 SQL Server(以节省资金),目前您可以使用的最低主机是 SQL Server Web Edition 2014 / Windows 2012 R2 T2.Medium每小时 0.272 美元。

    SQL Server Web 2014 / Windows 2012 R2 (T2.Medium)

       2015         2018    
    
       .272        .1358
    x   750     x    750
    -------     --------
     198.83       101.85
    

    由于它没有 Instance Store,因此您还要为根 EBS 卷付费。

    因为您的数据库将是 2GB;并且您应该保留至少 2 周的备份,我们可以假设(给定一个简单的备份方案),您将需要以下 EBS 实例(亚马逊的虚拟磁盘驱动器):

    6 GB - Data Volume
    6 GB - Log Volume 
    30 GB - Backup Volume 
    80GB - System Drive 
    

    SQL Server 与 Windows 及其日志占用大约 32-40GB;我要为交换文件、IIS 和任何临时文件留出空间)。由于这是网络版,您无法压缩备份以节省空间,这也是备份容量如此之高的部分原因。你可以大手大脚地花几百美元在 SQL 备份上,并且能够每 20 分钟进行一次每周完整、每晚差异和日志备份,这可能会节省一些钱;但还不够值得(在你的例子中)。

    因此,EBS 卷将运行 0.10 美元/月/GB;或者在这种情况下:

       2015         2018     
    
        .60         Unchanged
        .60
       3.00
    +  8.00
    -------
      12.20
    

    这仅适用于 EBS。

    您可以通过选择磁性而不是 SSD 将价格降低一半;但它不会改变微积分 - 你的成本是在实例本身;不在 EBS 卷 IO 中。

    这还假设您使用的是具有公共 IP 和主机名的公共 EC2 实例;并不是说您正在使用代理服务器并将您的网络服务器和 SQL Server 隐藏在该代理后面。你会为此付出更多。如果您想拍摄图像或 EBS 卷的快照并将它们存储在 S3 中($.03 / GB),您还需要支付更多费用。

    这些都不包括任何实际的带宽成本。

    您可以这样做的最低费用是每月 220 美元,这是假设几乎没有流量。根据实际使用情况,它可能接近每月 250 美元。

    如果您决定转储管理自己的 SQL Server 实例,它可能会更便宜。您的 Web 层只需要一个 EC2 实例和一个 SQL Server RDS 实例。这是费用:

    Linux T2.Micro + SQL Server RDS

    Linux T2.Micro(Web 层):

        2015         2018    
    
        .013        .0116
     x   731     x    731    
     -------     --------
       9.013         8.47   
    

    EBS 卷(系统 + Web,1 卷):

       2015      2018   
    
         10      unchanged
    x   .10
    -------
       1.00
    

    (假设您的 Linux 发行版 + Web 文件只需要 10GB)

    SQL Server RDS:

           2015        2018   
    
    db.t2.micro     db.t2.micro 
    
           .022        .022
       x    731    x    731   
       --------    --------
          16.08       16.08       
    

    所以你仍然需要每月支付 26.09 美元(更像是每月 30 美元,因为软糖因素)。

    这些价​​格适用于 US-EAST-1。目前 RDS 最便宜的是爱尔兰-欧盟。以下是这些价格:

    Linux T2.Micro + SQL server RDS(爱尔兰-欧盟)

       2015       2015         2018       2018
        RDS        EC2          RDS        EC2
        
       .018       .014         .023      .0126
     x  731     x  731       x  731    x   731 
     ------     ------       ------      -------
      13.16      10.23        16.81       9.21  
    

    添加 EBS 批量成本;您每月的费用约为 26-27 美元(包括带宽)。因此,如果您继续使用 SQL Server,这是迄今为止您最便宜的选择。

    如果您决定放弃 SQL Server(并留在爱尔兰-欧盟 AZ),并选择最便宜的 RDS 数据库服务器选项(mySQL):

    Linux T2.Micro + MySQL RDS(爱尔兰-欧盟)

           2015            2018  
    db.t2.micro     db.t2.micro     
                                          
          0.018        unchanged  
       x    731
       --------
          13.16
    

    所以看来,如果你留在欧盟,RDS 上的 SQL Server 和 MySQL 的价格是一样的。在 RDS 上使用 MySQL 的 US-East-1 定价每月减去 0.73 美元。

    如果您选择使用像 SQLLite 这样的内存数据库,则可以进一步降低此成本。您需要更大的 EBS 卷(我会加倍),但这只会使您每月的成本增加 1.00 美元,而且您可以满足您的标准并且只需为 Linux t2.micro 付费:

    Linux T2 Micro(Web 层)+ SQLite DB:

        2015       2018 (EU-Ireland)
                       
        .013         .0126  
     x   731       x   731
     -------       -------
        9.50          9.21  
     +  2.00        + 2.00
     -------        ------
       11.50         11.21  
    

    这将符合您每月 20 美元以下托管的标准。但是,没有关于性能的说明。

    VCSJones (on twitter) brought up SQL Server Express:

    SQL Server Express / Windows 2012 R2 EC2 实例

    如果您完全使用 SQL Server(这很酷,我也喜欢 SQL Server),您可以拥有一个 SQL Server Express 实例,此时您需要支付实例的费用。 SQL Server Express caps your database at 10GB.

         2015          2018  
    
     T2.Micro      T2.Micro
         .018         0.017
      x   731      x    731  
      -------      --------
      ~ 13.16       ~ 12.43  
    

    加上上面相同的 EBS 编号 (12.20),您每月的定价约为 26 美元。

    参考资料:

    【讨论】:

    • 感谢您的出色回复,内容丰富且乐于助人。有助于指出正确的方向。就 SQL Server 与 MySQL 而言,我介于两者之间,出于成本考虑考虑使用 MySQL。我设想在很远的将来可能会将后端数据库集成到 SQL Server 上的另一个现有数据库中,但是当它出现时,也许我会解决这个令人头疼的问题。感谢您帮助我完善我的问题,我希望这个帖子可以帮助很多其他人。
    • 如果不需要 24/7 运行,也可以考虑 schedule your instances on/off