【问题标题】:How to update ec2 using terraform without destroying or losing data from the ec2如何在不破坏或丢失 ec2 数据的情况下使用 terraform 更新 ec2
【发布时间】:2021-04-14 20:11:00
【问题描述】:

Terraform 新手。前几天试验了很多。仍在尝试了解其中的一些行为。

我创建了一个带有网络服务器的 AWS 实例,然后我想通过添加一些标签和密钥对来更新它。我注意到 Terraform 正在销毁实例并重新创建它。

我可以想象这样一种情况,我有一些服务器在生产中运行一些 web 应用程序,我想重命名它。然后基本上它会破坏并重新创建我的服务器。这意味着我将在“/var/www/html”中丢失我的项目数据虽然我知道这是 Terraform 的工作方式,但我看不到这里的用途。

除了在更新 terraform 模块之前备份项目文件夹之外,这里的解决方案是什么?

【问题讨论】:

    标签: apache amazon-ec2 centos terraform devops


    【解决方案1】:

    解决方案是将应用程序和实例设计为无状态。这意味着实例上没有存储任何状态信息(例如用户数据、会话、数据库)。因此,您可以随时终止您的实例(AWS 有时也可以这样做),然后重新创建它,而不会影响您的数据和应用程序。

    无状态是在 AWS 上开发容错、高可用性和可扩展应用程序的主要方式。

    因此,如果您的应用程序的开发方式使其“项目数据”取决于实例的生命周期,那么您可能会重新考虑在云环境中部署应用程序的设计和方法。具体来说,为了存储您的数据,您通常会将其存储在实例之外,常见的选择是 S3 和 EFS。任何数据库,也都是外部的。

    我建议您查看 AWS 开发的 AWS Well-Architected and the Five Pillars,其中涵盖了这些以及许多其他有用的主题。

    【讨论】:

    • 能否将 S3 挂载用作 Apache 或任何其他 Web 服务器的文档根目录,如果可能,我该怎么做?
    • @AdrinoMarz 您设置 apache 及其所有设置和应用程序文件的方式是通过 userdata。 S3 是对象存储,而不是文件系统。因此,它适用于存储图像。 EFS 是文件系统。
    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2019-12-01
    • 2012-01-20
    • 2019-01-24
    • 1970-01-01
    • 2010-10-18
    • 2019-06-04
    • 2017-02-17
    相关资源
    最近更新 更多