기술 자료

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
enable\_multi\_az
to true. Note that multi-AZ deployment increases cost.
After 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 DashboardThe web interface for users to interact with the system.
Backend ServicesThe core services that manage assets and their metadata. The services store all critical information in MongoDB and search indexes in Elasticsearch.
KeycloakThe identity and access management system that provides authentication, stores roles, and integrates with identity providers.
Mini USFA lightweight service that provides an interface through which Asset Manager backend services communicate with Keycloak.
StorageThe 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 from
    LoadBalancer
    to
    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