如何缩小AWS EC2 和 RDS 实例的规模

如何缩小AWS EC2 和 RDS 实例的规模

我已经使用 AWS 开发了一个简单的 Web 应用程序一段时间。我注意到,对于该应用程序的使用来说,成本太高了:

  • EC2 t2.micro:28 美元/月
  • LoadBalancer-hour (or partial hour):37美元
  • RDS db.m1.small instance hour (or partial hour) running MySQL:50美元

对于每天有 5-10 个用户的网站来说,每月的费用为 100 美元以上。

如何缩小现有的 EC2 和 RDS 实例并消除或减少负载平衡需求,而无需重新进行所有设置工作?


基本上,我需要完成这些事情:

  • 通过 HTTPS 提供我的前端静态应用程序(目前在 S3 中)(目前使用 Cloudfront 来执行此操作)
  • 通过 HTTPS 提供我的后端 API(目前在 ElasticBeanstalk 中)(我被告知我需要为此进行负载平衡)
  • 托管数据库(当前使用带有 ElasticBeanstalk 的 AWS RDS)
  • 目前用户不多,所以我需要比每月 80 美元以上的 RDS 和 EC2 API 托管更便宜的托管服务。这些服务每月总共需要 30 美元左右。我完全不认为需要负载平衡,但就像我提到的,我认为我需要它用于 https?

答案1

您不需要 ELB 或 RDS。请注意,ELB 提供了一定的安全性,可以防止某些第 4 层和第 7 层攻击。您可以选择使用 CloudFlare(免费)或 CloudFront(便宜)来替换 ELB,或者您可以不用它。它是一种廉价的安全性,并且可以减轻您服务器的工作负担。

我在 t2.nano 上运行 Nginx、PHP 5.6 和 MySQL。在过去 24 小时内,我有 1500 名用户和 15,000 个请求,这些请求来自大约 15 个网站。一些静态资源被 CDN 缓存,但所有页面都访问了服务器。根据 CloudWatch 的数据,该服务器的 CPU 使用率约为 2%,在 5 分钟内,平均值很少超过这个数字。

我有教程关于我如何设置这一切。

我做的主要事情是:

  • 对匿名用户使用 Nginx 页面缓存
  • 关闭 MySQL 性能模式(在我的移民文章
  • 添加 512MB交换空间(它用的并不多)。
  • 使用 Let's Encrypt 进行 https 加密acmetool

移民

迁移 MySQL 的最佳方法是使用 mysqldump。在您的服务器上设置 MySQL 并将其配置为低 RAM,添加页面文件,将数据库从 RDS 转储到服务器上的文件中,然后将数据库上传到您的服务器。您可能需要再次设置用户和权限。对您的 RDS 数据库进行最后的手动快照,然后关闭 RDS。如果一切正常,几个月后返回并删除您的 RDS 快照。

要更改 EC2 实例的大小,请停止它,右键单击并更改实例大小,然后重新启动它。这需要一两分钟。如果您愿意,可以通过 API 进行操作。

问题答案

HTTPS:“看起来,为了在 AWS 上使用 https,我需要为我的 EC2 实例安装负载均衡器”

有很多方法可以为 EC2 服务器添加 https。

  1. 使用带有 Amazon 证书的 ELB 很容易。
  2. 从证书颁发机构(有很多)申请证书并配置您的 Web 服务器以使用它。我有一个教程,介绍如何使用免费的 let's encrypt 证书和 nginx 执行此操作这里
  3. 使用云Flare,它可以通过 https 代理您的 http 服务器。您还可以使用 CloudFront 来代理 https 返回 http我相信还有很多其他方法

请注意,如果您已将域配置为将流量路由到 ELB,则需要进行一些更改。最简单的方法可能是为您的 EC2 实例获取弹性 IP 地址,并将该弹性 IP 作为 A 记录放入您的 DNS 配置中。

实例大小:由于我们没有足够的信息,我无法在这里给您一个具体的答案。从 t2.micro 更改为 t2.nano 应该很容易,因为它们采用的是相同的技术,只是尺寸更小。

如果您是从其他实例类型迁移过来的,我建议您检查一下您的 AMI,也许它是一个旧的 PV AMI,而不是较新的 HVM AMI。如果您编辑问题以提供更多信息,我可以再考虑一下。

答案2

需要考虑的几个选择 -

  1. 将您的 EC2 实例降级为t2.nano
  2. 由于您的应用程序没有流量/负载,您可以简单地停止使用 ELB
  3. 我认为您的 RDSdb.m1.small实例已启用multi-az选项,您可以修改相同并禁用multi-az选项,因为它会将您的 RDS 实例成本降低至当前成本的一半。

如果你还想降低成本,可以考虑 EC2竞价实例或者预留实例适用于 EC2 和 RDS(如果适合您的需要)。

答案3

您可以选择将 EC2 实例的大小减少到t2.纳米因为您没有想到会有这么多的流量。

您也可以停止使用负载均衡器。我认为它在调节传入流量方面没有任何用处。

您还可以将 RDS 降低至数据库.t2.micro。我花了大约 20 美元购买这种大小的 RDS。另外不要使用多可用区。

虽然这需要做更多的工作,但你也可以选择运行t2.microEC2 并在那里自行设置 MySQL 并完全停止使用 RDS。

相关内容