AWS Database Blog

Introducing Amazon Neptune Global Database

Today, Amazon Neptune announced the general availability of Amazon Neptune Global Database. You can use Neptune Global Database to build graph applications across multiple AWS Regions using the same graph database. Neptune Global Database is available in the US East (N. Virginia), US East (Ohio), US West (N. California), US West (Oregon), Europe (Ireland), Europe (London), and Asia Pacific (Tokyo) Regions at launch.

Neptune is a fast, reliable, and fully managed graph database service for building and running applications with highly connected datasets, such as knowledge graphs, fraud graphs, identity graphs, and security graphs. Neptune provides developers the most choice for building graph applications with three open graph query languages: openCypher, Apache TinkerPop Gremlin, and the World Wide Web Consortium’s (W3C) SPARQL 1.1. Neptune Global Database is designed for globally distributed applications spanning multiple Regions. Neptune Global Database replicates your data with no impact on database performance, enables fast local reads with low latency in each Region, and provides disaster recovery from Region-wide outages.

Customers have told us that they want to deploy their Neptune clusters across multiple Regions in order to maintain business continuity for applications in the unlikely event of Region-wide outages as they expand their footprint to multiple Regions. We worked backward from this feedback to enable you to work with the same dataset in multiple Regions. You can now deploy a primary Neptune database cluster in one Region and replicate its data in up to five secondary read-only database clusters (with up to 16 read replicas each) in different Regions. This enables you to move your applications to one of the secondary clusters and minimize application downtime.

A Neptune cluster can recover in minutes in case of unlikely Regional outages. This provides your applications with an effective Recovery Point Objective (RPO) of 1 second and a Recovery Time Objective (RTO) of 1 minute, providing a strong foundation for a global business continuity plan. For global applications, where you need to access data from multiple Regions, you can now use a global database to query your graphs from the Region closest to you, reducing query latency. You can create a global database with just a few clicks on the Neptune console or download the latest AWS SDK or CLI. In this post, we walk you through creating a global database using the Neptune console.

Prerequisites

To create a Neptune global database, you need a Neptune cluster to serve as primary. You can use an existing cluster or create a new one.

Create a Neptune global database

To create your Neptune global database, complete the following steps:

  1. On the Neptune console, choose Clusters.
  2. Select your Regional cluster.
  3. On the Actions menu, choose Add AWS Region.
  4. For the secondary Region, provide the global database name, specify the Region you want your secondary cluster in, and choose the instance type for the secondary cluster.We recommend choosing the same instance type as the readers in the primary cluster to avoid performance discrepancies.
  5. You can accept all other options as default to create your cluster.

The Neptune cluster is now upgraded to a global database and data from the primary cluster is automatically replicated to the secondary clusters.

Failover of Neptune global database

Neptune Global Database offers two different failover approaches:

  • Detach-and-promote (manual unplanned recovery) – To recover from an unplanned outage, you can perform a cross-Region detach-and-promote on one of the secondary DB clusters in the global database. For instructions, refer to Using failover in a Neptune global database. In this scenario, you don’t have access to the primary database and you need to identify the secondary cluster you want to promote to primary.
  • Managed planned failover – This is intended for planned operational procedures such as relocating the primary DB cluster of the global database to one of the secondary Regions. This scenario is only applicable when the primary cluster is available (there are no outages).

Let’s explore how to perform a managed failover from the Neptune console. Complete the following steps:

  1. On the Neptune console, choose Databases.
  2. Select the global database you want to failover.
  3. On the Actions menu, choose Failover Global Database.
  4. Choose the secondary cluster you want to promote to primary.

The workflow starts by stopping all writes and demoting the writer instance on the primary cluster to a read replica. Then it promotes the highest priority read replica in the target secondary cluster to a writer instance, and modifies the global cluster in order to promote the selected secondary database to primary. Please note that writes to the cluster aren’t possible during this failover.

When the workflow finishes successfully, you can see that the secondary database has now been promoted to primary.

Pricing

For Neptune Global Database, standard pricing will apply for the Neptune resources, such as instance, storage, and data transfer fees, that you use in all Regions. Additionally, you will be charged for replicated write I/Os, which capture writes, inserts, and deletes between the primary and secondary Neptune clusters. For full pricing, refer to Amazon Neptune pricing.

Summary

In this post, we introduced Neptune Global Database, a feature that provides fast disaster recovery in the unlikely event of a Region-wide outage, and brings data closer to your customer applications in different global Regions. You can create a new Neptune cluster or upgrade an existing cluster to engine release 1.2.0.0 or higher to use Neptune Global Database. To learn more, see Using global databases with Amazon Neptune.


About the author

Navtanay Sinha is a Senior Product Manager at AWS. He works with graph technologies to help Amazon Neptune customers fully realize the potential of their graph database.