【问题标题】:Twig templates on volatile environment (EC2)易变环境 (EC2) 上的 Twig 模板
【发布时间】:2014-07-31 01:53:21
【问题描述】:

我有一个带有 ec2 实例的 Elastic Beanstalk 环境。由于这些是易失的,我们不能依赖它们来存储文件。

这是一个使用 Twig 模板系统的 codeigniter 应用程序,用户可以编辑模板文件。目前这些模板文件存储在文件系统(vps)中。

当我们迁移到弹性 beanstalk 时,我们不再可以像现在那样存储文件模板。

最好的方法是什么? S3?弹性疼痛(memcached)?

【问题讨论】:

  • 用户如何编辑模板文件?用户多久编辑一次模板文件?
  • 它是一个代码编辑器,它将静态文件保存在文件系统上。用户可以随意编辑文件,但前端客户端一直在访问它们。所以这是一项繁重的阅读任务,这就是 Twig 依赖物理文件而不是数据库存储内容的原因。

标签: codeigniter amazon-web-services amazon-ec2 twig amazon-elastic-beanstalk


【解决方案1】:

从您的描述看来,您有两个主要要求 -

  1. 频繁读取访问
  2. 持久的持久性

就像你说的那样,使用文件系统存储对于你的用例来说是不可扩展或不可靠的。

我认为您应该考虑使用由 DynamoDB 支持的 Elasticache。由于您关心持久性,因此单独使用 Elasticache 并不是一个可行的解决方案。 DynamoDB 将为您提供 Elasitcache 不提供的持久性。 DynamoDB 读取具有较低的读/写延迟,因此对于您的用例来说可能会非常快。

Dynamo DB 可以为您提供快速读取和写入。以下是有关此主题的演示文稿,您可能会觉得有帮助:http://dig.csail.mit.edu/2013/Talks/dig-seminar-0926-daniela.pdf

您的 Dynamo DB 架构将取决于您的数据的结构方式,如果您想维护文件编辑历史等。您也可以只将文件存储在使用 Elasticache 缓存的 S3 中,但这可能无法为您提供足够的灵活性.如果您希望能够使用 S3 写入部分文件,则每次编辑文件时都必须重写整个文件。但是使用 Dynamo DB,您可以获得结构化存储的优势,以便您可以按需编辑文件块。同样对于 S3,您必须记住您的读取将最终保持一致性。 Dynamo DB 支持强一致性和最终一致性。

【讨论】:

  • 好的,所以我想我需要测量和基准测试 2 个选项:dynamodb 与通过 s3 的物理存储。这两种选择都由 elasticache 支持。在您看来,什么表现最好?
  • 第三个选项可能是弹性块存储卷 (aws.amazon.com/ebs)。我会“猜测”使用 DynamoDB,您可以使用正确的架构获得非常好的性能。此外,如果您以后想添加高级 IDE 功能,您可以使用 DynamoDB 获得更大的灵活性。
  • 抱歉,我不熟悉 EBS 卷。那会是持久的吗?它和弹性豆茎玩得好吗?
  • "Amazon Elastic Block Store (Amazon EBS) 提供持久的块级存储卷,用于 AWS 云中的 Amazon EC2 实例。每个 Amazon EBS 卷都会在其可用区内自动复制,以保护您免受组件的影响故障,提供高可用性和持久性。” aws.amazon.com/ebs 所以是的,他们是坚持不懈的。这就像在云端拥有一个文件系统。
  • 他们使用豆茎。在此处阅读有关 BlockDeviceMappings 选项设置的信息。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
猜你喜欢
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
相关资源
最近更新 更多