在 aws 区域中找到最佳部署位置

finding best deployment locations in aws regions

鉴于我们在 aws 平台上,我们需要订阅位于世界各地的不同数据源。 我们如何有效地确定哪个区域对某些目标 IP(不是我们的浏览器)的延迟最低?

有一项名为 cloudping 的服务可以从您当前的浏览器 ping 到 aws 区域,但由于显而易见的原因,这没有用。

有没有类似cloudping的工具可以指定我们要ping的ip?

还有一个次要问题。我想可以使用 aws 控制台 api 来生成实例,如果我有一个生成计算实例的脚本,亚马逊会收取大量费用吗?它会做一些简短的工作并终止它,并对每个区域都这样做吗? 最坏的情况是,我们可以在短时间内在所有区域上生成实例并 ping 到我们感兴趣的所有目的地,但对于一些相当简单的事情来说,这将需要大量工作……我的假设是,即使在一个区域内,你最终也可能会得到有些实例的延迟明显优于其他实例,脚本可以生成实例,直到找到最佳实例并终止其他实例...

更新

生成实例并在其中执行命令似乎很容易,终止它们也不难。 Here 是一个很好的工具,现在的问题是 aws 会用账单惩罚我吗?难道没有解决方案吗?

您当然可以在任何区域启动和终止 Amazon EC2 实例。 Amazon 不会 "punish" 你——系统只会对你使用的资源收取正常费用。

如果您使用 Amazon Linux AMI 启动 Amazon EC2 实例,那么该实例将被收费 per-second,因此成本会非常低。例如,您可以使用 t2.micro 实例,每小时几美分(每秒收费)。

然后您可以 运行 从每个区域进行您自己的计时测试。但是,您可以仅根据区域位置(美国东部、美国西部、法兰克福、悉尼等)预测最佳性能。

另外,请注意 Ping 并不是衡量您的实际应用程序性能的可靠指标。要获得最佳测量值,您应该 运行 每个区域 的应用程序连接到您尝试使用的 'source of data'。 测量实际应用程序将使用的性能。您可能会发现远程服务的延迟时间高于网络,这意味着该位置对性能的影响很小。

如果您使用其他人的计时或其他人的工具,它不会像测量您的实际应用程序做 "real" 工作一样准确。