我们正在尝试构建一个在Amazon EC2上运行的群集服务器。
目前我们的许可证工作方式是我们获取客户的机器信息(如cpu,内存,mac地址等)以识别机器并锁定我们的服务器以仅在此机器上运行。各个服务器可以作为集群运行。因此,我们为每个节点提供许可证。
但是这种模式不适用于Amazon EC2和其他云提供商。我想知道如何解决这个问题。
我能想到的可能解决方案是: 1)托管所有客户服务器需要与此许可证服务器通信的许可证服务器 2)从亚马逊获取某种ID。到目前为止,这种方法似乎更加现实。
关于方法#2,亚马逊是否为我们提供了一些API来获取此帐户的ID?
如果您对使用公共云或私有云的许可模式有任何其他想法,请告知我们。
答案 0 :(得分:1)
这是ec2特有的,但您可以通过编程方式获取实例ID,但我认为您需要在实例本身上安装ec2工具并获取其信息(可能还有其他方法可以获取)。该ID似乎是唯一的(您必须提供给亚马逊,以便他们可以找到您的实例以获得支持),如果您停止实例(不确定它们是否终止并重新启动),它就不会改变。或者你可以使用安全证书来确保它在这种情况下的独特性。
目前的许可是什么?他们只能在一台机器上运行它,或者一次只运行一台机器吗?如果它是一台机器,那么你可能不得不将它映射到亚马逊的某个唯一ID(就像我上面提到的那样),但是如果它一次只有一台机器那么你可以让它在启动时用你的服务器验证它的信息。如果另一台服务器使用其许可证连接,您可以禁用它们。
另一方面,我认为这不是一个好主意。如果你看看像微软或甲骨文这样的大公司,他们通常不会做太多事情来阻止你违反他们的许可证。这是因为当你接受审计时,你无论如何都必须支付费用并且通过许可程序可以使人们不能自由地安装他们的软件(我的经验,当我们需要一个oracle服务器并设置它但没有做到这一点时)。然后在我们的年度审计期间许可它不得不向他们支付废话。我们的许多开发测试都变成了生产,这导致我们付出更多的代价。对于我现在的公司,我们这样做(监控使用情况,但不要阻止人们安装,然后再对其进行收费)并且非常有利可图。如果这个想法适合你,那么考虑上面的adice,而不是禁用该服务只是监控它,然后让你的销售代表开始与他们的对话。
答案 1 :(得分:0)
通过AWS市场,亚马逊确实尝试解决其中的一些问题。根据我的理解,这对你有用,你通过市场提供你的软件作为AMI,亚马逊然后包括实例+ AMI的每小时价格的许可费。
以下是更多信息https://aws.amazon.com/marketplace/help/200899830/ref=gtw_r1
的链接