엔터프라이즈 규모 확장
Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
Mattermost는 단일 서버에서 운영하는 소규모 팀부터 클러스터 기반 고가용성 배포 구성으로 운영하는 대기업까지 확장할 수 있도록 설계되었습니다.
- Mattermost는 모든 64비트 x86 프로세서 아키텍처를 지원합니다
- 지원 데이터베이스: PostgreSQL, Amazon RDS for PostgreSQL
- 지원 스토리지: Amazon S3 또는 로컬 파일스토어
서버 요구 사항은 사용 형태에 따라 달라지므로, 전사 규모로 배포하기 전에 파일럿을 운영하여 조직의 구체적인 필요에 맞는 전체 규모 사용량을 추정할 것을 강력히 권장합니다.
백킹 스토리지
로컬 파일 시스템(EBS, gp3), 네트워크 파일 시스템(EFS), 오브젝트 스토리지(S3) 등 지원되는 스토리지 옵션에 대한 쓰기·읽기 스토리지 벤치마크 결과를 자세히 검토하고, 사용 사례와 인프라 요구에 맞는 결정을 내리세요.
엔터프라이즈 검색
대규모 엔터프라이즈 배포에서는 클러스터 환경에서 매우 효율적인 데이터베이스 검색을 수행할 수 있도록 전용 서버를 사용할 것을 강력히 권장합니다.
게시물이 500만 건을 넘는 배포에서는 Elasticsearch 또는 AWS OpenSearch Service를 사용하는 엔터프라이즈 검색이 필요합니다. 클러스터 지원을 통해 전용 인덱싱과 사용량 기반 리소스 할당이 이루어지므로 성능 저하와 타임아웃 없이 검색 성능이 최적화되고, 더 빠르고 예측 가능한 검색 결과를 얻을 수 있습니다.
고가용성
고가용성 클러스터 기반 배포를 사용하면 중복 인프라를 통해 장애와 하드웨어 고장이 발생하는 동안에도 Mattermost 시스템이 서비스를 유지할 수 있습니다.
Redis
Redis는 데이터베이스, 캐시, 메시지 브로커로 사용할 수 있는 인메모리 데이터 구조 저장소입니다. Mattermost는 대규모 환경에서 성능을 높이기 위해 Redis를 외부 캐시로 사용합니다. 적절히 구성하면 Redis는 효율적인 캐싱으로 성능을 개선해 사용자 100,000명이 넘는 Mattermost 설치 환경을 지원하는 데 도움이 됩니다.
사용 가능한 참조 아키텍처
다음 참조 아키텍처는 자체 호스팅 Mattermost 배포의 권장 출발점으로 제공됩니다. 여기서 사용자 수는 해당 배포의 동시 접속 사용자 수를 가리킵니다. 동시 접속 사용자 수는 일반적으로 전체 사용자 계정 수보다 적습니다.
- 200명 규모 확장 - Mattermost를 최대 200명 규모로 확장하는 방법을 알아보세요.
- 2,000명 규모 확장 - Mattermost를 최대 2000명 규모로 확장하는 방법을 알아보세요.
- 15,000명 규모 확장 - Mattermost를 최대 15000명 규모로 확장하는 방법을 알아보세요.
- 30,000명 규모 확장 - Mattermost를 최대 30000명 규모로 확장하는 방법을 알아보세요.
- 50,000명 규모 확장 - Mattermost를 최대 50000명 규모로 확장하는 방법을 알아보세요.
- 80,000명 규모 확장 - Mattermost를 최대 80000명 규모로 확장하는 방법을 알아보세요.
- 90,000명 규모 확장 - Mattermost를 최대 90000명 규모로 확장하는 방법을 알아보세요.
- 100,000명 규모 확장 - Mattermost를 최대 100000명 규모로 확장하는 방법을 알아보세요.
- 200,000명 규모 확장 - Mattermost를 최대 200000명 규모로 확장하는 방법을 알아보세요.
테스트 여건상 이 참조 아키텍처를 도출한 모든 확장 테스트에서 프록시 인스턴스 사양은 고정했습니다. 테스트 변수가 조합적으로 폭증하는 것을 막기 위한 조치였지만, 그 결과 참조 아키텍처의 일부 측면에 대한 이해에 작은 공백이 남았습니다. 특히 프록시 인스턴스는 사용자 수가 적은 구성에서 사양이 과도하게 책정되어 있습니다.
테스트 방법론과 업데이트
모든 테스트는 Mattermost 개발 팀이 제작한 자체 부하 테스트 도구로 실행하여 각 배포 규모에서 지원 가능한 사용자 수를 판단했습니다. 이 가이드는 시간이 지나면서 새로운 배포 규모와 배포 아키텍처가 추가되고, 최신 버전의 Mattermost 서버도 ESR을 사용해 테스트한 결과가 반영될 예정입니다.
큰 틀에서 각 배포 규모(Mattermost 서버 노드 수·사양, 데이터베이스 리더·라이터 수·사양)를 고정한 뒤, 상한 없는 테스트를 통해 해당 배포가 지원할 수 있는 최대 동시 접속 사용자 수를 측정했습니다. 각 테스트에는 데이터가 채워진 PostgreSQL v14 데이터베이스와 게시물 테이블 기록 1억 건, 사용자 약 200000명, 팀 20개, 채널 약 720000개를 포함하여 프로덕션 Mattermost 배포를 시뮬레이션했습니다.
테스트는 시뮬레이션된 각 사용자가 실행하는 동작(과 그 동작의 빈도) 구성으로 정의했으며, 코디네이터 지표가 부하 상태에서의 정상 시스템을 규정합니다. 테스트는 Mattermost v9.5 Extended Support Release(ESR)에서 수행했습니다. 잡 서버는 사용하지 않았습니다. 앱 노드가 둘 이상인 모든 테스트에서는 앞단에 NGINX 프록시를 두고 실행했습니다.
200K 사용자 대상의 마지막 테스트에서는 인프라를 추가로 변경했습니다. Elasticsearch 노드를 추가했고, Redis 인스턴스를 추가했으며, 여러 대의 NGINX 프록시를 사용해 클러스터의 모든 노드에 트래픽을 고르게 분산했습니다. 자세한 내용은 200,000명 규모 확장 문서 페이지에서 확인할 수 있습니다.
게시물 1억 건이 담긴 고정 데이터베이스 덤프를 포함해 전체 테스트 방법론, 구성, 설정을 제공합니다. 자세한 내용은 Mattermost Community를 방문해 Developers: Performance 채널에 참여하세요.
이 참조 아키텍처에서 제시하는 성능 사양과 사용자 수용량은 AWS 환경에서 수행한 광범위한 테스트를 기반으로 합니다.
Azure 배포의 경우, AWS 성능 데이터와 업계 전문 지식을 바탕으로 동등한 구성을 사용해 인스턴스 사양을 추정했습니다. 이 구성들은 명시된 요구 사항을 충족하도록 설계되었으나, 부하 상태에서의 성능을 검증하기 위한 공식 테스트는 아직 Azure 환경에서 수행하지 않았습니다. Azure Blob Storage 지원은 활발히 개발 중이며, 아직 Mattermost에서 기본 지원하지 않습니다.
Mattermost 부하 테스트 도구
Mattermost는 무거운 부하 상태의 Mattermost를 프로파일링하고 대규모 서버 설치 환경의 실제 사용을 시뮬레이션할 수 있도록 Go로 작성된 도구 모음을 제공합니다. Mattermost Load Test Tool은 대상 시스템이 지원하는 최대 동시 활성 사용자 수를 추정하고, 생성할 부하를 제어할 수 있게 해 줍니다.
도구를 시작하는 방법은 GitHub의 Mattermost Load Test Tool 문서를 참고하고, 코드 관련 문서는 Go 문서를 참고하세요.
- Mattermost Load Test Tool은 Mattermost 성능 엔지니어가 새 릴리스를 준비하기 위해 월별로 서비스 성능을 비교·벤치마크할 목적으로 설계하고 사용하는 도구입니다. 권장 하드웨어 사양을 산정하는 데에도 널리 사용됩니다.
- 지속적인 모니터링과 확장 지침을 위해 Prometheus와 Grafana를 대시보드와 함께 배포할 것을 권장합니다.
- 성능 문제가 발생하면 문제 해결의 첫 단계로 성능 지표를 수집해 Mattermost에 공유할 것을 권장합니다.
라이브 데모를 예약하거나 Mattermost 전문가와 상담하여 조직의 보안 협업 요구에 맞춘 솔루션을 살펴보세요. 또는 1시간 미리보기로 라이브 샌드박스 환경에 즉시 접속해 Mattermost를 직접 사용해 볼 수도 있습니다.