SaltStack Config를 설치하는 데 필요한 시스템 아키텍처는 두 가지 주요 요소, 즉 1) SaltStack Config를 배포하는 데 사용하는 설치 방법과 2) 환경의 처리량, 다시 말해 SaltStack Config를 사용하여 시스템에서 수행할 작업의 양에 따라 달라집니다.

시작하기 전에

시스템 아키텍처 요구 사항을 정확하게 평가하려면 먼저 다음 사항을 숙지해야 합니다.

  • SaltStack Config에 사용할 수 있는 두 가지 설치 방법
  • SaltStack Config SaltStack 아키텍처의 4가지 기본 구성 요소(RaaS, Salt 마스터, PostgreSQL 및 Redis)

설치 프로세스의 일반 개요를 포함한 이러한 개념에 대한 개요는 SaltStack Config 설치 및 구성 항목을 참조하십시오. 설치 시나리오 선택 지침은 어떤 설치 시나리오를 사용해야 합니까? 항목을 참조하십시오.

참고:

SaltStack Config는 오픈 소스 자동화 및 구성 관리 엔진인 Salt에 의해 구동됩니다. Salt에서 사용되는 주요 용어(Salt 마스터, Salt 미니언 등)에 익숙하지 않은 경우 Salt 시스템 아키텍처에서 자세한 내용을 참조하십시오.

미니언 아키텍처 결정

SaltStack Config 컨텍스트에서 미니언은 일반적으로 하나 이상의 Salt 마스터를 통해 SaltStack Config에 연결되고 여기에서 관리되는 운영 환경의 노드를 나타냅니다.

Salt는 미니언에서 실행 중일 수 있는 모든 운영 체제와 함께 작동하도록 설계되었습니다. Salt는 표준 운영 체제(Linux, Windows, MacOS) 외에도 Arista, Juniper, AIX 및 Solaris와 같은 다양한 네트워크 디바이스에 고유한 운영 체제를 위한 특수한 미니언 소프트웨어(보통 "네이티브 미니언"이라고 함)를 제공합니다.

이 표에는 Salt 미니언 서비스에 대한 최소 메모리 요구 사항이 운영 체제별로 나열되어 있습니다.

운영 체제 최소 메모리 요구 사항
AIX 미니언 512 MB RAM
MacOS 미니언 4GB RAM
Linux 미니언 512 MB RAM
Windows 미니언 4GB RAM
프록시 미니언을 포함한 기타 네트워크 디바이스 제어되는 디바이스당 40MB RAM

설치 시나리오 결정

설치 시나리오 선택 지침은 어떤 설치 시나리오를 사용해야 합니까? 항목을 참조하십시오. 시스템에 가장 적합한 설치 방법을 모를 경우 표준 설치를 권장합니다. 1,000개 이상의 노드가 있는 운영 환경 수준 시스템에는 Lifecycle Manager 설치 방법이 권장되지 않습니다.

Lifecycle Manager 설치를 선택하는 경우 노드가 하나만 있어야 하며 다음 시스템 아키텍처가 필요합니다.

하드웨어 노드 최대 1,000개(미니언)
코어 CPU 코어 8개
RAM 16GB RAM
디스크 공간 최소 40GB의 사용 가능한 공간

이 가이드의 나머지 부분에서는 표준 설치 시나리오에 대한 아키텍처 요구 사항을 설명합니다.

관리할 Salt 미니언의 수를 예상합니다.

설치 전에 시스템의 처리량을 측정하기는 어렵지만 SaltStack Config에서 관리할 시스템의 미니언(노드) 수에 따라 요구 사항을 예상할 수 있습니다. 이 가이드의 마지막 섹션에서는 시스템 처리량을 결정하기 위한 추가 측정값을 제공합니다.

SaltStack Config에서 더 많은 Salt 미니언을 관리하게 되면 그에 맞게 시스템 아키텍처를 늘려야 할 수 있습니다.

필요한 Salt 마스터 수 예상

이 표에는 시스템에서 관리되는 Salt 미니언(노드) 수에 따라 필요할 수 있는 권장 Salt 마스터 수가 나와 있습니다.

미니언 Salt 마스터(CPU 16개/16GB)
5,000 1
10,000 2
15,000 3
20,000 4
25,000 5
30,000 6
35,000 7
40,000 8
45,000 9
50,000 10
55,000 11
60,000 12
65,000 13
70,000 14
75,000 15
80,000 16
85,000 17
90,000 18
95,000 19
100,000 20
참고:

