我喜欢使用生产,登台和本地开发来设置工具和服务。我想使用Amazon Redshift,对于一个柱状商店数据库来说,每月180美元的起价似乎相当合理,但实际上我是否需要将其视为每月180美元的环境?有没有办法为Redshift提供免费的升级和本地环境?
能够针对本地实例进行开发而不是依赖于网络也很好。我认为Redshift不可能。
使用Redshift时,如何使本地开发更轻松,更快速,更便宜?
答案 0 :(得分:16)
除了John Rotenstiens之外,如果您决定运行第二个集群进行分段,它还可以说明如何降低成本,还有一些其他选项,例如当您的用例非关键任务时。
由于Redshift是postgres 8的一个分支,您可以使用亚马逊提供的postgresql 8.4 JDBC或ODBC驱动程序,并将它们指向本地运行的postgres 8实例。这在开发期间很有效,因为这里的工作通常适用于您的生产系统(有一些例外)。
另一个选项是在Redshift群集上有一个单独的表来运行非生产活动。这可能对您的测试套件和“最终测试”开发有好处。
然后,您可以将部署分阶段进入生产阶段,并在完全部署之前监控暂存环境中的问题。
答案 1 :(得分:15)
Amazon Redshift专门用于在AWS基础架构上运行。它不能下载。 (有趣的是,Amazon DynamoDB确实有一个可下载的版本用于开发目的。)
最便宜的选择可能是关闭你的Dev&每晚测试实例和周末。在删除群集之前拍摄快照,然后根据快照在第二天早上创建群集。这可以通过AWS命令行界面(CLI)自动完成,从而可以轻松地使用cron或计划任务进行计划。
您还可以拥有测试数据的快照并每天早上恢复该快照,这意味着测试数据库不会填满测试用例。
另一项成本节省可能是减少非生产系统的节点数。查询将运行得更慢,存储总量将减少,但它可能更具成本效益。甚至使用“密集存储”2TB节点而不是几个“密集计算”SSD实例 - 它们将在更少的节点上提供更多存储。
答案 2 :(得分:15)
另一个降低成本的解决方案是将每个数据库视为单个群集中的环境。数据库不需要任何费用,您可以60 of them in a cluster
我们尝试过Postgres-as-emulator解决方案,但它确实很好,但是
我们暂时放弃了这一点,但随着我们变得越来越大,我们可能不得不使用混合解决方案,其中验收测试& staging是Redshift中的数据库,而开发人员则回到使用Postgres。
答案 3 :(得分:1)
这是在不支付云服务费用的情况下,本地,离线访问所有AWS服务的最佳选择。本地堆栈!
https://github.com/localstack/localstack
支持所有主要的AWS服务,例如Redshift,S3,DynamoDB,cloudwatch等。
您可以在所有非产品环境中使用此功能,而只需为生产AWS服务付费