如果没有创建巨大的实例,有没有办法强制实例在不同的物理机器上运行,或者检测Amazon Web Services(AWS)上同一图像的多个实例使用了多少台物理机?
我在这里考虑可靠性。如果我自欺欺人地认为我有三个独立的服务器用于容错目的(想想Paxos,Quicksilver,ZooKeeper等),因为我有三个不同的实例在运行,但所有三个最终都运行在同一个物理机器上,我可能是为了一个非常非常粗鲁的惊喜。
我意识到可能通过使用单独的区域来强制解决该问题,但是知道是否存在区域内或甚至内部可用区域解决方案会很好,因为我不确定我是否会这样做。曾经见过AWS实际上在创建实例时在所谓的多选下拉菜单中为我提供了多个可用区选项。
好的,我很欣赏前两个人的建议来回答我的问题,但我试图通过在一个地区设置3台机器而不写小说来简化问题。让我再试一次 - 当我向上/向外扩展一个假想的应用程序堆栈时,我会静态地和动态地("弹性地")添加实例。当然,任何形式的故障/灾难都可能发生(包括一个整个数据中心焚烧到地面,例如,一个不幸的破坏事故涉及微波炉,CD和两个白痴说"哦,是吗?好看这个!!!"),但到目前为止最有可能的是某种类型的硬机故障,其次是一个死机端口。在单个虚拟化硬件上运行相同类型T的多个实例会增加计算能力,但不会增加容错能力。显然,如果我缩小/缩小,我很可能会使用"更大"实例。显然,如果AWS'如果我选择具有存储器大小m的实例使得m> 1,则最大的机器具有存储器大小M和多个处理器C. (M / 2)或具有多个CPU大小c使得c> 1。 (C / 2),然后我将保证我的实例在不同的机器上运行。但是,我不知道今天M max 和C max 是什么;我当然不知道从现在开始,或者从现在起两年后将会是什么,等等,因为亚马逊购买Bigger Better Faster。我知道这听起来像是在挑剔和讨论这个问题,但不知道实例是如何分配的,或者是否存在控制实例分布的机制意味着我可以在使用当前计算效果F + 1或2F + 1的假设中犯下真正的错误分布式计算算法或评估用于新应用程序,分片和局部性决策的新算法,对于看到较少流量的appstack部分的最小保留与弹性实例计数等。
答案 0 :(得分:0)
每个区域至少有两个可用区域,这应该适用于高可用性方案。 intra-az在可靠性方面不会走得很远,因为整个az可能会下降(不太可能,但可能)。
如果您绝对必须强制"内部分离硬件",不同帐户中的专用实例将实现这一目标,但会花费更多而且不会更好。
答案 1 :(得分:0)
不仅有多个可用区域(想想单独的数据中心),在每个区域内,您还可以将服务器分成不同的区域(西海岸,东海岸,欧洲等)。
就冗余和可靠性而言,最好不要在AZ和地区分散您的工作,然后尝试找出或确保单个AZ中的实例位于同一块硬件上。 / p>