Provision cloud infrastructure for NBS 7

This section covers how to provision the underlying cloud infrastructure for NBS 7: the virtual network, the container runtime, and the storage services that your Kubernetes cluster needs before you can deploy containerized applications to it.

NBS 7 is fully supported on both AWS and Azure. Both providers host the same NBS 7 Kubernetes workloads. After the infrastructure is provisioned, the core services and NBS 7 microservices deployment steps are the same. The differences are mainly in how the underlying cloud environment is provisioned.

The pages in this section walk you through verifying and provisioning your cloud environment:

  • AWS: Verify that your AWS account, hardware, software, and network requirements are in place, then use Terraform to provision the VPC, Amazon EKS cluster, and supporting AWS services.
  • Azure: Verify that your Azure subscription, hardware, software, and network requirements are in place, then use Terraform to provision the VNet, AKS cluster, and supporting Azure services.

What gets provisioned

This section uses Terraform to create the following resources in these managed cloud provider services:

Resource AWS service Azure service Description
Container runtime Amazon Elastic Kubernetes Service (Amazon EKS) Azure Kubernetes Service (AKS) The Kubernetes cluster and worker nodes that run the NBS 7 workloads. Your cloud provider manages the Kubernetes control plane for you.
Virtual network Amazon Virtual Private Cloud (Amazon VPC) and subnets Azure Virtual Network (VNet) and subnets NBS 7 runs inside this virtual network, and NBS 6 runs in a separate network. The two networks are connected so that NBS 7 microservices can communicate with the NBS 6 application and database.
Persistent file storage Amazon Elastic File System (Amazon EFS) Azure Files Shared file storage that persists data for the NBS 7 microservices that require it.
Object storage Amazon Simple Storage Service (Amazon S3) Storage account Storage for objects such as Terraform state files.
Encryption keys AWS Key Management Service (AWS KMS) Azure Key Vault (AKV) Encryption keys that various other managed services from your cloud provider use to ensure a robust layer of security.
Load balancer Network Load Balancer (NLB) Azure Application Gateway (AGW) Traefik manages the load balancer and distributes incoming traffic to the Kubernetes ingress controller.
Apache Kafka Amazon Managed Streaming for Apache Kafka (Amazon MSK) HDInsight Kafka cluster Message streaming that the RTR pipeline and Data Ingestion API require.
Metrics collection Amazon Managed Service for Prometheus (AMP) Azure Monitor managed service for Prometheus Collects infrastructure and application metrics from NBS 7 components.
Metrics visualization Amazon Managed Grafana (AMG) Azure Managed Grafana Visualizes metrics from AMP. The default NBS 7 deployment includes dashboards for error rates, request volume, and latency.

The NBS 6 SQL Server database is not provisioned here. NBS 7 reuses the database from your existing NBS 6 deployment. You configure network access between the new VPC or VNet and the existing database in the Network access requirements section of Cloud prerequisites.

In this section

Complete the pages in this section in order:

  • Cloud prerequisites: Verify your AWS or Azure account, hardware, software, network, and security requirements before provisioning begins.
  • Provision cloud environment: Use Terraform to create the virtual network, Kubernetes cluster, and supporting services for NBS 7.