【问题标题】:AWS : Splitting software & data in different volumesAWS:将软件和数据拆分为不同的卷
【发布时间】:2015-06-30 16:45:02
【问题描述】:

AWS 建议将数据和操作系统保存在 separate EBS volumes。我有一个使用 EBS 卷在 EC2 上运行的网络服务器。在裸机上,我安装了以下内容:

- 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,哪些项目无关紧要?我的理解是服务器代码和日志文件应该移动到具有更高 IOPS 的单独 EBS 卷。还是应该将我所有的东西(除了我安装在 /etc 中的软件,即网络服务器)移动到具有更好 IOPS 的单独卷?

【问题讨论】:

  • IOPS 是个问题吗?如果不坚持一卷。
  • @datasage IOPS 目前不是问题,但早期分区更容易,成本也不高。

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


【解决方案1】:

我建议您为代码、日志和维护使用单独的 EBS 卷,以防您需要将其移动到另一台服务器。与构建整个服务器相比,这可以让您获得更快的 TTR(解决时间)。

代码不应该在过去的部署中发生很大变化,因此我将在这里专注于通用 SSD,并着眼于缓存层(Varnish(整页缓存)和 CDN(静态资产))而不是拥有磁盘 I /O 问题。 CDN 是一个快速的胜利,并减轻了大多数用于读取静态资产的 I/O。在 50GB 时,您可以获得 150 IOPS,并减少静态资产; I/O 应该没问题。

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

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

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

【讨论】:

  • 您回答中的量化是一个很大的帮助。维护脚本会产生微不足道的流量,只是一些更新和健全性检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2018-04-26
  • 1970-01-01
  • 2015-07-21
  • 2020-09-11
  • 2018-01-09
相关资源
最近更新 更多