Overview of the infrastructure
Learn which resources the deployment creates and how to securely expose them through the external load balancer.
阅读时间1 分钟最后更新于 14 天前
Resources
The solution requires at least two subnets for the following Amazon resources:
- The Relational Database Service (RDS) Postgres instance
- The Elastic Kubernetes Service (EKS) cluster
By default, the deployment runs in a single Availability Zone. To deploy across multiple Availability Zones (multi-AZ) for high availability, set the Terraform variable to true. Note that multi-AZ deployment increases cost.
enable\_multi\_azAfter deployment, the following AWS resources are created:
-
The Secrets Manager secret that is used for configuration
-
The RDS Postgres instance
-
The Data Lifecyle Management (DLM) lifecycle policy for EBS volumes
-
The Elastic File System (EFS) file system
-
The EKS cluster
-
The EKS node groups
-
These EKS add-ons:
- EBS Container Storage Interface (CSI) Driver
- EFS CSI Driver
- Pod Identity Agent
- kube-proxy
-
The EC2 instance for a FlexLM license server
Application components
The Asset Solutions system consists of an architecture of microservices that are deployed primarily to a Kubernetes cluster, with the following core components:
Microservice | Description |
|---|---|
| Asset Manager Dashboard | The web interface for users to interact with the system. |
| Backend Services | The core services that manage assets and their metadata. The services store all critical information in MongoDB and search indexes in Elasticsearch. |
| Keycloak | The identity and access management system that provides authentication, stores roles, and integrates with identity providers. |
| Mini USF | A lightweight service that provides an interface through which Asset Manager backend services communicate with Keycloak. |
| Storage | The layer that stores the assets. |
External load balancer
To expose the private resources to the public internet while limiting access, the default deployment process provisions these resources:
-
An external load balancer, to be used as ingress.To disable the loader balancer functionality, change the Terraform variable traefik_service_type fromto
LoadBalancer.NodePort -
A list of allowed IP address ranges in Classless Inter-Domain Routing ranges (CIDR) notation, to limit access.To manage this list, use the Terraform variable allowed_ingress_cidrs.
Next steps
Prerequisites for the deployment