Amazon Neptune Engine Updates - Amazon Neptune

Amazon Neptune Engine Updates

Amazon Neptune releases engine updates regularly. You can determine which engine release version you currently have installed using the instance-status API. Engine version numbers are explained in the section below.

Engine releases are listed at Engine Releases for Amazon Neptune, and patches are listed at Latest Updates.

Before November 2019, Neptune only supported one engine version at a time, and engine version numbers all took the form, 1.0.1.0.200<xxx>, where xxx was the patch number. New engine versions were all released as patches to earlier versions.

Starting in November 2019, Neptune supports multiple versions, allowing customers better control over their upgrade paths. As a result, engine release numbering changed.

Upgrading Your Neptune Engine

Major engine releases can only be installed manually.

Patch releases (.R2, .R3, etc.) are always installed automatically during your next maintenance window. This is independent of how the AutoMinorVersionUpgrade parameter is set.

If you want, you can choose to have minor engine updates also installed automatically to your entire cluster. You do this by setting the AutoMinorVersionUpgrade parameter of your primary writer instance to true. An automatic minor engine update will then be installed on every instance in your cluster during the maintenance window once the new engine version has proven stable, 2 to 3 weeks after the release.

If you are manually upgrading using the AWS CLI, be sure to specify the engine version to which you want to upgrade. If you do not, your engine may be upgraded to a version that is not the most recent one or the one you expect.

You can always determine what engine version your DB cluster is running by using the Instance Status API. If you are using the CreateDBCluster to create a cluster, the API returns the engine version used to create the cluster in its response.

The timing of automatic updates depends on the AWS region and maintenance window settings for your DB cluster. You can view or change your maintenance window settings on the Neptune console. For more information, see Neptune Maintenance Window.

Cluster updates are applied to all instances in a DB cluster simultaneously. An update requires a database restart on all those instances, so you will experience downtime ranging from 20–30 seconds to several minutes, after which you can resume using your DB cluster again.

Testing a new version of the Neptune engine before you upgrade

When a new major Neptune engine version is released, always test your Neptune applications on it first, before upgrading. If you do not have AutoMinorVersionUpgrade set, you may also want to do that for minor engine versions that introduce new features or behavior that could affect your code.

The best way to test a new version without upgrading your production DB cluster is to clone your cluster so that the clone is running the new engine version. You can then run queries on the clone without affecting your production DB cluster.

Neptune Engine Version Numbering

Neptune version numbers have 3 parts. Take version number 1.0.2.0.R2 as an example:

  1. The first part (the first two numbers, namely the 1.0 in 1.0.2.0.R2) is the database major version number.

    This part only changes when a major incompatible change occurs, such as a change in the way data is stored that requires data migration when upgrading. Upgrading to a new major version often requires downtime proportional to the size of the cluster being upgraded, and can take much longer than other upgrades.

  2. The second part (the third and fourth numbers, namely the 2.0 in 1.0.2.0.R2) is the minor version number of the engine release.

    You can choose to upgrade your engine to new minor versions automatically, as described below, or choose to decide for each minor version change.

  3. The third part (the last number, namely the R2 in 1.0.2.0.R2) is the patch number for the minor version of the engine.

    Patches involve urgent changes such as bug fixes or security changes that are deployed between minor engine releases. The first release of an engine version is implicitly R0, and patches to it are numbered R1, R2, and so forth.

    Patches are always automatically applied during system maintenance windows, as described below.

You can list the available engine releases using the AWS CLI as follows:

For Linux, OS X, or Unix:

aws neptune describe-db-engine-versions \ --region <your-region> \ --engine neptune

For Windows:

aws neptune describe-db-engine-versions ^ --region <your-region> ^ --engine neptune

Available engine releases include only those releases that have a version number higher than the current one and for which an upgrade path is defined.

Using the Console to Upgrade Your Engine to a More Recent Version

You can perform a minor version upgrade of a Neptune DB cluster using the AWS Management Console as follows:

To upgrade the engine version of a DB cluster using the console

  1. Sign in to the AWS Management Console, and open the Amazon Neptune console at https://console.aws.amazon.com/neptune/home.

  2. In the navigation pane, choose Clusters, and then choose the DB cluster that you want to modify.

  3. Choose Actions, and then choose Modify cluster. The Modify DB cluster page appears.

  4. For DB engine version, choose the new version.

  5. Choose Continue and check the summary of modifications.

  6. To apply the changes immediately, choose Apply immediately.

  7. On the confirmation page, review your changes. If they are correct, choose Modify Cluster to save your changes.

    Alternatively, choose Back to edit your changes, or choose Cancel to cancel your changes.

Using the Console to Enable Automatic Engine Updates

If you set the AutoMinorVersionUpgrade field to true in the writer instance of a DB cluster, Neptune will automatically update the engine of the entire cluster to the latest minor version after a stabilization window of 2 to 3 weeks.

You can use the AWS Management Console to set this field:

To set the AutoMinorVersionUpgrade for a DB cluster

  1. Sign in to the AWS Management Console, and open the Amazon Neptune console at https://console.aws.amazon.com/neptune/home.

  2. In the list of DB instances, choose the primary instance (the writer instance) of the DB cluster.

  3. Choose Instance actions, and then choose Modify. The Modify DB Instance page appears.

  4. Choose Actions, and then choose Modify instance. The Modify DB instance page appears.

  5. Set the auto minor version update field.

See Modifying an Instance for more information.

Updating the Neptune DB Engine Manually Using the CLI

You can upgrade the engine version of a DB cluster using the AWS CLI and the ModifyDBInstance API:

For Linux, OS X, or Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier <your-neptune-cluster> \ --engine-version <new-engine-version> \ --apply-immediately

For Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier <your-neptune-cluster> ^ --engine-version <new-engine-version> ^ --apply-immediately

Be sure to include the engine version that you want to upgrade to. If you do not, your engine may be upgraded to a version that is not the latest one.

Using the CLI to Enable Automatic Neptune Engine Updates

You can use the AWS CLI to enable or disable automatic engine updates for a DBcluster by setting the AutoMinorVersionUpgrade parameter of its primary instance.

To enable automatic engine upgrading for your DB cluster:

For Linux, OS X, or Unix:

aws neptune modify-db-instance \ --db-instance-identifier <your-cluster-write-instance> \ --auto-minor-version-upgrade \ --apply-immediately

For Windows:

aws neptune modify-db-instance ^ --db-instance-identifier <your-cluster-write-instance> ^ --auto-minor-version-upgrade ^ --apply-immediately

Similarly, you can also disable automatic engine updating:

For Linux, OS X, or Unix:

aws neptune modify-db-instance \ --db-instance-identifier <your-cluster-write-instance> \ --no-auto-minor-version-upgrade \ --apply-immediately

For Windows:

aws neptune modify-db-instance ^ --db-instance-identifier <your-cluster-write-instance> ^ --no-auto-minor-version-upgrade ^ --apply-immediately