如何使用terraform更新ec2而不破坏或丢失ec2中的数据

s4n0splo  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(232)

新的地形。实验了很多过去的日子。仍然试图让我的头周围的一些行为。
我创建了一个带有Web服务器的AWS示例,然后我想通过添加一些标签和密钥对来更新它。我注意到Terraform正在销毁示例并重新创建它。
我可以想象这样一种情况,我有一些服务器在生产运行一些webapp,我想重命名它。然后基本上它会破坏并重新创建我的服务器。这意味着我会失去我的项目数据在“/var/www/html”虽然我知道这是Terraform的工作方式,但我看不到它在这里的用途。
除了在更新terraform模块之前备份项目文件夹之外,还有什么解决方案?

fdx2calv

fdx2calv1#

解决方案是将应用程序和示例设计为无状态。这意味着没有状态信息(例如用户数据、会话、数据库)存储在示例中。因此,您可以随时终止示例(AWS有时也可以这样做),并在不影响数据和应用程序的情况下重新创建示例。
无状态是在AWS上开发容错、高可用性和可扩展应用程序的主要方式。
因此,如果您的应用程序是以这样一种方式开发的,即其“项目数据”依赖于示例的生命周期,那么您可能会重新考虑在云环境中部署应用程序的设计和方法。特别是,为了存储您的数据,通常您会将其存储在示例之外,常见的选择是S3和EFS。任何数据库也会是外部的。
我会建议看一看AWS的AWS Well-Architected and the Five Pillars开发,它涵盖了这些和许多其他有帮助的主题。

相关问题