Sre*_* KS 4 apache centos amazon-ec2 terraform devops
Terraform 新手。这几天尝试了很多。仍在尝试理解一些行为。
我创建了一个带有网络服务器的 AWS 实例,然后我想通过添加一些标签和密钥对来更新它。我注意到 Terraform 正在销毁实例并重新创建它。
我可以想象这样一种情况,我有一些生产中的服务器运行一些 web 应用程序,我想重命名它。然后本质上它会破坏并重新创建我的服务器。这意味着我将在“/var/www/html”中丢失我的项目数据虽然我理解这是 Terraform 的工作方式,但我看不到这里的用途。
除了在更新 terraform 模块之前备份项目文件夹之外,这里的解决方案是什么?
解决方案是将应用程序和实例设计为无状态的。这意味着实例上不存储任何状态信息(例如用户数据、会话、数据库)。因此,您可以随时终止实例(AWS 有时也可以这样做)并重新创建它,而不会影响您的数据和应用程序。
无状态性是在AWS上开发容错、高可用、可扩展应用程序的主要方式。
因此,如果您的应用程序的开发方式使其“项目数据”取决于实例的生命周期,那么您可能会重新考虑在云环境中部署应用程序的设计和方法。具体来说,为了存储数据,通常您会将其存储在实例之外,常见的选择是 S3 和 EFS。任何数据库也都是外部的。
我建议您查看AWS Well-Architected 和AWS 开发的五个支柱,其中涵盖了这些以及许多其他有用的主题。
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |