Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@

* xref:cloud-deployments/index.adoc[]
** xref:cloud-deployments/neo4j-aws.adoc[]
** xref:cloud-deployments/neo4j-gcp.adoc[]
** xref:cloud-deployments/neo4j-azure.adoc[]

* xref:docker/index.adoc[]
Expand Down
20 changes: 11 additions & 9 deletions modules/ROOT/pages/cloud-deployments/index.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
:description: Deploying Neo4j on AWS, Azure, and Google Cloud Platform.
:description: Deploying Neo4j on AWS and Azure.
[[cloud]]
= Cloud deployments

Expand All @@ -8,22 +8,24 @@ Neo4j's cloud marketplace listings represent a quick and easy way of getting sta

| *Cloud partner*
| *Documentation link*
| *Partner Page*
| *Marketplace link*

| Amazon Web Services
| xref:cloud-deployments/neo4j-aws.adoc[Neo4j on AWS]
| link:https://neo4j.com/partners/amazon/[Neo4j in the AWS Marketplace]

| Google Cloud
| xref:cloud-deployments/neo4j-gcp.adoc[Neo4j on Google Cloud Platform]
| link:https://neo4j.com/partners/google/[Neo4j in the GCP Marketplace]
| xref:cloud-deployments/neo4j-aws.adoc[Neo4j Enterprise on AWS]
| link:https://aws.amazon.com/marketplace/pp/prodview-akmzjikgawgn4?sr=0-2&ref_=beagle&applicationId=AWSMPContessa[Neo4j in the AWS Marketplace]

| Microsoft Azure
| xref:cloud-deployments/neo4j-azure.adoc[Neo4j on Microsoft Azure]
| link:https://neo4j.com/partners/microsoft/[Neo4j in the Azure Marketplace]
| link:https://marketplace.microsoft.com/en-us/product/azure-applications/neo4j.neo4j-ee?tab=Overview[Neo4j in the Azure Marketplace]

|===

[NOTE]
====
Deploying Neo4j from the GCP marketplace is supported only for version 2025.x.
See link:{neo4j-docs-base-uri}/operations-manual/current/cloud-deployments/neo4j-gcp/[Neo4j on GCP] for more information.
====

.Other cloud deployment options
[TIP]
====
Expand Down
146 changes: 95 additions & 51 deletions modules/ROOT/pages/cloud-deployments/neo4j-aws.adoc
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
:description: Deploy Neo4j on Amazon Web Services (AWS) directly from the AWS Marketplace or by using the Neo4j CloudFormation templates hosted on GitHub.
:page-role: enterprise-edition
[[aws]]
= Neo4j on AWS

Neo4j can be easily deployed on EC2 instances in Amazon Web Services (AWS) by using the link:https://aws.amazon.com/marketplace/seller-profile?id=23ec694a-d2af-4641-b4d3-b7201ab2f5f9[official listings for Neo4j] on the AWS Marketplace.

The AWS Marketplace listing uses a CloudFormation template maintained by Neo4j.
The template's code is available on link:https://github.com/neo4j-partners/amazon-cloud-formation-neo4j/tree/main/marketplace[GitHub] and can be customized to meet more complex or bespoke use cases.
Neo4j can be easily deployed on EC2 instances in Amazon Web Services (AWS) by using the link:https://aws.amazon.com/marketplace/pp/prodview-akmzjikgawgn4?sr=0-2&ref_=beagle&applicationId=AWSMPContessa[official listing for Neo4j Enterprise Edition] on the AWS Marketplace.

The AWS Marketplace listing uses a CloudFormation template maintained by Neo4j, which can be customized to meet more complex or bespoke use cases.
See <<neo4j-cloudformation-template>> for more information about the Neo4j CloudFormation template.

[NOTE]
====
Expand All @@ -16,72 +16,120 @@ The Neo4j AWS Marketplace listings (and listings on GitHub) use CloudFormation t

== Supported Neo4j versions

The Neo4j link:https://aws.amazon.com/marketplace/seller-profile?id=23ec694a-d2af-4641-b4d3-b7201ab2f5f9[AWS marketplace listing] can be configured to deploy either Neo4j Enterprise Edition 5 or 4.4.
The CloudFormation template always installs the latest available minor version of each release.
For example, the latest minor release of Neo4j 5 is {neo4j-version-minor}.
The Neo4j link:https://aws.amazon.com/marketplace/seller-profile?id=23ec694a-d2af-4641-b4d3-b7201ab2f5f9[AWS marketplace listing] can be configured to deploy either Neo4j Enterprise Edition 2025.x or 5.26 LTS.
The CloudFormation template always installs the latest available version.

[[neo4j-cloudformation-template]]
== Neo4j CloudFormation template

AWS CloudFormation is a declarative Infrastructure as Code (IaC) language that is based on YAML and instructs AWS to deploy a set of cloud resources.
The Neo4j CloudFormation template repository contains code for Neo4j 5 on the `main` branch and code for Neo4j 4.4 on the `Neo4j-4.4` branch:

