本系列的 开发教程:如何将Linux应用程序迁移到Amazon云 介绍了如何将一个物理服务器迁移到一个物理云服务器中。尽管所有的工作都已完成,但是,应用程序并没有明显的改善,这主要是因为引入了更多的单点故障。 甚至在单个物理服务器上,您都有冗余电源、错误纠正 RAM、冗余磁盘和丰富的故障前诊断指示器监控。在一个云服务器上,您不知道您已经获取了什么 — 或者更确切地说,您不知道您访问了什么。云服务器通常是可靠的,但是采取预防措施是很明智的,特别是自从 Amazon 提供额外服务来提高可靠性之后。 当部署到一个云计算环境之后,最好做好有可能会丢失一个虚拟实例的准备。这不是说云服务是不可靠的,而是说您可能遇到的故障类型不像您在物理环境中所遇到的。因此您应该将智能性引入您的应用程序,处理通信损耗并在多个服务器之间实现伸缩性。不管您要构建什么类型的环境,这种思想将有助于您构建一个更好的应用程序。 在本文中,您将了解如何使用 Amazon Elastic Block Store (EBS) 改进数据库的短暂存储,您可以通过建立备份进一步提高数据保护功能。跨越多个实例进行负载均衡可防止应用程序服务器丢失,并允许您从各种故障中恢复。 图 1 展示了您上次中断的应用程序的架构。 图 1. 当前架构 所有对象都在一个 Amazon Elastic Compute Cloud (Amazon EC2) 实例上。前端 Web 服务器、nginx 、请求多个混合实例的代理或服务器静态文件本身。混合应用程序服务器在同一个主机上访问一个 PostgreSQL 数据库。 实例存储是 Amazon EC2 与 VMware 和 Xen 等虚拟化技术之间最大的不同。我们知道,一个 Amazon EC2 实例提供一个 10GB 的固定根分区和一个实例磁盘,后者的大小取决于启动的实例的类型。根分区是在启动时从 Amazon Machine Image (AMI) 克隆的,实例存储为空。当您关闭您的服务器时,您的实例存储丢失。 Amazon 的初始位置告诉人们应该频繁地备份他们的服务器到 Amazon Simple Storage Service (Amazon S3)。如果您的服务器崩溃,那么您应该有其他的服务器承受负载,或者您可以从 Amazon S3 获取数据。最终,Amazon 推出了 EBS,这是一个提供永久性磁盘的服务 。如果您的服务器崩溃,您可以将 EBS 卷附加到另一个服务器上。Amazon 甚至构建一个快照来简化备份。 SmallPayroll 应用程序中数据库服务器的主要问题是一个单点故障。有两个常见的方法可以对其进行校正。一个是构建两个能够彼此接管的数据库;另一个是减少潜在停机时间让一切更为合理。第一种方法有最少的停机时间但是较为复杂,第二种方法在这种情况下更为实用。如果数据库服务器崩溃,将启动一个新的实例 替换它。EBS 考虑了数据安全性。从错误发现到启动一个新数据库服务器并重新指向客户机总共用时应该低于 10 分钟。作为一点优势是,EBS 存储比起实例存储有一个较高的 I/O 容量。 要使用 EBS,应该执行以下步骤:
建立 EBS 的第一步是通知 Amazon 您想要创建一个卷。您需要知道两件事:您的镜像的大小(千兆字节为单位)和您想要在其中使用镜像的可用性区域。可用性区域 的概念是 Amazon 提出的,用来描述服务器的位置。以 us-east 开始的区域是在北维吉尼亚州,统称为地区。此时,在 us-east 地区有 3 个这样的区域:us-east-1a、us-east-1b 和us-east-1c。每一个可用性区域设计的目的是隔离其他可用性区域中的故障。同一地区的区域彼此仍然很接近,因此它们是低延迟的。 EBS 的一个限制是卷只能挂载到创建它所在的可用性区域中。有办法可以移动它们,但是您必须在同一可用性区域中创建您的卷作为服务器。 运行命令:
在 us-east-1a 区域创建一个 20GB 的卷。如果您不知道您的服务器在哪, 清单 1. 创建 EBS 卷
清单 1 的输出显示了创建的卷以及卷的 ID 为
将这个最新创建的卷附加到服务器实例 现在,您的虚拟服务器有了一个名为 /dev/sdj 的磁盘,像查看普通磁盘那样查看它。对于任何一个磁盘,您需要在原始磁盘上创建一个文件系统。根据需要,您可以有不同的选择:
即使 RAID 和 LVM 提供了有趣的特性,对于一个相对较小的 EBS 卷来说 XFS 也是最简单的选择。您将可以使用 XFS 的冻结特性以及 EBS 快照来进行一致的备份。清单 2 列出了如何创建一个 XFS 文件系统并将其挂载到主机上。 清单 2. 创建和挂载 XFS 文件系统
清单 2 运行 文件系统现在是可用的。即使服务器出现故障,/ebsvol 之下的任何文件都将持续保留。 |
开发进阶:如何提高云中应用程序的可靠性
最新推荐文章于 2024-06-13 21:12:59 发布
摘要: 本文主要探究如何通过采用一个负载均衡器和永久性磁盘使您的应用程序更为健壮。您将使用多个服务器并了解如何安全地备份您的数据。 ...
<!--[diy=diycontenttop]--><!--[/diy]-->