Overview
PrizmDoc Cloud Licensing is designed for customers who need the ability to scale or upgrade their servers at any moment. You can easily and flexibly use PrizmDoc Server across a paid number of total logical cores. Just pay for the peak number of logical cores you will need (also known as virtual cores, virtual processors, vCPUs, etc.) and then use your Cloud License for every server you deploy into your cluster. As long as the total number of logical cores in your cluster does not exceed the limit you paid for, you can add, remove, or upgrade servers at any time, whether you are running one server or one thousand, and whether you install the product using Windows or Linux installers or use PrizmDoc Docker images.
PrizmDoc Cloud Licensing only requires your servers to be able to communicate with AWS S3 for licensing enforcement. It makes no demands on where your servers reside. You can run your servers in any of the popular cloud providers, like Amazon, Azure, or Google Cloud, or you can even use your own servers on local hardware or VMs. As long as each of the servers in your cluster can communicate with AWS S3, you can use a PrizmDoc Cloud License.
NOTE: PrizmDoc Cloud Licensing currently does not support Docker orchestration systems, such as AWS Fargate/ECS/EKS, Google Kubernetes, Azure Container Instances, etc.
To use a Cloud License, you need to provide an S3 bucket to PrizmDoc with read, write, and delete permissions:
listObjects
- AWS S3 listObjects docs
- Requires s3:ListBucket
putObject
- AWS S3 putObject docs
- Requires s3:PutObject
deleteObjects
- AWS S3 deleteObjects docs
- Requires s3:DeleteObject
At runtime, each of the PrizmDoc Server instances in your cluster will read and write extremely-small, temporary files into this bucket as part of licensing enforcement.
Setting Up Cloud Licensing
To set up cloud licensing, you will need to do the following:
- Set up your Amazon S3 Account and S3 bucket.
- Purchase cloud-based licensing from Accusoft.
- Obtain a License Key from Accusoft by providing your Amazon S3 bucket name.
- Configure the Amazon S3 credentials.
- Install your Accusoft License Key using the OEM Licensing instructions.
The sections below provide additional information for each step.
1 - Set up your Amazon S3 Account and S3 Bucket
First, you must have an Amazon AWS account in order to create an S3 bucket. Log into your AWS account console and create an S3 bucket which PrizmDoc can read and write to at runtime. See the Amazon S3 documentation for more information on setting up an S3 bucket and acquiring credentials.
NOTE: We recommend that you create a dedicated AWS user and bucket with read/write credentials.
2 - Purchase a Cloud License for PrizmDoc Self-Hosted
To purchase a PrizmDoc Cloud License, contact Sales.
During purchase, specify the maximum number of logical cores to be provided by the license. Make sure to account for production, support, and any ongoing development usage; you may want to consider purchasing separate licenses for both production and development.
3 - Obtain a License Key from Accusoft
Once purchased, visit the Accusoft Customer Portal to view your purchased license and provide the S3 bucket name that you will use for Cloud Licensing. After providing your S3 bucket name, your Cloud License key will be given to you. > NOTE: It is your responsibility to provide a valid S3 bucket and to ensure that you have the proper credentials to access that bucket.
-
Enter your Amazon S3 bucket name in the field provided and click Activate License:
-
Select and copy all of the text in the License Key field below. This is your activated license key and you will need to save it for later use when configuring PrizmDoc Viewer on your server:
-
Click Download to go to the product download page and download your product.
-
Continue with Section 4 below.
4 - Configure Amazon S3 Credentials
When running PrizmDoc with a Cloud License on your server, it will require access to the Amazon S3 bucket you provided when your license was generated. It is important to note that PrizmDoc requires no knowledge of your S3 credentials. PrizmDoc accesses Amazon S3 assuming that your credentials have been provided using one of the methods defined in the Amazon SDK documentation that do not require explicitly providing them to the API. As shown below, using method 1, 2, or 3 will provide access to AWS S3.
If you are new to Amazon Web Services (AWS), you should familiarize yourself with the Security Credentials to get an overview.
There are three options for configuring your AWS credentials for cloud licensing. They are listed in the order of recommendation:
- Configure IAM roles for Amazon EC2 (if running on EC2), or
- Configure the Shared Credentials File (~/.aws/credentials), or
- Configure Environment Variables.
NOTE: When setting credentials, be sure that the user under which the PrizmDoc service is running is the same user for which you are configuring the credentials. For example, consider the case where you configure the credentials for your personal user, but PrizmDoc is running as the root user. In this case the service will start, but then shut down shortly after because the root user will be unable to access the S3 bucket specified in your Cloud License key.*
Examples using IAM Roles are beyond the scope of this topic, but if your cluster is running on AWS EC2 instances, you can find information about IAM Roles and their configuration in the Amazon IAM documentation.
An example using method 2 above, Shared Credentials Files, are shown below. You can configure a shared credentials file for the user under which PrizmDoc will execute:
In both Linux and Windows, the credentials file content is the same.
Example Credentials File Content
[default]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key
Credential files are stored under an .aws
directory for the user under which PrizmDoc is executing. The credential file paths below are for an example called: prizmdocuser
.
In Linux
/home/prizmdocuser/.aws/credentials
_NOTE: If your PrizmDoc Server is configured to start/stop with the system, you must modify the configuration section of
/usr/share/prizm/pccis.sh
script: set theAWS_HOME
variable to the path of the directory which contains the AWS folder (.aws
). For the example above, it will beAWS_HOME=/home/prizmdocuser
._
When using Docker
Map the .aws
directory to prizmdoc container's file system when starting the container.
Example
docker run --rm --env ACCEPT_EULA=YES --publish 18681:18681 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --volume $(pwd)/data:/data --volume $(pwd)/.aws:/root/.aws --name prizmdoc-server accusoft/prizmdoc-server
In Windows
C:\Users\prizmdocuser\.aws\credentials
Examples using method 3 above, Environment Variables, are shown below. You can configure your server to export the credentials to the environment for the user under which PrizmDoc will execute:
In Linux
Exporting environment variables under Linux is usually done in the user's .profile
file in their home directory (e.g. for a user named prizmdocuser
these would be added to /home/prizmdocuser/.profile
). > NOTE: The following environment variables need to be configured on the Docker container since the licensing component in the app will use them to access the S3 bucket.
Example
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
In Windows
Exporting environment variables under Windows is done in the Environment Variables control panel under the System Properties.
Example
5 - Install Your License Key as an "OEM License"
For both Linux and Windows
- After configuring the credentials for Amazon S3, go to the OEM Licensing topic.
- Refer to Linux or Windows section within the topic and follow the instructions to install the license key.
Using a fraction of host CPU resources in a PrizmDoc Docker container
If you run multiple prizmdoc-server containers on the same host, or want to limit the CPU consumption for prizmdoc-server containers, you should use the CPU affinity mask when starting the container. This allows PrizmDoc to correctly count the logical CPU cores used by the container, as opposed to the total number of host's CPU cores. Use Docker run
command parameter --cpuset-cpus
to specify the affinity mask.
Example
This example assigns cores 0 and 1 for running the container:
docker run --rm --env ACCEPT_EULA=YES --publish 18681:18681 --volume $(pwd)/config:/config --volume $(pwd)/logs:/logs --volume $(pwd)/data:/data --volume $(pwd)/.aws:/root/.aws --name prizmdoc-server --cpuset-cpus 0-1 accusoft/prizmdoc-server