* link:https://github.com/neo4j-partners/amazon-cloud-formation-neo4j/tree/main/marketplace[CloudFormation template for Neo4j 5].
* link:https://github.com/neo4j-partners/amazon-cloud-formation-neo4j/tree/Neo4j-4.4/marketplace[CloudFormation template for Neo4j 4.4].

The Neo4j CloudFormation template takes several parameters as inputs, deploys a set of cloud resources, and provides outputs that can be used to connect to a Neo4j DBMS.
The Neo4j CloudFormation template's code is available on link:https://github.com/neo4j-partners/amazon-cloud-formation-neo4j/blob/main/marketplace/neo4j-enterprise/neo4j.template.yaml[GitHub].
It takes several parameters as inputs, deploys a set of cloud resources, and provides outputs that can be used to connect to a Neo4j DBMS.

=== Important considerations

* The deployment of cloud resources will incur costs.
** Refer to the link:https://calculator.aws[AWS pricing calculator]for more information.
* The deployment of cloud resources incurs costs.
Refer to the link:https://calculator.aws[AWS pricing calculator] for more information.

* The Neo4j CloudFormation template deploys a new VPC.
** AWS accounts are limited to an initial quota of 5 VPCs (you can view your current quota by viewing the *Limits* page of the Amazon EC2 console).
** AWS accounts are limited to an initial quota of 5 VPCs (you can view your current quota on the *Limits* page of the Amazon EC2 console).
** Your VPC quota can be increased if needed by contacting AWS support.

* The Neo4j CloudFormation template uses an Auto Scaling group (ASG) to deploy EC2 instances.
** This means that to stop or terminate EC2 instances, you must first remove them from the ASG, otherwise, the ASG will automatically replace them.
This means that to stop or terminate EC2 instances, you must first remove them from the ASG, otherwise, the ASG will automatically replace them.

* SSH Keys are not generated as part of the CloudFormation template.
** Use EC2 Instance Connect (via the EC2 console) to connect to deployed EC2 instances if needed.
Use EC2 Instance Connect (via the EC2 console) to connect to deployed EC2 instances if needed.

=== Input parameters

[cols="<31s,69",frame="topbot",options="header"]
[cols="2,3a,3a,2m",frame="topbot",options="header"]
|===

| Parameter Name
| Description
| Allowed Values
| Default Value

| AMI ID
| The AMI that will be used to launch EC2 resources.
|
| ami-07f83a354c934b879

| Stack Name
| A name for the CloudFormation stack to be deployed, e.g., `my-neo4j-cluster`. Stack name can include letters (A-Z and a-z), numbers (0-9), and dashes (-).
| Neo4j License Type
| Select `Enterprise` if you already have a Neo4j Enterprise License, otherwise select `Evaluation`.
| `Enterprise` or `Evaluation`
| Evaluation

| Install Graph Data Science
| An option to install Graph Data Science (GDS). Accepted values are `Yes` or `No`.
| An option to install Graph Data Science (GDS).
| `Yes` or `No`
| False

| Graph Data Science License Key
| A valid GDS license key can be pasted into this field. License keys will be sent to and stored by Neo4j. This information is used only for product activation purposes.
| License Key for Graph Data Science (License keys will be sent to and stored by Neo4j. This information will only be used for the purposes of product activation.)
|
| None

| Install Bloom
| Optionally install Neo4j Bloom. Accepted values are `Yes` or `No`.
| Install Neo4j Bloom.
| `Yes` or `No`
| False

| Bloom License Key
| A valid Bloom license key can be pasted into this field. License keys will be sent to and stored by Neo4j. This information is used only for product activation purposes.
| License Key for Bloom (License keys will be sent to and stored by Neo4j. This information will only be used for the purposes of product activation.)
|
| None

| Password
| A password for the `neo4j` user (minimum of 8 characters)

| Number of Servers
| Specify the number of desired EC2 instances to be used to form a Neo4j cluster (a minimum of 3 instances is required to form a cluster).

| Instance type
| The class of EC2 Instances to use.
| A password for the `neo4j` user (minimum of 8 characters).
|
|

| Number of nodes
| The number of desired EC2 instances to be used to form a Neo4j cluster (a minimum of 3 instances is required to form a cluster).
| Between 1 and 10
| 3

| Instance Type
| EC2 instance type.
| - `t3.medium`
- `t3.large`
- `t3.xlarge`
- `t3.2xlarge`
- `r6i.large`
- `r6i.xlarge`
- `r6i.2xlarge`
- `r6i.4xlarge`
- `r6i.8xlarge`
- `r6i.12xlarge`
- `r6i.16xlarge`
- `r6i.24xlarge`
- `r6i.32xlarge`
- `r6a.8xlarge`
- `r7a.medium`
- `r7a.large`
- `r7a.xlarge`
- `r7a.2xlarge`
- `r7a.4xlarge`
- `r7a.8xlarge`
- `r7a.12xlarge`
- `r7a.16xlarge`
- `r7a.24xlarge`
- `r7a.32xlarge`
- `r7a.48xlarge`
| t3.medium

