What is Amazon Neptune?
Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets. The core of Neptune is a purpose-built, high-performance graph database engine. This engine is optimized for storing billions of relationships and querying the graph with milliseconds latency. Neptune supports the popular graph query languages Apache TinkerPop Gremlin, W3C SPARQL, and openCypher, enabling you to build queries that efficiently navigate highly connected datasets. Neptune powers graph use cases such as recommendation engines, fraud detection, knowledge graphs, drug discovery, and network security.
Neptune is highly available, with read replicas, point-in-time recovery, continuous backup to Amazon S3, and replication across Availability Zones. Neptune provides data security features, with support for encryption at rest and in transit. Neptune is fully managed, so you no longer need to worry about database management tasks like hardware provisioning, software patching, setup, configuration, or backups.
What popular graph query languages does Amazon Neptune support?
Amazon Neptune supports two query languages for the Property Graph data model, the open-source Apache TinkerPop Gremlin graph traversal language and the openCypher query language, and for the Resource Description Framework (RDF) data model, Neptune supports the W3C open standard SPARQL query language .
Can I use Apache TinkerPop Gremlin, openCypher, and RDF/SPARQL on the same Neptune cluster?
Yes, each Neptune cluster can store both property graph data and RDF data. Neptune provides a Gremlin endpoint (HTTPS and WebSocket), openCypher endpoint (HTTPS and Bolt), and a SPARQL 1.1 Protocol REST endpoint.
For property graphs, you can execute either a Gremlin or openCypher query over the same data regardless of which language was used to enter that data. You may find it more convenient to use Gremlin for some workloads and openCypher for others. You cannot execute a query for property graph data (Gremlin or openCypher) over RDF data or vice-versa.
How can I migrate from an existing Apache TinkerPop Gremlin application to Amazon Neptune?
Amazon Neptune provides an Apache TinkerPop Gremlin Server that supports both HTTPS and WebSocket connections. Once you provision an instance of Amazon Neptune, you can configure your existing TinkerPop application to use the endpoint provided by the service. See also Accessing the Graph via Gremlin.
Do I need to change client drivers to use Amazon Neptune’s Gremlin Server?
No, Amazon Neptune’s Gremlin Server supports clients that are compatible with Apache TinkerPop using both WebSockets and HTTPS REST connections. The latest version of Neptune supports TinkerPop 3.6.x. Please consult the documentation for more information.
How can I migrate from an existing openCypher application to Amazon Neptune?
With Neptune support for the openCypher query language, you can move most Cypher or Neo4j workloads that use the Bolt protocol or HTTPS to Neptune. For more detailed information on how to migrate an openCypher application, please read the migration guide in the documentation.
How can I migrate from a triple store with a SPARQL endpoint to Amazon Neptune?
Amazon Neptune provides an HTTPS REST endpoint that implements the SPARQL 1.1 Protocol. Once you provision a service instance, you can configure your application to point to the SPARQL endpoint. See also Accessing the Graph via SPARQL.
Do I need to change client drivers to use Amazon Neptune’s SPARQL Endpoint?
Is Neptune ACID (Atomicity, Consistency, Isolation, Durability) compliant?
Yes, Neptune is ACID compliant with immediate consistency on the primary writer instance, and eventual consistency on the read replica instances.
Why are Amazon RDS permissions and resources required to use Amazon Neptune?
Does Amazon Neptune have a service level agreement (SLA)?
Yes. Please see the Amazon Neptune SLA.
What types of graph query workloads are optimized to work with Amazon Neptune?
Amazon Neptune is designed to support graph applications that require high throughput and low latency graph queries. With support for up to 15 read replicas, Amazon Neptune can support 100,000s of queries per second.
Does Amazon Neptune perform query optimization?
Yes, Amazon Neptune uses query optimization for Gremlin, openCypher and SPARQL queries. To learn more, see The Amazon Neptune alternative query engine (DFE).
Is Amazon Neptune built on a relational database?
No, Amazon Neptune is a purpose-built, high-performance graph database engine. Neptune efficiently stores and navigates graph data, and uses a scale-up, in-memory optimized architecture to allow for fast query evaluation over large graphs.
How much does Amazon Neptune cost?
Please see our pricing page for current pricing information.
In which AWS regions is Amazon Neptune available?
Please see our pricing page for current information on regions and prices.
Amazon Neptune replicates each chunk of my database volume six ways across three Availability Zones. Does that mean that my effective storage price will be three or six times what is shown on the pricing page?
No. Amazon Neptune’s replication is bundled into the price. You are charged based on the storage your database consumes at the database layer, not the storage consumed in Amazon Neptune’s virtualized storage layer.
What are IOs in Amazon Neptune and how are they calculated?
Amazon Neptune was designed to eliminate unnecessary IO operations in order to reduce costs and to ensure resources are available for serving read/write traffic. Write IOs are only consumed when pushing transaction log records to the storage layer for the purpose of making writes durable. Write IOs are counted in 4KB units. For example, a transaction log record that is 1024 bytes will count as one IO operation. However, concurrent write operations whose transaction log is less than 4KB can be batched together by the Amazon Neptune database engine in order to optimize I/O consumption. Unlike traditional database engines, Amazon Neptune never pushes modified database pages to the storage layer, resulting in further IO consumption savings.
Hardware and Scaling
What are the minimum and maximum storage limits of an Amazon Neptune database?
The minimum storage is 10GB. Based on your database usage, your Amazon Neptune storage will automatically grow, up to 128TiB, in 10GB increments with no impact to database performance. There is no need to provision storage in advance.
How do I scale the compute resources associated with my Amazon Neptune DB Instance?
When you modify your DB Instance class, your requested changes will be applied during your specified maintenance window. Alternatively, you can use the "Apply Immediately" flag to apply your scaling requests immediately. Both of these options will have an availability impact for a few minutes as the scaling operation is performed. Bear in mind that any other pending system changes will also be applied.
Can I scale my database up and down automatically based on usage?
You can automatically scale your database capacity with Amazon Neptune Serverless. Neptune Serverless allows you to run and instantly scale graph workloads, without the need to manage and optimize capacity. Neptune Serverless automatically determines and provisions the compute and memory resources to run the graph database, and scales capacity based on the workload’s changing requirements to maintain consistent performance.
Does Neptune support auto-scaling?
Yes, Neptune supports auto-scaling of read replicas. of instances. You can configure auto-scaling to automatically add or remove read replicas in response to changes in your connectivity or workload requirements. For more information, see the documentation.
Backup and Restore
How do I enable backups for my DB Instance?
Automated backups are always enabled on Amazon Neptune DB Instances. Backups do not impact database performance.
Can I take DB Snapshots and keep them around as long as I want?
If my database fails, what is my recovery path?
What happens to my automated backups and DB Snapshots if I delete my DB Instance?
Can I share my snapshots with another AWS account?
Will I be billed for shared snapshots?
Can I automatically share snapshots?
How many accounts can I share snapshots with?
In which regions can I share my Amazon Neptune snapshots?
Can I share my Amazon Neptune snapshots across different regions?
Can I share an encrypted Amazon Neptune snapshot?
Can I use Amazon Neptune snapshots outside of the service?
High Availability and Replication
How does Amazon Neptune improve my database’s fault tolerance to disk failures?
Amazon Neptune automatically divides your database volume into 10GB segments spread across many disks. Each 10GB chunk of your database volume is replicated six ways, across three Availability Zones. Amazon Neptune is designed to transparently handle the loss of up to two copies of data without affecting database write availability and up to three copies without affecting read availability. Amazon Neptune storage is also self-healing. Data blocks and disks are continuously scanned for errors and repaired automatically.
How does Amazon Neptune improve recovery time after a database crash?
What kind of replication does Neptune support?
Amazon Neptune supports Read Replicas, which share the same underlying volume as the primary instance. Updates made by the primary are visible to all Amazon Neptune Replicas. One Neptune cluster can have one writer instance and up to 15 read replicas. In the event of a writer instance failure, a read replica will be automatically promoted to a writer instance.
Can I have cross-region replicas with Amazon Neptune?
Yes, Amazon Neptune supports cross-region replication by configuring your Neptune cluster to use Global Database. See Amazon Neptune Global Database.
Can I prioritize certain replicas as failover targets over others?
Yes. You can assign a promotion priority tier to each instance on your cluster. When the primary instance fails, Amazon Neptune will promote the replica with the highest priority to primary. If there is contention between 2 or more replicas in the same priority tier, then Amazon Neptune will promote the replica that is the same size as the primary instance.
Can I modify priority tiers for instances after they have been created?
You can modify the priority tier for an instance at any time. Simply modifying priority tiers will not trigger a failover.
Can I prevent certain replicas from being promoted to the primary instance?
You can assign lower priority tiers to replicas that you don’t want promoted to the primary instance. However, if the higher priority replicas on the cluster are unhealthy or unavailable for some reason, then Amazon Neptune will promote the lower priority replica.
How can I improve upon the availability of a single Amazon Neptune database?
What happens during failover and how long does it take?
Failover is automatically handled by Amazon Neptune so that your applications can resume database operations as quickly as possible without manual administrative intervention.
If you have an Amazon Neptune Replica, in the same or a different Availability Zone, when failing over, Amazon Neptune flips the canonical name record (CNAME) for your DB primary endpoint to a healthy replica, which is in turn is promoted to become the new primary. Start-to-finish, failover typically completes within 30 seconds. Additionally, the read replicas endpoint doesn't require any CNAME updates during failover.
If you do not have an Amazon Neptune Replica (i.e. single instance), Neptune will first attempt to create a new DB Instance in the same Availability Zone as the original instance. If unable to do so, Neptune will attempt to create a new DB Instance in a different Availability Zone. From start to finish, failover typically completes in under 15 minutes.
Your application should retry database requests in the event of connection loss.
If I have a primary database and an Amazon Neptune Replica actively taking read traffic and a failover occurs, what happens?
Amazon Neptune will automatically detect a problem with your primary instance and begin routing your read/write traffic to an Amazon Neptune Replica. On average, this failover will complete within 30 seconds. In addition, the read traffic that your Amazon Neptune Replicas were serving will be briefly interrupted.
How far behind the primary will my replicas be?
Since Amazon Neptune Replicas share the same data volume as the primary instance, there is virtually no replication lag. We typically observe lag times in the 10s of milliseconds.
Can I use Amazon Neptune in Amazon Virtual Private Cloud (Amazon VPC)?
Yes, all Amazon Neptune DB Instances must be created in a VPC. With Amazon VPC, you can define a virtual network topology that closely resembles a traditional network that you might operate in your own datacenter. This gives you complete control over who can access your Amazon Neptune databases.
Does Amazon Neptune support encrypting my data in transit and at rest?
Can I encrypt an existing unencrypted database?
How do I access my Amazon Neptune database?
Access to Amazon Neptune databases must be done through the HTTPS port entered on database creation within your VPC. This is done to provide an additional layer of security for your data. Step by step instructions on how to connect to your Amazon Neptune database is provided in the Amazon Neptune User Guide.
Review pricing information for Amazon Neptune.
Instantly get access to the AWS Free Tier.
Get started building with Amazon Neptune on the AWS Management Console.