![AWS 上的 LAMP 服务器硬盘空间不足。有其他选择吗?](https://linux22.com/image/566130/AWS%20%E4%B8%8A%E7%9A%84%20LAMP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A1%AC%E7%9B%98%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3%E3%80%82%E6%9C%89%E5%85%B6%E4%BB%96%E9%80%89%E6%8B%A9%E5%90%97%EF%BC%9F.png)
我在 AWS EC2 上的 EBS Ubuntu 实例上有一个简单的 LAMP 堆栈。
它已经运行了一段时间了,但现在我的硬盘空间开始不足了。
我有什么选择?
我已经附加了一个 EBS 卷并将日志等移动到其中,但 MySQL 数据库仍在继续增长。
我是否应该将数据库移动到附加卷?不过,我对此非常担心。数据库速度目前是 LAMP 堆栈中的性能瓶颈,将数据库移动到 EBS 可能会造成相当大的性能损失(如果将文件移入和移出卷的速度可以作为参考的话?)
答案1
您绝对应该将数据库移动到 EBS 块。这些卷不仅比本地存储更快,而且它们也是持久的。因此,如果/当 EC2 实例停止时,该实例的根文件系统将保持完整,并且在实例重新启动时将继续可用。
在几乎所有情况下,Amazon EBS 卷的延迟和吞吐量都比 Amazon EC2 实例存储好得多。您还可以将多个卷附加到一个实例,并在这些卷之间进行条带化。这是提高 I/O 速率的一种方法,尤其是当您的应用程序对数据集执行大量随机访问时。
确切的性能取决于应用程序(例如随机 I/O 与顺序 I/O 或大请求大小与小请求大小),因此最佳衡量标准是针对卷对您的实际应用程序进行基准测试。由于 Amazon EBS 卷需要网络访问,因此您将在更大的实例中看到更快、更一致的吞吐量性能。
此后,如果您仍然遇到 I/O 瓶颈,您可能需要考虑使用亚马逊 RDS。
答案2
这里有两个选项:
选项1:
将 MySQL 数据库从 EC2 移至远程数据传送系统。它仍然运行 MySQL,你甚至可以选择版本。他们提供移民帮助。
缺点:您需要为额外的实例付费,因为 RDS 实例的收费与 EC2 相同。您还必须忍受一些停机时间。
选项 2:
增加 EBS 卷的大小。
通过 Web 界面,您可以通过以下方式执行此操作: - 停止实例 - 创建卷的快照 - 从快照创建卷,并在提示时指定更大的大小 - 从卷创建 AMI - 启动新 AMI 的实例
但是,我遇到了无法启动新实例的问题。通过 API,您可以按照以下步骤执行此操作Eric Hammond 的说明在这里。
缺点:再次,停机。