EC2 上的 LAMP 服务器(Amazon Linux 微实例)

Posted

技术标签:

【中文标题】EC2 上的 LAMP 服务器(Amazon Linux 微实例)【英文标题】:LAMP server on EC2 (Amazon Linux Micro Instance) 【发布时间】:2011-11-17 22:06:22 【问题描述】:

我已经启动了一个基本的 32 位 Amazon Linux AMI 实例,它有一个 8GB 卷作为它的根设备。如果我终止它,EBS 卷也会被破坏。我想知道的是,如果服务器崩溃,我的数据是否受到保护(例如,apache 文档根目录或 mysql 数据)?很多教程似乎都表明应该创建另一个 EBS 卷并将我的数据存储在上面,但我真的不明白为什么需要两个 EBS 卷?

或者当前设置是否适合网络服务器设置?

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

当您启动 EC2 实例时,根卷是临时的 - 也就是说,当实例终止时,根卷将被销毁**(带走您放在其中的任何数据)。无论您如何对该临时卷进行分区以及将数据存放在何处都无关紧要 - 当它被销毁时,该卷中包含的所有内容都会丢失。

因此,如果卷中的数据完全是暂时的,并且下次需要时可以从其他地方完全恢复/检索,那就没有问题;终止实例,然后启动一个新实例并重新获取继续工作所需的数据。

但是,如果数据不是暂时的,并且需要持久化以便在实例崩溃后可以继续工作(我所说的崩溃,我的意思是终止实例或以其他方式使其无法运行和无法恢复),那么您的数据不得位于根卷上,而应位于附加到实例的另一个 EBS 卷上。如果该实例终止或中断不可挽回,您的数据在该其他卷上是安全的 - 然后可以将其重新附加到新实例以继续工作。

** 例外情况是您的实例由 EBS 支持并且您交换了根卷 - 在这种情况下,根卷在实例终止后被留下,因为它不是 AMI 创建的“包​​”的一部分什么时候开始的。

【讨论】:

感谢乔纳斯。如果我没看错的话,我的下一步应该是启动另一个 EBS 卷,将它附加到我当前的 EBS 支持的实例,创建文件系统并挂载它,然后配置 Apache 和 MySQL 以将它们的数据存储在这个新的 EBS 上体积。一旦这一切都完成了,我可以考虑我的数据有多安全(相对而言)。再次感谢! 是的,这将是我的建议。至于数据“安全”,这是一个信任问题——EBS 基础架构设计为始终在线和备份,但没有任何保证。事实上,上个月 EC2 在欧盟地区经历了一场重大的 EBS 灾难,导致大量数据丢失。这是第一次发生,非常不寻常,但证明 99.999% 的安全并不是 100%。如果数据是关键任务,请按照我和其他人的做法定期将其导出到其他地方作为故障保护(一个简单的 FTP 到另一个站点可能是一个很好的起点)。【参考方案2】:

如果您的服务器损坏并且您无法启动它,则需要另一个卷。在这种情况下,您只需删除初始服务器,创建第二个服务器并将附加存储附加到新服务器。您不能将一台服务器的根卷附加到另一台服务器。

【讨论】:

"您不能将一台服务器的根卷附加到另一台服务器。" -- 是的,如果实例由 EBS 支持,您可以。停止实例 #1,分离根卷,附加到实例 #2(作为根存储或辅助存储)。

以上是关于EC2 上的 LAMP 服务器(Amazon Linux 微实例)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Amazon EC2 实例发送邮件

从远程服务器连接到 Amazon EC2 上的 mysql

连接到amazon ec2上的远程postgresql服务器

如何在 Amazon EC2 实例中启用根 SSH 访问?

Mysql 无法通过 Amazon EC2 上的套接字连接到本地服务器

使用 FCM 解析部署在 Amazon EC2 Android 通知上的服务器