我刚刚开始使用 S3 为我的 Django 应用程序存储图像,该应用程序托管在 Rackspace 上。我不得不查看 EC2,因为它很明显;在上传文件时将它们移动到 S3 会更快。我必须承认这让我感到困惑。
因此,如果我将实例存储用于前端,我的 Django 代码在哪里?它说如果它重新启动我会丢失我的数据并且我认为我的代码也是我的数据。我是否挂载 EBS 卷来存储代码?
对于 MySQL 后端,我是否将 EBS 支持的实例和实例存储用于前端,我将在负载打开和关闭时启动和停止。
在启动和关闭新前端时如何进行负载平衡。我之前使用过 nginx,但我猜亚马逊有一些使这变得多余的东西。
我看到人们提到的所有 EC2 管理命令都在哪里运行?在实例本身还是在我用来开发和测试的 Windows 机器上?
有两种存储可以附加到实例:临时存储和弹性块存储 (EBS)。临时存储,顾名思义,是临时的——并且只在实例运行时存在(如果实例停止或终止,它就会被销毁)。临时存储不能在实例之间“转移”(即从一个实例分离并附加到另一个实例)。实例存储数据在不停止实例的重新启动(即从控制台运行重新启动)中确实存在。EBS 存储独立于实例而持久存在,并且 EBS 卷可以在实例之间(在同一可用区内)传输。此外,您可以拍摄允许差异化的 EBS 卷的快照(即 delta) 存储卷内容的压缩图像(允许您轻松地在不同区域创建新卷等)。符合临时存储条件的实例无需额外付费即可获得。另一方面,EBS 存储按 a) 供应量和 b) I/O 使用量计费。
Instance-store 使用 S3 来存储 AMI 数据,并提供一个临时根以及额外的临时存储。在任务需要大量临时存储而永久保留很少数据的情况下,这可能很好。一般来说,临时存储适用于临时文件和交换空间。如果您将数据存储在临时卷上,它可能应该在启动时从“主源”复制,并且数据(在临时磁盘上)应该没有价值。(例如,如果您正在运行一个应用程序,您可以将您的代码存储在外部,在服务器启动时将最新版本下载到临时磁盘,然后在服务器本地运行该应用程序,所有数据存储在其他地方(例如 EBS、RDS , 等等。))
通常,推荐的方法是使用 EBS——既作为根卷,又作为数据的存储介质。EBS 允许您轻松更改实例类型、修改根分区大小、备份您的数据,并且由于您可以将 EBS 卷附加到其他正在运行的实例,因此极大地方便了处理问题。使用 EBS,您可以将代码直接存储在 EBS 卷上,并且您所做的任何更改都将保留。此外,您可以将快照附加到实例,这样所有启动的实例在其附加的 EBS 卷上都将具有相同的数据(即数据源自快照)。除非您有可以从实例存储架构中受益的特定需求,否则 EBS 是您的最佳选择。
(还有另一种选择,但对于代码/数据库来说,这通常是不切实际的。您可以使用 Fuse 将 S3 存储桶挂载为本地文件系统 - 优点是无限的、未配置的存储(即您的文件可以增长而无需预先分配一定量的空间)- 可能,这对于可能由用户贡献的上传、图片等非常有用。缺点是性能-写入 S3 的速度不如 EBS 或临时存储快,存在明显的延迟它对于应用程序的核心组件是不可接受的。)
回顾:代码必须在本地可用——要么将其存储在 EBS 上(推荐),要么将其下载到服务器的临时磁盘(即您的代码被复制到机器以供使用,但位于其他地方)。
对于 MySQL,如果您要管理自己的 MySQL,或者您可以使用 Amazon 的 RDS,则需要一个 EBS 卷。有些人已经注意到,运行自己的 MySQL 服务器可以以更低的成本获得更好的性能。此处采用 EBS 的原因是,维护临时磁盘上不断变化的数据库的最新备份将极其困难。这意味着如果您使用临时磁盘并且实例崩溃,您将丢失自上次备份以来的所有数据,这通常是不可接受的。数据库实际上不能存储在 S3 上,因为性能不足以实现该目的。
AWS 提供“弹性负载均衡器”,可在您关联的实例之间分配负载。它能够在区域之间分配负载,并尽量避免单点故障和单个实例的限制(例如网络 I/O)。它不支持“静态”IP(在 AWS 上称为弹性 IP),因此您必须使用 CNAME 来访问它(即您不能将 ELB 映射到您的根域)。此外,源 IP 通常设置为 ELB IP,这意味着您需要使用“X-Forwarded-For”标头进行日志/分析。如果您愿意,您仍然可以使用 nginx 或 HAproxy 作为负载平衡器,但是,请记住,这会导致所有网络流量通过该单个实例,如果您的应用程序需要高带宽,这通常最终会成为瓶颈。
最后,AWS 命令可以从任何地方运行 - 它们通过您传递给它们的凭证键入您的账户,并且针对特定资源(例如实例、EBS 卷等)运行,因为您将为给定的命令。只有少数需要(本地)访问相关文件的命令(例如捆绑/上传 AMI)必须从特定机器(即可以访问所需文件的机器)运行。即使是引用附加到实例的资源的命令(例如拍摄 EBS 卷的快照)也可以从任何安装了工具的机器上运行(有问题的实例、您的开发箱、另一个实例等)
| 归档时间: |
|
| 查看次数: |
1413 次 |
| 最近记录: |