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