【发布时间】:2019-07-30 06:29:44
【问题描述】:
我在 AWS 上使用带有 DynamoDB 后端的 Vault。后端支持HA。
storage "dynamodb" {
ha_enabled = "true"
region = "us-west-2"
table = "vault-data"
}
阅读 HA 概念文档: https://www.vaultproject.io/docs/concepts/ha.html
为了实现高可用性,其中一个 Vault 服务器节点会在数据存储中获取一个锁。然后成功的服务器节点成为活动节点;所有其他节点成为备用节点。此时,如果备用节点收到请求,它们将根据集群的当前配置和状态转发请求或重定向客户端——详细信息请参见下面的部分。由于这种架构,HA 无法提高可扩展性。
我对在 ELB 后面拥有一组 EC2 实例不感兴趣,其中只有一个实例表现得像主实例并与 DynamoDB 对话。
我想运行 N 个运行 Vault 的 Ec2 实例,它们独立于 DynamoDB 进行读写。
由于 DynamoDB 支持从多个 EC2 实例读取/写入,我希望能够同时从多个实例中解封 Vault 并执行读取和写入操作。即使使用ha_enabled = "false",这也应该可以工作,无需进行领导选举。
为什么文档中没有建议这种架构?为什么它不应该工作?我是否缺少任何加密限制?
谢谢
【问题讨论】:
-
问得好,你设置成功了吗?
-
我在 2019 年向阿姆斯特丹 HashiConf EU 的 Vault 开发人员提出了这个问题。他确认多个 Vault EC2 实例必须不同时访问后端 DynamoDB 存储,并且这样做可能会导致意想不到的问题。我没有收到足够的信息来详细解释限制的来源。建议的解决方案是使用带有支持水平可扩展性功能的 Vault Enterprise。我仍然很想了解限制的来源。
标签: amazon-dynamodb hashicorp-vault