【问题标题】:Autoscaling ec2 instance without loss of old data在不丢失旧数据的情况下自动缩放 ec2 实例
【发布时间】:2013-03-01 21:58:04
【问题描述】:

最近我的网站转移到了亚马逊。

  1. 我创建了 EC2 实例。在 /var/www/http 文件夹中安装灯和设置 CodeIgnitor。 结构
  2. Codeignitor 文件夹我的文件夹名为“UPLOAD”。此文件夹用于上传图片和文件。

  3. 我从 EC2 实例制作 AMI 映像。

  4. 我已设置 Ec2 实例的自动缩放。

  5. 当我的旧 ec2 实例失败时,会自动创建新实例。但是我从旧 ec2 实例上的文件夹“上传”中的所有数据都丢失了。

  6. 我想将 codeignitor 中的“UPLOAD”文件夹与 ec2 实例分开。 因此,无论何时创建新实例,它都会获得 UPLOAD 文件夹及其内容而不会丢失。

我想分离这个上传文件夹。因此,当创建新实例时,它将获取此数据。 如何做到这一点。
感谢您的进步。

注意。我在 Amazon RDS 上使用过 MYSQL。

【问题讨论】:

  • 您想了解无共享架构。您的用户数据需要移动到 s3 或其他存储机制。

标签: amazon-web-services autoscaling


【解决方案1】:

您可以使用共享的Elastic Block Storage 挂载目录。

如果您使用 AWS 控制台手动配置堆栈,请转到控制台中的 EC2 服务,然后转到 Elastic Block Storage -> 卷 -> 创建卷。在您的启动配置中,您可以绑定到此存储设备。

如果您使用命令行工具 as-create-launch-config 创建启动配置,则需要参数

--block-device-mapping "key1=value1,key2=value2..."

如果您使用Cloudformation 来配置您的堆栈,请参阅this template 以获取指导。

这假设 Codeignitor 可以配置为说明其 UPLOAD 目录的位置。

【讨论】:

【解决方案2】:

正如 Mike 所说,您可以使用 EBS,但也可以使用 Amazon Simple Storage Service (S3) 来存储图像。

这样,每当实例启动时,它就可以访问之前从 S3 上传的所有图像。当然,这意味着您必须更改上传代码,以使用 AWS API 而不是文件系统将图像存储到 S3。

【讨论】:

  • @talai:谢谢Talai。 PHP(codeignitor)S3或EBS可以快速访问什么?是否有任何链接可以指导如何通过 Codeignitor 在 S3 上存储图像。
  • 我不知道 Codeignitor,但您可以使用 PHP SDK for Amazon AWS。在我看来,EBS 比 S3 更快。不同之处在于您可以让任何人从任何地方访问存储在 S3 上的文件(如果您愿意,可以配置安全设置),但对于 EBS,您必须通过 EC2 实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 2018-12-09
相关资源
最近更新 更多