AWS:拆分软件&不同数量的数据

时间:2015-06-30 16:45:02

标签: amazon-web-services amazon-ec2 webserver amazon-ebs provisioned-iops

AWS建议保留数据& separate EBS volumes上的操作系统。我有一个在EC2上运行的带有EBS卷的网络服务器。在裸VM上,我安装以下内容:

- webserver, wsgi, pip & related software/config (some in /etc some in /home/<user>)
- server code & static assets in /var/www/
- log files are written to /var/log/<respective-folder>
- maintenance scripts in /home/<user>/

数据库服务器是独立的。对于网络服务器,上述哪些项目将受益于更高的IOPS以及哪些项目无关紧要?我的理解是服务器代码&amp;应将日志文件移动到具有更高IOPS的单独EBS卷。或者我应该将我的所有内容(除了我在/ etc中安装的软件,即webserver)移动到具有更好IOPS的单独卷中?

1 个答案:

答案 0 :(得分:1)

如果您需要将其移动到另一台服务器,我建议您为代码,日志和维护提供单独的EBS卷。这比你必须构建一个完整的服务器有更快的TTR(解决时间)。

代码不应该在很大程度上改变过去的部署,因此我将在这里专注于通用SSD,并期待一个缓存层(Varnish(整页缓存)和CDN(静态资产))而不是磁盘I / O问题。 CDN是一种快速获胜,可以最大限度地减少读取静态资产的I / O.在50GB时,您可以获得150 IOPS,并减少静态资产; I / O应该没问题。

至于日志,如果你是一个高流量站点,那么你应该在这里专注于I / O,因为你不希望在这里阻塞I / O.这主要关注访问日志而不是错误日志,因为这些日志不应该超过生产系统上的ERROR级别。如果你的流量不高,那么你应该可以使用通用SSD,10GB,你可以获得30 IOPS,这一般就足够了。

您的维护脚本在做什么?如果他们正在生成和输出文件,那么你可以使用SSD,但是如果你需要高I / O,你应该重新访问代码并优化代码,因为这些磁盘会变得昂贵,并且这种成本通常会浪费在间歇运行的维护上

至于你的网络服务器,等等,它应该基于基础设施作为代码,通过OpsWorks或Puppet,并且在I / O方面不需要太多,因为那些通常是基于内存的进程一旦构建并部署。