【问题标题】:How to ensure AWS Elastic Beanstalk is free如何确保 AWS Elastic Beanstalk 是免费的
【发布时间】:2018-01-19 15:01:43
【问题描述】:
我想使用this 教程将带有 PostgreSQL 数据库的 Django webapp 部署到 AWS Elastic Beanstalk,但我对定价感到很困惑。它说它使用 AWS 免费套餐中的服务,但这些服务似乎仅限于每月一定的小时数,那么我如何确保我不会超过该阈值?我如何确保我只使用免费服务?他们甚至需要一张卡在档,所以似乎很难确保我不会被收费。
【问题讨论】:
标签:
amazon-web-services
amazon-elastic-beanstalk
【解决方案1】:
您可以进行以下配置,以确保您免费使用 AWS Elastic Beankstalk 一年。
- 仅对 WebServer 和 RDS 实例使用 Micro 实例。
- 将 WebServer 的最大扩展限制为 1 或使用不自动扩展的独立部署。
- 选择存储时,为 EBS 使用少于 30GB 的空间,并且不要启用预置吞吐量。
除此之外,还有网络、EBS IOPS 等的使用基础成本,其中包括免费配额,而对于轻型用例,成本并不可观。
【解决方案2】:
AWS Free Tier 允许 AWS 账户免费使用一定数量的服务。超出免费层级限制的任何使用都会导致您的信用卡产生费用。
免费套餐旨在提供 AWS 服务的试用版。它不用于生产用途,也没有任何保证方法可以保持在免费限制内。您可以自行监控使用情况。
没有完全免费的 AWS 帐户。
【解决方案3】:
简而言之,您绝对可以确保您的应用程序保持免费,而不是来自 AWS 界面。您必须使用自己的使用监控来确保您保持在其他人所说的免费限制范围内。
正如 Ashan 所说,这是一种非常愚蠢的方法,因为费用是象征性的,而且替代方案是服务损失,但是,AWS 确实提供 API 来帮助您通过 CloudWatch 做到这一点。
CloudWatch 按服务公开几乎所有可计费指标,例如here are the metrics for EC2 和here are the metrics for S3。通过 beanstalk 启动服务后,只需通过 AWS 控制台的计费页面查找您正在使用的所有服务,查找每个服务的 CloudWatch API,然后检查它们。
至少对于 EC2,甚至还有可自定义的警报和操作,包括关闭实例。请参阅 EC2 控制台底部的监控选项卡。不确定,但您可能必须手动将状态更新发送到他们的状态系统以获取其他一些指标。如果是这样,那就没那么难了。您将为某些 IAM 身份设置访问密钥,以便您可以从命令行检查 CloudWatch 内容。然后,您将编写一个监视程序脚本以使用 AWSCLI 在该实例上运行,以定期 ping CloudWatch 并调用您的关闭代码或修改您的状态(如果您超过了配额的某个百分比)。
【解决方案4】:
我在计费首选项菜单中找到了“成本管理首选项”->“接收免费套餐使用提醒”设置。希望这对于使用率低的小型个人项目来说已经足够了。我猜这对于大型项目来说是不够的,因为这只是一个通知。