我想在 EC2 服务器上托管 5 个域和 2 个 mySQL 数据库。我已经了解基础知识并可以管理服务器,但我从未使用过 EC2。我读到过,当关闭或重启时,数据可能会丢失,所以这就是我想要避免的。我可以处理每月 5-10 分钟甚至 20 分钟的停机时间,但我不想有几个小时或几天的停机时间。
到目前为止,我的想法是这样的:
- 为名称服务器创建 2 个弹性 IP。
- 创建一个 EC2 实例,用于托管文件和数据库。
- 我会安装 WHM / CPanel 以便于管理。
- 我会每 3 小时对所有内容进行一次离服务器备份。
- 服务器上的大多数文件很少更改。所有图像都托管在 S3 和 Cloudfront 上,所以我不介意恢复 3 小时前的内容。
有没有办法在 Amazon 上每隔 X 小时拍摄一次“快照”,并且在服务器出现故障时轻松恢复它们?
我认为如果它确实下降了,我需要做的就是:
- 恢复快照。
- 将 IP 添加回新实例。
我是否遗漏了什么?谢谢 :)
答案1
您不需要托管自己的名称服务器,因此您不需要弹性 IP。使用 Route 53 或您的域名注册商名称服务器作为 DNS。只需注册一个弹性 IP 并将所有域的 DNS 指向它。考虑将您的 DNS 放入云Flare,这将提供一些针对攻击的保护,也可以作为 CDN/缓存。他们有免费套餐。
使用 EBS 快照备份数据。如果你想异地备份,那就比较困难了。我使用阁楼,我使用 Dropbox 脚本将其从服务器上删除。您可以轻松编写常规 EBS 快照脚本,它们是差异备份,因此磁盘使用量最小。除非数据至关重要,否则每三个小时备份一次就过于频繁了,我每月都会备份一次。如果您的数据确实至关重要,您可能应该考虑在不同的可用区域使用服务器。
只有在停止或终止实例时才会丢失实例存储,重新启动时不会丢失。但是,如果服务器因某些未知原因(如硬件故障)停止,您可能会丢失实例存储。不要将实例存储用于任何未持久化的内容,请使用 EBS。如果您的服务器停止,您只需启动它,但服务器停止的情况很少见。
您还可以使用AWS 弹性文件系统,如果您希望在实例之间共享文件系统。这对于 PHP 脚本、上传的图像等非常有用,它比 S3 更易于使用。