이 설명서는 SaltStack Config 온-프레미스 아키텍처에 대해 설명합니다. SaltStack Config Cloud는 현재 Salt 마스터 하나만 실행할 수 있습니다. 즉, 20,000개 미만의 미니언으로 제한됩니다.

필요한 RaaS 노드 수 예상

이 표에는 시스템에서 관리되는 Salt 미니언(노드) 수에 따라 필요할 수 있는 권장 RaaS 노드 수가 나와 있습니다.

미니언 RaaS 노드(CPU 16개/16GB) RaaS 노드(CPU 32개/32GB)
5,000 1
10,000 1
15,000 1
20,000 1
25,000 2
30,000 2
35,000 2
40,000 2
45,000 1 1
50,000 1 1
55,000 1 1
60,000 1 1
65,000 2
70,000 2
75,000 2
80,000 2
85,000 1 2
90,000 1 2
95,000 1 2
100,000 1 2

필요한 PostgreSQL 노드 수 예상

다음 두 표에는 시스템에서 관리되는 Salt 미니언(노드) 수에 따라 필요할 수 있는 권장 PostgreSQL 데이터베이스 노드 수가 나와 있습니다.

미니언 PostgreSQL 노드(CPU 8개/8GB) PostgreSQL 노드(CPU 16개/16GB) PostgreSQL 노드(CPU 24개/24GB) PostgreSQL 노드(CPU 32개/32GB)
5,000 1
10,000 1
15,000 1
20,000 1
25,000 1
30,000 1
35,000 1
40,000 1
45,000 1
50,000 1
55,000 1
60,000 1
미니언 PostgreSQL 노드(CPU 48개/48GB) PostgreSQL 노드(CPU 56개/56GB) PostgreSQL 노드(CPU 64개/64GB)
65,000 1
70,000 1
75,000 1
80,000 1
85,000 1
90,000 1
95,000 1
100,000 1

필요한 Redis 노드 수 예상

다음 두 표에는 시스템에서 관리되는 Salt 미니언(노드) 수에 따라 필요할 수 있는 권장 Redis 데이터베이스 노드 수가 나와 있습니다.

미니언 Redis 노드(CPU 4개/4GB) Redis 노드(CPU 8개/8GB) Redis 노드(CPU 12개/12GB)
5,000 1
10,000 1
15,000 1
20,000 1
25,000 1
30,000 1
35,000 1
40,000 1
45,000 1
50,000 1
55,000 1
60,000 1
미니언 Redis 노드(CPU 16개/16GB) Redis 노드(CPU 20개/20GB)
65,000 1
70,000 1
75,000 1
80,000 1
85,000 1
90,000 1
95,000 1
100,000 1

처리량을 기반으로 설치 후 아키텍처 최적화

SaltStack Config 설치를 완료한 후 시스템 모니터링 메트릭을 사용하여 시스템의 처리량 및 아키텍처 요구 사항을 더 잘 결정할 수 있습니다.

모니터링할 대상을 결정할 때는 다음 요소를 고려합니다.

  • 이벤트 시스템의 트래픽 양 - 이벤트 시스템("이벤트 버스"라고도 함)은 Salt 마스터와 Salt 미니언 모두의 프로세스 간 통신에 사용됩니다. 이벤트 버스의 사용량이 많을 때에는 메모리 할당을 늘리는 것을 고려하십시오.
  • 시간당 작업 반환 수 - SaltStack Config에서는 "작업"이라는 용어를 사용하여 SaltStack Config에서 수행하는 각각의 명령과 작업을 나타냅니다. 각 작업은 보고 및 데이터 수집 목적으로 출력을 SaltStack Config로 보냅니다. 지정된 시간에 시스템에서 생성한 작업 반환 수는 아키텍처 요구 사항에 영향을 미칠 수 있습니다.
  • pillar 데이터의 양 - pillar 데이터는 Salt 마스터에 저장해야 하는 데이터입니다. pillar는 주로 비밀 또는 기타 중요 데이터(예: 계정 자격 증명, 암호화 키 또는 암호)를 저장하는 데 사용됩니다. pillar는 상태 파일에 직접 배치하지 않으려는 비밀이 아닌 데이터(예: 구성 데이터)를 저장하는 데에도 유용합니다. Salt 마스터에 저장되는(그리고 나중에 필요에 따라 미니언이 액세스하는) 데이터의 양은 메모리 및 데이터 스토리지 요구 사항에 영향을 줄 수 있습니다.
  • 사용자 지정 입자의 양 - 입자는 Salt에서 특정 작업 또는 명령의 미니언을 대상으로 지정하는 데 사용됩니다. 입자는 각 미니언의 기본 데이터 및 특성을 나타냅니다. Salt에는 사전 구축된 여러 입자가 포함됩니다. 예를 들어 해당 운영 체제, 도메인 이름, IP 주소, 커널, 메모리 및 기타 여러 시스템 속성을 기준으로 미니언을 대상으로 지정할 수 있습니다. 사용자 지정 입자 데이터를 생성하여 시스템에서 고유하게 대상화하는 특성을 기반으로 한 미니언 그룹을 다른 그룹과 구분할 수도 있습니다. 생성하는 사용자 지정 입자 수는 아키텍처 요구 사항에 영향을 줄 수 있습니다.
  • 비콘 및 리액터의 수 - 비콘 시스템은 Salt 미니언의 다양한 시스템 프로세스를 수신 대기할 수 있는 모니터링 도구입니다. 비콘은 리액터를 트리거하여 변경을 구현하거나 문제를 해결하는 데 도움을 줄 수 있습니다. 예를 들어 서비스의 응답 시간이 초과되면 리액터 시스템이 서비스를 다시 시작할 수 있습니다. 하트비트와 결합하면 비콘은 인프라 및 애플리케이션 문제에 대해 미리 작성된 자동 응답을 생성할 수 있습니다. 리액터는 미리 작성된 업데이트 적용 상태를 사용하여 자동 응답으로 Salt를 확장합니다. 시스템에 정기적으로 활성화되는 비콘 및 리액터가 있는 경우 시스템 아키텍처 요구 사항이 증가할 수 있습니다.
  • 디스크 크기 요구 사항 - 관리되는 미니언 수와 스토리지에 보관해야 하는 연간 데이터 양을 기준으로 디스크 크기를 늘려야 할 수 있습니다. 예를 들어 처리량이 높은 시스템이 있고 해당 산업에 적용되는 시스템에 대한 규제가 엄격하여 7-8년 간 데이터를 보존해야 하는 경우 더 큰 디스크와 더 많은 스토리지 용량이 필요할 수 있습니다.
  • 구성 요소의 지리적 위치 및 구성 요소 간 거리 - Salt 마스터와 SaltStack Config(RaaS)를 실행하는 서버 간에 65밀리초 이상의 지연 시간이 있는 경우 문제가 발생할 수 있습니다. 다행히 Salt는 Salt 미니언과 Salt 마스터 간의 지연 시간에 덜 민감합니다. 이러한 구성 요소를 배치할 때는 필요한 경우 마스터를 RaaS에 가깝게 그리고 미니언에 더 멀리 배치하는 것이 좋습니다.
  • 비즈니스에 중요한 작업 - 환경에서 SaltStack Config가 비즈니스에 미치는 중요성을 평가할 때에는 SaltStack Config 운영 중단이 비즈니스에 얼마나 심각한 영향을 미칠지 자문하십시오. 1시간 이상 다운되는 경우 심각한 영향을 줍니까? 그렇다면 SaltStack Config 시스템 아키텍처에 고가용성 요구 사항을 설계해야 할 수 있습니다.

이러한 요인을 기반으로 리소스를 점진적으로 늘려가면서 시스템 성능에 미치는 영향을 모니터링합니다. 예를 들어 4개의 CPU에 메모리 할당을 4GB RAM으로 늘립니다.

다음 이미지는 고가용성 SaltStack Config 아키텍처 설계의 예입니다.

이 이미지에서 알 수 있듯이 많은 고가용성 시스템이 여러 Salt 마스터에 연결됩니다. 고가용성 시스템에서는 PostgreSQL 데이터베이스와 Redis 데이터베이스에 이중화를 구축하여 다른 데이터베이스로 페일오버할 수 있도록 하는 경우가 많습니다. 현재 PostgreSQL 및 Redis에 대한 고가용성 솔루션은 수동 페일오버만 지원합니다.