Provision an Elastic Cloud managed Elasticsearch cluster with Kibana and integrate it with OntoPop.
Elastic Cloud is a public cloud managed service available on major cloud computing platforms (including Amazon Web Services, Microsoft Azure and Google Cloud Platform) providing fully-managed SaaS offerings from the Elastic stack including Elasticsearch and Kibana. This page provides instructions on how to provision an Elastic Cloud deployment and integrate it with OntoPop.
To provision a fully-managed Elastic Cloud Elasticsearch cluster, navigate to https://cloud.elastic.co to sign up for an Elastic Cloud account. Once signed up and logged in, select "Create Deployment" to create a fully-managed Elastic deployment consisting of a managed Elasticsearch cluster along with Kibana (as a minimum). You will be asked for the following information:
- 1.Name - enter a custom name for your deployment, for example
- 2.Cloud Provider - select a cloud provider (for example Amazon Web Services) which will be used to host the Elastic deployment. Note that administration of the Elastic deployment is performed entirely via Elastic Cloud and there is no need to create an account on the selected cloud computing platform.
- 3.Region - select a region, for example
- 4.Hardware Profile - select a hardware profile. It is recommended to select "General Purpose" and, for small ontologies containing hundreds or low thousands of OWL classes, an Elasticsearch hardware profile of 20GB storage with 2GB RAM and up to 4.3 vCPU (in the case of available Amazon Web Services hardware profiles after selecting "Advanced Settings") should suffice. In regards to Kibana, unless you wish to use Kibana as an additional data visualization tool, then a hardware profile of 1GB with up to 8.5 vCPU (in the case of available AWS hardware profiles) will suffice.
- 5.Availability Zones - select the number of availability zones based on your deployment and fault tolerance requirements. For development and testing purposes, one (1) availability zone will suffice for both Elasticsearch and Kibana.
Once configured, select "Create Deployment" to create the deployment (it may take Elastic Cloud between 5 - 10 minutes to fully deploy).
Once created and deployed, navigate to https://cloud.elastic.co/deployments, select the newly provisioned deployment and make a note of the Elasticsearch endpoint (of the format
https://mydeployment.es.eu-west-2.aws.cloud.es.io:9243). This will be required when we integrate the managed Elasticsearch cluster with OntoPop below.
In order to securely integrate with OntoPop, we must create a new user with a custom role profile limited to only those privileges required by OntoPop. To do this, first we shall create and configure a custom role with selected privileges via Elastic Cloud. Navigate to https://cloud.elastic.co/deployments and select the newly created deployment. In the main menu on the left of the screen, select "Security" and then "Make security changes in Kibana". In Kibana, select "Roles" from the main menu on the left of the screen, then "Create Role" and enter the following information, as illustrated in the screenshot below:
- 1.Role Name - enter a custom role name, for example
- 2.Index Privileges - enter
ontopop*in the "Indices" text box (note the wildcard character). Then in the "Privileges" dropdown, select the following privileges:
Elasticsearch Custom Role
Once configured, select "Create Role" to create the new role.
Finally we must create the new user and attach to it the custom role configured above. To do this, in Kibana select "Users" from the main menu on the left of the screen and then select "Create User". Provide the required information including username (for example
myuser) and password. Finally map the custom role created above to this new user in the "Privileges" section. Once configured, select "Create User" to create the new user whilst making a note of the provided username and password for integration with OntoPop below.
To integrate a fully-managed Elastic Cloud Elasticsearch service with OntoPop, configure the storage.search namespace in