背景:EC2 测试让我们陷入困境
我们越来越多地使用 amazon ec2 实例进行测试。
一个痛点:每次我们重新启动实例时,IP 地址都会发生变化。(静态 IP 不是一种选择,因为我们只有几个地址并且不需要永久的地址)。
我们的解决方法是让每个人都用新的 IP 地址更新他们的“/etc/hosts”,这样他们就可以使用“test.cloud.local”进行浏览和远程桌面,而不是使用 IP 地址。
这对开发人员来说还好,但对 QA 和其他测试人员来说就比较难了。而且它不可扩展。
问题
有没有简单的方法可以为“.cloud.local”域设置一个单独的 DNS 服务器,以便用户可以轻松地添加/删除条目,即以下用例:
- dev/admin 重新启动获取新 IP 地址的 EC2 实例
- dev/admin 更新“test.cloud.local”的 dns 条目
- 当浏览器访问“test.cloud.local”时,会解析到正确的 IP
它仍然是手动工作,但每次重启只需编辑一次。
IT部门
我们是一家 Windows 商店,DNS 完全属于 IT 部门的职责范围。在收集数据之前,我还没有提出这个话题,因为答案很可能是“不!”。此外,我们不想每次重新启动 ec2 实例时都打开 IT 票证。
具体来说
- 有这样的 dns 应用程序吗?我是一个 linux 用户,但我从未使用过 DNS 或 bind,并且一直认为它非常复杂。理想情况下,dns 应用程序将提供一个 Web 界面来添加/删除 ip 地址,而不是 ssh 和编辑文件。
- 如何最好地与 IT 部门沟通
谢谢
将要
答案1
您确实不需要手动执行任何操作。动态 DNS 可用于处理所有这些操作。
如果您得到了 IT 部门的合作,这是最简单的(迄今为止),因此我会这样提出:
- 撰写 EC2 服务器存在和实用性的商业案例
- 描述每次实例重启和 IP 地址更改时产生的费用
- 准备好回答“你为什么不直接使用弹性 IP?”这个问题(这是我要问的第一个问题,我不明白为什么你不选择弹性 IP)
- 在您的请求中包含您需要的动态 DNS 设置的描述(如果您不知道您的组织目前如何进行 DNS,这可能会变得棘手)
- 根据您的组织结构,您需要确定将请求注入何处最好;可以直接将其提交给 IT,将其放入他们的票务系统,通过层级结构(您的老板、老板的老板、向上、向上、向上……然后向下、向下、向下……这就是为什么您要将其全部写下来,以防止窃窃私语)
至于您到底需要做什么,从技术上讲,这非常简单。相关区域的 DNS 服务器(ec2.example.com
如果他们想要一个完全隔离的区域,您可以这样称呼它)只需允许 TSIG 密钥保护的动态 DNS 更新。然后,您将一个小脚本放入您的 AMI 中,该脚本在启动时检查实例的网络配置并使用该工具将 DNS 更新发送到您的 DNS 服务器nsupdate
。
如果我是你的 IT 部门,我会仍然问你为什么不使用弹性IP,该死的东西是自由的只要您不断使用它们(并且不会一直重新排列它们,您大概不会这样做)。
答案2
使用 VPC,将所有实例放入其中,您将在所选子网中拥有静态 LAN IP,并且可以更好地控制网络;)