我计划仅将Amazon EC2主机用于MemCache.My Web应用程序将驻留在共享托管服务器上,并将与Ec2通信以查询Memcache.这个设置的性能如何?
此致,Mugil.
不要批评你选择的架构,但听起来你错放了你的优先事项.Memcache不需要一个巨大的盒子来运行; 它只需要你愿意提供的内存.它的好处来自它提供的速度,同时向/从它推送和拉取信息.将您的MC盒子放在内部网络之外 - EC2与否 - 基本上会杀死开始使用MC盒子的效率.假设您在数据库请求中保存100毫秒,但EC2的延迟为50毫秒.你仍然在浪费49毫秒,否则你可以利用它.
共享主机是(对于许多大型应用程序)绝对的废话.如果你有一个足够大的项目来为你的CACHING服务要求EC2盒子的马力,那么你肯定做错了什么.这是我的建议:将您的应用程序移到EC2并在同一个盒子上托管Memcached实例.开销并不可怕,如果您计划扩展缓存,只需启动另一个框并将应用程序指向该 MC实例.
另一个选择是使用较便宜的VPS主机,如Linode或Slicehost.两者都在社区中享有很高的声誉.如果我没弄错的话,Foursquare的部分内容甚至可以使用Slicehost托管.这些都是非常便宜的VPS解决方案(与相当多的共享解决方案相比;使用类似MediaTemple的点对点查看它们)并且可以非常容易地进行扩展.假设您从MC实例开始使用20美元的Linode框.因为你不在EC2上,所以你可以节省50美元/月以外的费用.如果你将你的主机移动到另一个20美元/月的Linode,你可能支付相同的金额(如果你在共享主机上可能多一点).此外,如果您将Linodes放在同一个数据中心,那么Web应用程序和缓存之间的延迟几乎为零.
在路上,让我们说你想要提升你的MC盒子.只需启动另一个运行MC的盒子并删除旧盒子.你可以关闭一个并调整它,但是你有停机时间(但它仍然是一个选项).
希望这可以帮助!
马特