diff --git a/modules/ROOT/content-nav.adoc b/modules/ROOT/content-nav.adoc index 5b768f600..c7a14d7b4 100644 --- a/modules/ROOT/content-nav.adoc +++ b/modules/ROOT/content-nav.adoc @@ -14,7 +14,7 @@ * xref:cloud-deployments/index.adoc[] ** xref:cloud-deployments/neo4j-aws.adoc[] ** xref:cloud-deployments/neo4j-gcp.adoc[] -** xref:cloud-deployments/neo4j-azure.adoc[] +//** xref:cloud-deployments/neo4j-azure.adoc[] - not supported in 2025.x * xref:docker/index.adoc[] ** xref:docker/introduction.adoc[] diff --git a/modules/ROOT/pages/cloud-deployments/index.adoc b/modules/ROOT/pages/cloud-deployments/index.adoc index 5ef0533f5..8dc96dac4 100644 --- a/modules/ROOT/pages/cloud-deployments/index.adoc +++ b/modules/ROOT/pages/cloud-deployments/index.adoc @@ -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] +| 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] | Google Cloud -| xref:cloud-deployments/neo4j-gcp.adoc[Neo4j on Google Cloud Platform] -| link:https://neo4j.com/partners/google/[Neo4j in the GCP Marketplace] - -| Microsoft Azure -| xref:cloud-deployments/neo4j-azure.adoc[Neo4j on Microsoft Azure] -| link:https://neo4j.com/partners/microsoft/[Neo4j in the Azure Marketplace] +| xref:cloud-deployments/neo4j-gcp.adoc[Neo4j Enterprise on Google Cloud Platform] +| https://console.cloud.google.com/marketplace/product/neo4j-mp-public/neo4j-enterprise-edition?organizationId=1061230109173[Neo4j in the GCP Marketplace] |=== +[NOTE] +==== +Deploying Neo4j from Microsoft Azure Marketplace is supported only for version 5.26 LTS. +See link:{neo4j-docs-base-uri}/operations-manual/5/cloud-deployments/neo4j-azure/[Neo4j on Azure] for more information. +==== + .Other cloud deployment options [TIP] ==== diff --git a/modules/ROOT/pages/cloud-deployments/neo4j-aws.adoc b/modules/ROOT/pages/cloud-deployments/neo4j-aws.adoc index bf9f26652..f7f27636b 100644 --- a/modules/ROOT/pages/cloud-deployments/neo4j-aws.adoc +++ b/modules/ROOT/pages/cloud-deployments/neo4j-aws.adoc @@ -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 <> for more information about the Neo4j CloudFormation template. [NOTE] ==== @@ -16,71 +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 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` +| No | 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` +| No | 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) +| 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. +| 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})` +| |=== @@ -89,19 +138,19 @@ 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 following 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 @@ -139,7 +188,7 @@ If you add more EC2 instances to your ASG, they will be installed with the same 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). @@ -248,11 +297,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. diff --git a/modules/ROOT/pages/cloud-deployments/neo4j-azure.adoc b/modules/ROOT/pages/cloud-deployments/neo4j-azure.adoc index bb080163a..471fd6e57 100644 --- a/modules/ROOT/pages/cloud-deployments/neo4j-azure.adoc +++ b/modules/ROOT/pages/cloud-deployments/neo4j-azure.adoc @@ -1,142 +1,145 @@ -:description: Deploy Neo4j on Microsoft Azure directly from the Azure Marketplace or by using the Neo4j Azure Resource Manager (ARM) template hosted on GitHub. -[[azure]] -= Neo4j on Azure +//Neo4j is supported on Microsoft Azure only for version 5.26 LTS. This page is kept only in case of future support. +//================================ +//================================ +// :description: Deploy Neo4j on Microsoft Azure directly from the Azure Marketplace or by using the Neo4j Azure Resource Manager (ARM) template hosted on GitHub. +// [[azure]] +// = Neo4j on Azure -Neo4j can be easily deployed on Virtual Machine instances in Microsoft Azure by using the link:https://azuremarketplace.microsoft.com/en-us/marketplace/apps/neo4j.neo4j-ee?tab=Overview[official listing for Neo4j Enterprise] on the Azure Marketplace. +// Neo4j can be easily deployed on Virtual Machine instances in Microsoft Azure by using the link:https://azuremarketplace.microsoft.com/en-us/marketplace/apps/neo4j.neo4j-ee?tab=Overview[official listing for Neo4j Enterprise] on the Azure Marketplace. -The Azure Marketplace listing uses an Azure Resource Manager (ARM) template maintained by Neo4j. -The template's code is available on link:https://github.com/neo4j-partners/azure-resource-manager-neo4j/tree/main/marketplace[GitHub] and can be customized to meet more complex or bespoke use cases. +// The Azure Marketplace listing uses an Azure Resource Manager (ARM) template maintained by Neo4j. +// The template's code is available on link:https://github.com/neo4j-partners/azure-resource-manager-neo4j/tree/main/marketplace[GitHub] and can be customized to meet more complex or bespoke use cases. -[NOTE] -==== -Neo4j does not provide Azure Marketplace Virtual Machine Images with a pre-installed version of the product. -The Neo4j Azure Marketplace listings (and listings on GitHub) use Azure Resource Manager (ARM) templates that deploy and configure Neo4j dynamically with a shell script. -==== +// [NOTE] +// ==== +// Neo4j does not provide Azure Marketplace Virtual Machine Images with a pre-installed version of the product. +// The Neo4j Azure Marketplace listings (and listings on GitHub) use Azure Resource Manager (ARM) templates that deploy and configure Neo4j dynamically with a shell script. +// ==== -== Supported Neo4j versions +// == Supported Neo4j versions -The Neo4j link:https://azuremarketplace.microsoft.com/en-us/marketplace/apps/neo4j.neo4j-ee?tab=Overview[Azure marketplace listing] can be configured to deploy either Neo4j Enterprise Edition 5 or 4.4. -The ARM template always installs the latest available version. +// The Neo4j link:https://azuremarketplace.microsoft.com/en-us/marketplace/apps/neo4j.neo4j-ee?tab=Overview[Azure marketplace listing] can be configured to deploy either Neo4j Enterprise Edition 5 or 4.4. +// The ARM template always installs the latest available version. -== Neo4j ARM template +// == Neo4j ARM template -Azure Resource Manager (ARM) is a declarative Infrastructure as Code (IaC) language that is based on JSON and instructs Azure to deploy a set of cloud resources. +// Azure Resource Manager (ARM) is a declarative Infrastructure as Code (IaC) language that is based on JSON and instructs Azure to deploy a set of cloud resources. -The Neo4j ARM 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 ARM 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. -=== Important considerations +// === Important considerations -* The deployment of cloud resources incurs costs. -** Refer to the link:https://azure.microsoft.com/en-gb/pricing/calculator/[Azure pricing calculator]for more information. +// * The deployment of cloud resources incurs costs. +// ** Refer to the link:https://azure.microsoft.com/en-gb/pricing/calculator/[Azure pricing calculator]for more information. -* You need to create a resource group. -** You need to choose an empty resource group or create a new one. +// * You need to create a resource group. +// ** You need to choose an empty resource group or create a new one. -* An active Azure subscription is required. +// * An active Azure subscription is required. -=== Input parameters (Instance Details) +// === Input parameters (Instance Details) -[cols="<31s,69",frame="topbot",options="header"] -|=== +// [cols="<31s,69",frame="topbot",options="header"] +// |=== -| Parameter Name -| Description +// | Parameter Name +// | Description -| Region -| The Azure region in which cloud resources should be deployed. +// | Region +// | The Azure region in which cloud resources should be deployed. -| Admin password -| A password for the `neo4j` user. The password must be between 12 and 72 characters long, and contain characters from at least 3 of the following groups: uppercase characters, lowercase characters, numbers, and special characters. -|=== +// | Admin password +// | A password for the `neo4j` user. The password must be between 12 and 72 characters long, and contain characters from at least 3 of the following groups: uppercase characters, lowercase characters, numbers, and special characters. +// |=== -=== Input parameters (Neo4j Config) +// === Input parameters (Neo4j Config) -[cols="<31s,69",frame="topbot",options="header"] -|=== +// [cols="<31s,69",frame="topbot",options="header"] +// |=== -| Parameter Name -| Description +// | Parameter Name +// | Description -| Virtual Machine Size -| The class of Azure VM Instances to use. +// | Virtual Machine Size +// | The class of Azure VM Instances to use. -| Node Count -| The number of desired Virtual Machine instances to be used to form a Neo4j cluster (a minimum of 3 instances is required to form a cluster). +// | Node Count +// | The number of desired Virtual Machine instances to be used to form a Neo4j cluster (a minimum of 3 instances is required to form a cluster). -| Disk Size -| Size (in GB) of the secondary volume on each Azure VM instance. +// | Disk Size +// | Size (in GB) of the secondary volume on each Azure VM instance. -| Graph Database Version -| Select either 5 or 4.4. +// | Graph Database Version +// | Select either 5 or 4.4. -| Install Graph Data Science -| An option to install Graph Data Science (GDS). Accepted values are `Yes` or `No`. +// | Install Graph Data Science +// | An option to install Graph Data Science (GDS). Accepted values are `Yes` or `No`. -| 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. +// | 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. -| Install Bloom -| Optionally install Neo4j Bloom. Accepted values are `Yes` or `No`. +// | Install Bloom +// | Optionally install Neo4j Bloom. Accepted values are `Yes` or `No`. -| 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. -|=== +// | 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. +// |=== -=== Deployed cloud resources +// === Deployed cloud resources -The environment created by the ARM template consists of the following Azure resources: +// The environment created by the ARM template consists of the following Azure resources: -* 1 Virtual Network, with a CIDR range (address space) of `10.0.0.0/8`. -** A single subnet with the following CIDR range: -*** `10.0.0.0/16` -** A network security group. -* A Virtual Machine Scale-Set (VMSS), which creates: -** 1, or between 3 and 10 Virtual Machine instances (Depending on whether a single instance or an autonomous cluster is selected). -* 1 Load Balancer. +// * 1 Virtual Network, with a CIDR range (address space) of `10.0.0.0/8`. +// ** A single subnet with the following CIDR range: +// *** `10.0.0.0/16` +// ** A network security group. +// * A Virtual Machine Scale-Set (VMSS), which creates: +// ** 1, or between 3 and 10 Virtual Machine instances (Depending on whether a single instance or an autonomous cluster is selected). +// * 1 Load Balancer. -=== Template outputs +// === Template outputs -After the deployment finishes successfully, the ARM template provides the following outputs, which can be found in the *Outputs* section of the deployments page in the Azure console. +// After the deployment finishes successfully, the ARM template provides the following outputs, which can be found in the *Outputs* section of the deployments page in the Azure console. -[NOTE] -==== -At the end of the deployment process, Azure runs a validation. -If the validation fails, it might be because you have chosen VMs that are too large and exceed your Azure quota. -==== +// [NOTE] +// ==== +// At the end of the deployment process, Azure runs a validation. +// If the validation fails, it might be because you have chosen VMs that are too large and exceed your Azure quota. +// ==== -[cols="<31s,69",frame="topbot",options="header"] -|=== +// [cols="<31s,69",frame="topbot",options="header"] +// |=== -| Output Name -| Output Description +// | Output Name +// | Output Description -| neo4jBrowserURL -| The http URL of the Neo4j Browser. +// | neo4jBrowserURL +// | The http URL of the Neo4j Browser. -| username -| The username `neo4j` which is required to log into the Neo4j Browser. +// | username +// | The username `neo4j` which is required to log into the Neo4j Browser. -|=== +// |=== -== Cluster version consistency +// == Cluster version consistency -When the ARM template creates a new Neo4j cluster, a Virtual Machine Scale Set (VMSS) is created and tagged with the minor version of the installed Neo4j database. -If you add more VM instances to your VMSS, they will be installed using the same minor version, ensuring that all Neo4j cluster servers are installed with the same version, regardless of when the VM instances were created. +// When the ARM template creates a new Neo4j cluster, a Virtual Machine Scale Set (VMSS) is created and tagged with the minor version of the installed Neo4j database. +// If you add more VM instances to your VMSS, they will be installed using the same minor version, ensuring that all Neo4j cluster servers are installed with the same version, regardless of when the VM instances were created. -[role=label--enterprise-edition] -== Licensing +// [role=label--enterprise-edition] +// == Licensing -// label:Enterprise[] +// // label:Enterprise[] -Installing and starting Neo4j from the Azure marketplace constitutes an acceptance of the Neo4j license agreement. -When deploying Neo4j, users are required to confirm that they either have an enterprise license. +// Installing and starting Neo4j from the Azure marketplace constitutes an acceptance of the Neo4j license agreement. +// When deploying Neo4j, users are required to confirm that they either have an enterprise license. -If you require the Enterprise version of either Graph Data Science or Bloom, you need to provide a key issued by Neo4j as this will be required during the installation. +// If you require the Enterprise version of either Graph Data Science or Bloom, you need to provide a key issued by Neo4j as this will be required during the installation. -To obtain a valid license for either Neo4j, Bloom, or GDS, reach out to your Neo4j account representative or get in touch using the link:https://neo4j.com/contact-us/[contact form]. +// To obtain a valid license for either Neo4j, Bloom, or GDS, reach out to your Neo4j account representative or get in touch using the link:https://neo4j.com/contact-us/[contact form]. -== Delete Azure deployment Stack and destroy resources +// == Delete Azure deployment Stack and destroy resources -In order to completely delete the deployment, the resource group can be deleted. \ No newline at end of file +// In order to completely delete the deployment, the resource group can be deleted. \ No newline at end of file diff --git a/modules/ROOT/pages/cloud-deployments/neo4j-gcp.adoc b/modules/ROOT/pages/cloud-deployments/neo4j-gcp.adoc index 5c5e57470..9d9afd881 100644 --- a/modules/ROOT/pages/cloud-deployments/neo4j-gcp.adoc +++ b/modules/ROOT/pages/cloud-deployments/neo4j-gcp.adoc @@ -1,99 +1,229 @@ :description: Deploy Neo4j on Google Cloud Platform (GCP) directly from the GCP Marketplace or by using the Neo4j Deployment Manager templates hosted on GitHub. +:page-role: enterprise-edition [[gcp]] = Neo4j on GCP -Neo4j Edition can be easily deployed on Virtual Machines in Google Cloud Platform (GCP) by using the link:https://console.cloud.google.com/marketplace/product/neo4j/neo4j-enterprise-edition[official listing for Neo4j Enterprise Edition] or link:https://console.cloud.google.com/marketplace/product/neo4j/neo4j-community-edition?project=cohesive-point-368015[Neo4j Community Edition] on the GCP Marketplace]. - -The GCP Marketplace listing uses a Deployment Manager template maintained by Neo4j. -The template's code is available on link:https://github.com/neo4j-partners/google-deployment-manager-neo4j[GitHub] and can be customized to meet more complex or bespoke use cases. - - -[NOTE] -==== -Neo4j does not provide pre-built Virtual Machine (VM) images with a pre-installed version of the product. -The Neo4j GCP Marketplace listings (and listings on GitHub) use Deployment Manager templates that deploy and configure Neo4j dynamically with a shell script. -==== - -== Supported Neo4j versions - -The Neo4j link:https://console.cloud.google.com/marketplace/product/neo4j/neo4j-enterprise-edition[GCP marketplace listing] can be configured to deploy either Neo4j Enterprise Edition 5, or 4.4, or Neo4j Community Edition 5. -The Deployment Manager template always installs the latest available version. - -== Neo4j Deployment Manager template -Google Cloud Deployment Manager is an infrastructure deployment service that automates the creation and management of Google Cloud resources. - -The Neo4j Deployment Manager 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. - -=== Important considerations - +Neo4j can be easily deployed on Virtual Machines in Google Cloud Platform (GCP) by using the link:https://console.cloud.google.com/marketplace/product/neo4j-mp-public/neo4j-enterprise-edition[official listing] on the GCP Marketplace. +It can be configured to deploy only Neo4j Enterprise Edition 2025.x, both standalone and cluster (1, 3, 4, 5, 6, or 7 servers). +Previous versions of Neo4j, such as 4.4 and 5.26 LTS are no longer supported. + +== Neo4j Terraform deployment module + +The GCP Marketplace listing uses HashiCorp Terraform IaC tool to deploy Neo4j Enterprise Edition on GCP. +HashiCorp Terraform is an infrastructure deployment module, which automates the creation and management of Google Cloud resources. +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. + +You can find the repository for the Terraform configuration files on link:https://github.com/neo4j-partners/gcp-tf-neo4j[GitHub]. +The repository structure is as follows: + +``` +neo4j-terraform-gcp/ +├── modules/ # Terraform modules +│ └── neo4j/ # Main Neo4j module +│ ├── scripts/ # Startup scripts for Neo4j +│ ├── main.tf # Main module configuration +│ ├── network.tf # Network configuration +│ ├── variables.tf # Module variables +│ ├── outputs.tf # Module outputs +│ └── versions.tf # Module provider requirements +├── test/ # Test configurations +├── metadata.yaml # GCP Marketplace metadata +├── metadata.display.yaml # GCP Marketplace display metadata +├── logo.png # Logo for GCP Marketplace +├── main.tf # Root module configuration +├── variables.tf # Root module variables +├── outputs.tf # Root module outputs +├── versions.tf # Provider and version constraints +└── terraform.tfvars.example # Example variables file +``` + +== Important considerations +//TO CHECK with Bledi if these points are still valid or need updating * The deployment of cloud resources incurs costs. -** Refer to the link:https://cloud.google.com/products/calculator[GCP pricing calculator]for more information. +Refer to the link:https://cloud.google.com/products/calculator[GCP pricing calculator]for more information. -* The Neo4j Deployment Manager template deploys a new VPC, containing a single subnet based in the requested region. -** Unlike Azure and AWS where subnets are aligned to specific zones, GCP subnets are regional (and VPCs are global). +* The Neo4j Terraform module deploys a new VPC, containing a single subnet based in the requested region. +Unlike Azure and AWS where subnets are aligned to specific zones, GCP subnets are regional (and VPCs are global). -* The Neo4j Deployment Manager template uses an Instance Group to deploy VM instances. -** To stop a VM managed by a group, you must first remove it from that group. +* The Neo4j Terraform module uses an Instance Group to deploy VM instances. +To stop a VM managed by a group, you must first remove it from that group. * Instances can be connected via SSH, using SSH-in-browser (via the GCP console). -** Click the *SSH* button in the GCP console. - +Click the *SSH* button in the GCP console. + +== Deployment steps + +Before deploying Neo4j using the Terraform module, ensure you have the following prerequisites in place: + +* Terraform 1.2.0 or newer. +See the link:https://developer.hashicorp.com/terraform/install[official Terraform installation guide] for instructions. +* Google Cloud SDK +* A GCP project with billing enabled +* Appropriate permissions to create resources in GCP +* Default project configured in `gcloud` CLI (`gcloud config set project YOUR_PROJECT_ID`) + + +=== Option 1: Deploy from GCP Marketplace + +. Visit the link:https://console.cloud.google.com/marketplace/product/neo4j-mp-public/neo4j-enterprise-edition[Neo4j Enterprise listing on GCP Marketplace]. +. Click *Launch*. +. Configure the deployment parameters. +See <> for details on each parameter. +. Review and click *Launch*. + +=== Option 2: Use the module directly + +. Ensure your default GCP project is set in gcloud CLI: ++ +[source, bash] +---- +gcloud config set project YOUR_PROJECT_ID +---- + +. Copy `terraform.tfvars.example` to `terraform.tfvars` and update the values. +See <> for details on each parameter. +. Initialize Terraform in the directory containing the Terraform configuration files: ++ +[source,bash] +---- +terraform init +---- + +. Plan the deployment: ++ +[source,bash] +---- +terraform plan +---- + +. Apply the configuration: ++ +[source,bash] +---- +terraform apply +---- + +[[input-parameters]] === Input parameters -[cols="<31s,69",frame="topbot",options="header"] -|=== +The following variables can be configured in your `terraform.tfvars` file. +The complete list of inputs can be found in the _./variables.tf_ file. +[NOTE] +==== +* When deploying through GCP Marketplace, the `source_image` variable will be automatically set to the Marketplace-owned version of the VM image. +* For production deployments, it is recommended to restrict the `firewall_source_range` to specific IP ranges. +* The default machine type (c3-standard-4) is suitable for most workloads, but can be adjusted based on your requirements. +* For large datasets, consider increasing the `disk_size` parameter. +* The startup script includes robust error handling and non-interactive installation to ensure reliable deployment. +==== + +[cols="3m,2,4a,2m",frame="topbot",options="header"] +|=== +| Variable | Parameter Name | Description - -| Deployment name -| A name for the deployment, e.g., `neo4j-enterprise-edition`. The deployment name can include letters (A-Z and a-z), numbers (0-9), and dashes (-). - -| Graph Database Version -| Select either 5 or 4.4. - -| Node Count -| Specify the number of desired VMs to be used to form a Neo4j cluster (a minimum of 3 instances is required to form a cluster). - -| Node Type -| The class of VM to use. - -| Disk Type -| The type of disk volume to use on each VM instance. - -| Disk Size in GB -| Size (in GB) of the disk volume on each VM instance. Persistent disk performance is tied to the size of the persistent disk volume. You are charged by GCP for the actual amount of provisioned disk space. - -| Admin Password -| A password for the `neo4j` user (minimum of 8 characters). - -| Install Graph Data Science -| An option (checkbox) to install Graph Data Science (GDS). - -| Graph Data Science License Key -| A valid GDS license key can be pasted into this field. License keys are sent to and stored by Neo4j. This information is used only for product activation purposes. - -| Install Bloom -| An option (checkbox) to install Neo4j Bloom. - +| Default Value + +| project_id +| Project ID +| GCP Project ID of the project in which to provision resources. +| (Required) + +| license_type +| License type +| Neo4j license type (enterprise-byol or evaluation). +| enterprise-byol + +| region +| Region +| The GCP region where resources will be created. +| us-central1 + +| zone +| Zone +| The zone for the solution to be deployed. +| us-central1-a + +| goog_cm_deployment_name +| Deployment Name +| The name of the deployment and VM instances. +| neo4j + +| source_image +| Image version +| The VM image to use for Neo4j instances. +| projects/neo4j-mp-public/global/images/neo4j-enterprise-edition + +| network_name +| Network name +| The name of the VPC network to use or create. +| neo4j-network + +| subnetwork_name +| Subnetwork name +| The name of the subnetwork to use or create. +| neo4j-subnet + +| create_new_network +| Create a new network +| Whether to create a new network or use an existing one +| true + +| subnetwork_cidr +| Subnetwork CIDR +| CIDR range for the subnetwork. +| 10.10.10.0/24 + +| node_count +| Number of servers +| Number of Neo4j servers to deploy. Node count must be 1 (standalone) or 3/5/7 (cluster) +| 3 + +| machine_type +| Machine type +| GCP machine type for the Neo4j servers. +| c3-standard-4 + +| disk_size +| Disk size in GB +| Size of the data disk in GB. +| 100 + +| admin_password +| Admin password +| Password for the Neo4j admin user. The password must be at least 8 characters long. +| (Required) + +| install_bloom +| Install Neo4j Bloom +| Whether to install Neo4j Bloom. +| false + +| bloom_license_key | Bloom License Key -| A valid Bloom license key can be pasted into this field. License keys are sent to and stored by Neo4j. This information is used only for product activation purposes. +| License key for Neo4j Bloom (if installing). +| "" + +| firewall_source_range +| Firewall source ranges +| Source IP ranges for external access (comma-separated). Traffic is only allowed from sources within these IP address ranges. Use CIDR notation when entering ranges. +| 0.0.0.0/0 |=== === Deployed cloud resources -The environment created by the Deployment Manager template consists of the following GCP resources: +The environment created by the Terraform module consists of the following GCP resources: -* 1 subnet with a CIDR range (address space) of `10.128.0.0/20`. -** Internal and external firewall rulesets. -* An Instance Group (and Instance Group template) which creates: -** 1, or between 3 and 10 VM instances (Depending on whether a single instance or an autonomous cluster is selected). -* 1 TCP (Layer 4) Load Balancer. +. A VPC network and subnetwork (optional). +. Firewall rules for internal and external access. +. Neo4j VMs with attached persistent disks. +. Configures Neo4j for standalone or clustered operation. === Template outputs -After the installation finishes successfully, the Deployment Manager template provides the following outputs: +After the installation finishes successfully, the Terraform module provides the following outputs: [cols="<31s,69",frame="topbot",options="header"] |=== @@ -101,15 +231,23 @@ After the installation finishes successfully, the Deployment Manager template pr | Output Name | Description -| Neo4j Browser address -| The http URL of the Neo4j Browser. +| neo4j_url +| URL to access Neo4j Browser. + +| neo4j_bolt_url +| Bolt URL to connect to Neo4j. -| Database region -| The region in which the Neo4j cluster has been deployed. +| neo4j_ip_addresses +| IP addresses of the Neo4j nodes. -| Database machine type -| The class of VMs that have been deployed. +| neo4j_instance_names +| Names of the Neo4j instances. +| neo4j_instance_zones +| Zones where Neo4j instances are deployed. + +| neo4j_instance_machine_types +| Machine types of Neo4j instances. |=== [NOTE] @@ -117,19 +255,46 @@ After the installation finishes successfully, the Deployment Manager template pr The Neo4j Browser can be easily launched in a new window by clicking the button entitled *Log into the Neo4j Browser*. ==== +=== Providers used -[role=label--enterprise-edition] -== Licensing +This module only uses the following approved GCP Marketplace providers: + +* google +* google-beta + +=== Testing the module + +The module includes test configurations in the _test/_ directory, which can be used to validate the deployment. +The following test scripts are provided: + +* `verify_module.sh`: Basic verification for GCP Marketplace +* `test_deployment.sh`: Comprehensive deployment testing using marketplace_test.tfvars -// label:Enterprise[] +The test script performs thorough checks to verify: + +* All instances are properly deployed. +* Neo4j services are running and accessible. +* Neo4j Browser and Bolt interfaces are operational. +* Cluster configuration is properly set up. + +== Licensing Installing and starting Neo4j from the GCP marketplace constitutes an acceptance of the Neo4j license agreement. When deploying Neo4j, you are required to confirm that you either have an Enterprise license or accept the terms of the Neo4j evaluation license. -If you require the Enterprise version of either Graph Data Science or Bloom, you need to provide a key issued by Neo4j as this is required during the installation. +If you require the Enterprise version of Bloom, you need to provide a key issued by Neo4j as this is required during the installation. -To obtain a valid license for either Neo4j, Bloom, or GDS, reach out to your Neo4j account representative or get in touch using the link:https://neo4j.com/contact-us/[contact form]. +To obtain a valid license for Bloom reach out to your Neo4j account representative or get in touch using the link:https://neo4j.com/contact-us/[contact form]. == Delete deployment and destroy resources -Navigate to the Deployment Manager section of the GCP console, select the deployment you wish to delete, and click the *Delete* button. +To delete the deployment and destroy all associated resources, you can use the following Terraform command: + +[source,console] +---- +terraform destroy +---- + +This command will prompt you to confirm the destruction of all resources defined in your Terraform configuration. +Review the proposed changes carefully before confirming. +For detailed information on the `terraform destroy` command, refer to the link:https://developer.hashicorp.com/terraform/cli/commands/destroy[official Terraform documentation]. \ No newline at end of file