| Disk Size
| Size (in GB) of the EBS volume on each EC2 instance. Larger EBS volumes are typically faster than smaller ones, therefore 100GB is the recommended minimum size.
| Size in GB of the EBS volume on each EC2 instance. Larger EBS volumes are typically faster than smaller ones, therefore 100GB is the recommended minimum size.
| Minimum: 100
| 100

| SSH CIDR
| Specify an address range from which EC2 instances are accessible on port `22`, via SSH. You can use `0.0.0.0/0` to allow access from any IP address. This field must also be correctly populated to allow the use of EC2 instance-connect.
| Specify an address range from which EC2 instances are accessible on port `22`, via SSH. You can use `0.0.0.0/0` to allow access from any IP address. This field must also be correctly populated to allow the use of EC2 instance-connect. Must be a valid CIDR range of the form x.x.x.x/x.
| Minimum length: 9, Maximum length: 18, AllowedPattern: `1(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})`
|

|===

Expand All @@ -90,19 +138,18 @@ The Neo4j CloudFormation template takes several parameters as inputs, deploys a
The environment created by the CloudFormation template consists of the following AWS resources:

* 1 VPC, with a CIDR range (address space) of `10.0.0.0/16`.
** 3 Subnets (if a cluster has been selected), distributed evenly across 3 Availability zones, with the following CIDR ranges:
*** `10.0.1.0/24`
*** `10.0.2.0/24`
*** `10.0.3.0/24`
** A single subnet (if a single instance has been selected) with the following CIDR range:
*** `10.0.1.0/24`
** A security group.
** An internet gateway.
** Routing tables (and associations) for all subnets.
* An auto-scaling group and launch configuration, which creates:
** 1, or between 3 and 10 EC2 instances (Depending on whether a single instance or an autonomous cluster is selected).
* 3 Subnets (if a cluster has been selected), distributed evenly across 3 Availability zones, with the following CIDR ranges:
** `10.0.1.0/24`
** `10.0.2.0/24`
** `10.0.3.0/24`
* A single subnet (if a single instance has been selected) with the CIDR range `10.0.1.0/24`.
* An internal and external security group.
* An internet gateway.
* Routing tables (and associations) for all subnets.
* Neo4j http and bolt listeners and rules in the security group to allow inbound traffic on ports `7474` and `7687`.
* An auto-scaling group and launch configuration, which creates 1, or between 3 and 10 EC2 instances (Depending on whether a single instance or an autonomous cluster is selected).
* 1 Network (Layer 4) Load Balancer.
** A target group for the EC2 instances.
* A target group for the EC2 instances.


=== Template outputs
Expand Down Expand Up @@ -132,15 +179,15 @@ After the installation finishes successfully, the CloudFormation template provid

=== Cluster version consistency

When the CloudFormation template creates a new Neo4j cluster, an Auto Scaling group (ASG) is created and tagged with the minor version of the installed Neo4j database.
If you add more EC2 instances to your ASG, they will be installed with the same minor version, ensuring that all Neo4j cluster servers are installed with the same version, regardless of when the EC2 instances were created.
When the CloudFormation template creates a new Neo4j cluster, an Auto Scaling group (ASG) is created and tagged with the monthly version of the installed Neo4j database.
If you add more EC2 instances to your ASG, they will be installed with the same monthly version, ensuring that all Neo4j cluster servers are installed with the same version, regardless of when the EC2 instances were created.


=== Neo4j cluster and Auto Scaling Group

The Neo4j AWS CloudFormation template deploys a cluster into an ASG.
However, managing a Neo4j cluster with ASG requires careful planning.
Starting from the 5.x series, Neo4j’s clustering relies on stable servers identities.
Neo4j’s clustering relies on stable servers identities.
In contrast, ASGs are primarily designed for stateless, interchangeable workloads, which means they can terminate and recreate servers at any time, breaking their identity.

To provide stable servers identities, it is recommended to use a persistent disk, e.g., Amazon Elastic Block Store (EBS).
Expand Down Expand Up @@ -249,11 +296,8 @@ SHOW DATABASES YIELD name, address, currentStatus, requestedStatus, serverID WHE
Once the server is stable and caught up, add it back to the AWS NLB target group.


[role=label--enterprise-edition]
== Licensing

// label:Enterprise[]

Installing and starting Neo4j from the AWS marketplace constitutes an acceptance of the Neo4j license agreement.
When deploying Neo4j, users are required to confirm that they either have an enterprise license or accept the terms of the Neo4j evaluation license.

Expand Down
Loading