Configuring data-sources: Amazon Neptune
Please check for supported Amazon Neptune versions in our compatibility matrix.
Network access
By default, Amazon Neptune is not accessible from outside your AWS Virtual Private Cloud (VPC). To allow Linkurious Enterprise to access Neptune, you need have several options:
- Run Linkurious Enterprise from within the same VPC (e.g. on an EC2 instance) in a subnet that can reach the Neptune subnet
- Set up an AWS Network Load Balancer
- Run Linkurious Enterprise in another AWS VPC using VPC peering
- Set up a VPN between the Neptune VPC and the network containing your Linkurious Enterprise instance
Prerequisites
Linkurious Enterprise requires the Neptune Graph Summary API to be enabled in order to retrieve metadata from an Amazon Neptune instance. This metadata is essential for constructing the graph schema during the schema sampling process (see schema sampling).
To ensure reliable schema sampling with Amazon Neptune, all of the following conditions must be met:
- Linkurious Enterprise version
4.1.8
or later is installed. - The Neptune Graph Summary API is enabled (this API cannot be enabled on
T3
andT4g
instances: you must use a larger instance type to enable the API)
IMPORTANT
If these prerequisites are not met, Linkurious Enterprise will attempt a best-effort schema sampling approach. However, this may fail for large datasets, potentially leading to incomplete schema detection.
Configuration
To edit a Neptune data-source configuration,
you can either use the Web user-interface
or edit the configuration file located at linkurious/data/config/production.json
.
Example configuration:
{
"dataSources": [
{
"name": "neptune",
"graphdb": {
"vendor": "neptune",
"url": "https://neptune-instance-name.c2to76ungguf.us-east-1.neptune.amazonaws.com:8182",
"accessKeyId": "AKIATWJHFKUGHEKH665AN",
"secretAccessKey": "O5m1mTcReZ46zesZ/Zty27rfa58/5/SEG"
},
"index": {
"vendor": "neptuneSearch",
"url": "https://opensearch-instance-name.us-east-1.es.amazonaws.com"
}
}
]
}
Supported graphdb
options with Neptune:
url
(required): URL of the Neptune server's Gremlin endpoint.accessKeyId
(required unlessassumedRoleArn
is used): Access Key ID for the AIM role used to access Neptune.secretAccessKey
(required unlessassumedRoleArn
is used): Secret Access Key for the AIM role used to access Neptune.assumedRoleArn
(optional): To authenticate via AssumeRole, this must be the Amazon Resource Name (ARN) of the role to assume.assumedRoleTokenRefreshSeconds
(default:1800
): WhenassumedRoleArn
is used, number of seconds before the temporary access token is refreshed.latitudeProperty
(optional): Name of the node property to use for latitude (used in geo mode).longitudeProperty
(optional): Name of the node property to use for longitude (used in geo mode).ignoredEdgeTypePrefixes
(optional): List of edge type prefixes to be excluded in the schema sampling.