一段时间以来,我一直在使用AWS进行简单的Web应用程序。 我注意到应用程序的使用成本太高了:
EC2 t2.micro
:$ 28 /月 LoadBalancer-hour (or partial hour)
:$ 37 RDS db.m1.small instance hour (or partial hour) running MySQL
:$ 50 $ 100 + /月全部用于每天有5-10个用户的站点。
我怎样才能减less我现有的EC2和RDS实例,消除或减less负载平衡的需求,而不用重新设置所有这些工作?
基本上,我需要完成这些事情:
你不需要ELB或RDS。 请注意,ELB提供了一些安全性,可以防止一些第4层和第7层的攻击。 您可以select使用CloudFlare(免费)或CloudFront(廉价)来取代ELB,或者您可以不使用。 这是很便宜的安全,它从您的服务器卸载工作。
我在t2.nano上运行Nginx,PHP 5.6和MySQL。 在过去的24小时内,我已经有1500个用户和15000个请求到15个左右的网站。 一些静态资源由CDNcaching,但是所有页面都访问了服务器。 根据CloudWatch,服务器使用CPU的2%左右,平均几乎不到5分钟的时间。
我有一个关于如何设置这一切的教程 。
我做的关键事情是:
移民
迁移MySQL的最好方法是使用mysqldump。 在您的服务器上设置MySQL并将其configuration为低RAM,添加页面文件,将数据库从RDS转储到服务器上的文件中,然后将数据库上传到服务器。 您可能需要再次设置用户和权限。 对RDS数据库做最后的手动快照,然后closuresRDS。 几个月后,如果一切正常,请返回并删除您的RDS快照。
要更改EC2实例的大小,请停止它,右键单击并更改实例大小,然后再次启动它。 这需要一两分钟。 如果你愿意,你可以通过API来完成。
问题的答案
HTTPS :“似乎为了使用AWS的https,我需要负载均衡器为我的EC2实例”
有很多方法可以将https添加到EC2服务器。
请注意,如果您的域configuration为将stream量路由到ELB,则需要稍微改变一下。 最简单的方法可能是为您的EC2实例获取弹性IP地址,并将该弹性IP作为Alogging放入DNSconfiguration中。
实例大小 :由于我们没有足够的信息,因此我无法给出具体的答案。 从t2.micro转换到t2.nano应该很容易,因为它们是相同的技术,只是更小。
如果你从另一个实例types转移,我会说检查你的AMI,也许这是一个旧的PV AMI,而不是一个新的HVM AMI。 如果你编辑你的问题,以提供更多的信息,我可以有另一个想法。
几个选项要考虑 –
t2.nano
db.m1.small
实例是在启用了multi-az
选项选项的情况下设置的,您可以修改相同的选项并禁用multi-az
选项选项,因为它可以将您的RDS实例成本降低到当前成本的一半。 如果您仍想降低成本,那么可以考虑EC2 现货实例或EC2和RDS的预留实例 (如果适合您的需要)。
您可以select将您的EC2实例的大小减小到t2.nano,因为您并不期待这么多的stream量。
您也可以停止使用您的负载均衡器。 在这方面,我不认为它在调节传入stream量方面起到任何作用。
您也可以将您的RDS减less到db.t2.micro 。 我在这个尺寸的RDS上花了大约20美元。 也不要使用多可用区。
虽然需要更多的工作,但您也可以select运行t2.micro EC2并自行设置MySQL,并完全停止使用RDS。