Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 5.07 KB

AWS.md

File metadata and controls

69 lines (49 loc) · 5.07 KB

This document explains how to run a licensed version of the SDK on AWS (Amazon Web Services) or Microsoft Azure. You can ignore it if you're using the trial version.

As explained at https://www.doubango.org/pricing.html our licensing model is per device/machine. Each machine is uniquely identified using the hardware information (CPU model, motherboard, architecture, hard drive serial number...). The hardware information doesn't change even if the OS is (up/down)graded or reinstalled. We don't use network information like the MAC address to make sure the SDK can work without NIC.

The machine's unique identifier is built from the hardware information and generated as base64 encrypted key using the runtimeKey application. You don't need to build the application by yourself, use the pre-built binaries. Once you have the runtime key you can generate the token (license) using the activation function. More information about the process at https://www.doubango.org/SDKs/LicenseManager/docs/.

AWS issue

The problem with AWS or any virtual machine is that you don't control on which machine your instance will be launched. If your license (Token) was generated using a runtime key from machine A and your instance is launched on machine B, then the hardware information will not match. To fix this issue we propose two possible solutions:

  • 1/ Binding the license to the instance
  • 2/ Binding the license to the hardware

Binding the license to the instance

The license is bound to the instance identifier and other information attached to it. Your license will remain valid even if the hardware change. The information attached to the instance will not change even if it is restarted but it'll be lost if you terminate the instance.

/!\IMPORTANT: The license will be definitely lost if you terminate the instance.

To generate a runtime key for this option you need to run the runtimeKey sample application like this:

./runtimeKey --type aws-instance --assets ../../../assets

The SDK uses libcurl under the hood to query the information associated to the instance. libcurl is loaded at runtime to avoid linking.

On Linux, install libcurl like this: sudo apt-get install libcurl-dev

On Windows, copy libcurl.dll and zlib1.dll from https://github.com/DoubangoTelecom/LicenseManager-SDK/blob/master/binaries/windows/x64/ to your application's root folder or binaries folder.

Binding the license to the hardware

This is implemented through Bring Your Own Licensing (BYOL) offer from Amazon. You'll need a dedicated host subscription. More information at https://aws.amazon.com/blogs/mt/simplified-byol-experience-using-aws-license-manager/. There are addition subscription costs for this method but it guarantee the hardware information will never change.

To generate a runtime key for this option you need to run the runtimeKey sample application like this:

./runtimeKey --type aws-byol --assets ../../../assets

Note about Microsoft Azure

Everything explained above about Amazon AWS applies to Microsoft Azure. The only difference is how the runtime key is generated.

To attach the license to the Azure VM instead of the hardware (recommended):

./runtimeKey --type azure-instance --assets ../../../assets

To attach the license to the hardware instead of the VM:

./runtimeKey --type azure-byol --assets ../../../assets

You'll need libcurl. See above on how to install it.