Mattermost 서버 환경 준비

Mattermost v11.11번역일: 2026-09-02원본 보기

이 가이드는 Mattermost 서버를 설치하기 전에 필요한 주요 준비 단계를 데이터베이스와 파일 저장소 시스템 구성을 중심으로 설명합니다.

Mattermost 서버를 설치하기 전에 다음 준비 요구 사항을 확인하세요.

데이터베이스 준비

Mattermost 서버 설치에는 PostgreSQL v14 이상이 필요합니다. MySQL 데이터베이스 지원은 Mattermost v11부터 지원 중단이 시작됩니다. MySQL에서 PostgreSQL로 마이그레이션하는 방법은 PostgreSQL 마이그레이션 문서를 참고하세요.

  1. PostgreSQL 서버 인스턴스를 생성합니다. 자세한 내용은 PostgreSQL 문서를 참고하세요. 설치가 완료되면 PostgreSQL 서버가 실행되고 postgres라는 Linux 사용자 계정이 생성됩니다.

  2. Mattermost 데이터베이스와 사용자를 생성합니다.

    1. 다음 명령으로 PostgreSQL에 접속합니다.

      sudo -u postgres psql
    2. 데이터베이스를 생성합니다.

      CREATE DATABASE mattermost WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;

    이 단계에서 invalid LC_COLLATE locale name: "en_US.UTF-8" 같은 오류가 발생하면 먼저 locale-gen en_US.UTF-8으로 로캘을 생성해야 합니다.

    1. 안전한 비밀번호로 Mattermost 사용자를 생성합니다.

      CREATE USER mmuser WITH PASSWORD 'mmuser-password';
    2. 사용자에게 데이터베이스 접근 권한을 부여합니다.

      GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
    3. PostgreSQL v15.x 이상을 사용하는 경우 추가 권한 부여가 필요합니다.

      ALTER DATABASE mattermost OWNER TO mmuser;
      -- Connect to the mattermost database so the schema grants below apply to the right schema
      \c mattermost
      ALTER SCHEMA public OWNER TO mmuser;
      GRANT USAGE, CREATE ON SCHEMA public TO mmuser;
  3. 원격 연결을 위해 PostgreSQL을 구성합니다(데이터베이스가 별도 서버에 있는 경우).

    1. 원격 연결을 허용하도록 postgresql.conf를 편집합니다.

      Ubuntu/Debian

      /etc/postgresql/{version}/main/postgresql.conf를 편집합니다.

      listen_addresses = '*'

      RHEL/CentOS

      /var/lib/pgsql/{version}/data/postgresql.conf를 편집합니다.

      listen_addresses = '*'
    2. pg_hba.conf를 편집해 클라이언트 인증을 구성합니다.

      {mattermost-server-IP}를 실제 값으로 바꿔 다음 줄을 추가합니다.

      host all all {mattermost-server-IP}/32 md5
  4. 구성 변경 사항을 적용하려면 PostgreSQL 서비스를 재시작합니다.

    Ubuntu/Debian

    sudo systemctl restart postgresql

    RHEL/CentOS

    sudo systemctl restart postgresql
중요

PostgreSQL의 메이저 버전을 업그레이드하는 경우 전체 업그레이드 절차와 업그레이드 후 작업은 PostgreSQL 업그레이드를 참고하세요.

데이터베이스 준비를 마쳤다면 Linux에 Mattermost 배포 문서로 돌아가 Mattermost 서버 설치를 이어서 진행하세요.

파일 저장소 준비

Mattermost는 사용자 파일, 이미지, 첨부 파일을 저장할 파일 저장소 시스템이 필요합니다. 다음과 같은 몇 가지 선택지가 있습니다.

  • S3 호환 오브젝트 스토리지(권장)
  • 네트워크 파일 저장소
  • 로컬 파일 저장소

S3 호환 오브젝트 스토리지(권장)

프로덕션 환경에서는 다음과 같은 S3 호환 오브젝트 스토리지 사용을 권장합니다.

  • Amazon S3
  • Digital Ocean Spaces
  • 기타 S3 호환 서비스

S3 저장소를 사용하려면 다음이 필요합니다.

  1. Mattermost 전용으로 생성한 버킷
  2. 접근 자격 증명(Access Key와 Secret Key)
  3. 적절하게 구성된 버킷 정책
  4. 구성에 필요한 다음 정보

    • 버킷 이름
    • 리전(해당하는 경우)
    • Access Key
    • Secret Key
    • 엔드포인트 URL(AWS가 아닌 S3 서비스의 경우)

네트워크 파일 저장소

S3 호환 오브젝트 스토리지를 사용할 수 없는 프로덕션 환경에서는 NFS(Network File System)를 사용하는 NAS(Network Addressable Storage) 솔루션을 권장합니다.

Mattermost 전용 공유(예: /mnt/mattermost_data)를 갖춘 NFS 서버를 준비하고, Mattermost를 실행할 모든 서버에 마운트해야 합니다.

로컬 파일 저장소

단순한 배포에서는 로컬 파일 저장소를 사용할 수 있습니다. 다만 프로덕션 환경이나 다중 노드 배포에는 권장하지 않습니다.

  1. 파일 저장소용 디렉터리를 생성합니다.

    sudo mkdir -p /opt/mattermost/data
  2. 적절한 권한을 설정합니다.

    sudo chown -R mattermost:mattermost /opt/mattermost/data

(선택) 이미지 프록시 사용

이미지 프록시를 사용하면 Mattermost 클라이언트가 보내는 모든 이미지 요청이 서드파티 서버에 직접 연결되는 대신 프록시를 거칩니다. 이를 통해 서드파티 서버가 누가 이미지를 보았는지 추적하지 못하게 하여 사용자 프라이버시를 보호합니다. 또한 추적 픽셀(사용자에게 이미지가 보이지 않으면서 동일한 추적을 수행하는 보이지 않는 이미지)의 사용도 차단합니다.

일부 프록시 서버는 캐싱 계층도 제공하여 이미지를 더 빠르고 안정적으로 불러올 수 있게 합니다. 이 캐싱은 이미지가 사라진 경우에도 게시물을 보존하는 데 도움이 됩니다.

네트워크 준비

다음 표는 Mattermost 서버에 필요한 네트워크 포트와 프로토콜을 정리한 것입니다.

서비스 이름설정 항목포트(기본값)프로토콜방향설명
HTTP/WebsocketServiceSettings.ListenAddress8065/80/443 (TLS)TCP인바운드외부(프록시 없음) / 내부(프록시 사용). HTTPS로 운영할 때는 보통 80 및 443 포트가 필요합니다.
ClusterClusterSettings.GossipPort8074TCP/UDP인바운드내부
MetricsMetricsSettings.ListenAddress8067TCP인바운드외부(프록시 없음) / 내부(프록시 사용)
DatabaseSqlSettings.DataSource5432 (PostgreSQL) / 3306 (MySQL)TCP아웃바운드보통 내부(권장)
LDAPLdapSettings.LdapPort389TCP/UDP아웃바운드
S3 StorageFileSettings.AmazonS3Endpoint443 (TLS)TCP아웃바운드
SMTPEmailSettings.SMTPPort10025TCP/UDP아웃바운드
Push NotificationsEmailSettings.PushNotificationServer443 (TLS)TCP아웃바운드
참고
  • 모든 아웃바운드 포트는 구체적인 구성에 따라 달라질 수 있습니다.
  • 모든 HTTP/HTTPS 트래픽에 대해 아웃바운드 프록시를 사용하도록 Mattermost를 구성할 수 있습니다(아래 참고).
  • 통화 서비스에는 추가 포트가 필요할 수 있습니다.

아웃바운드 프록시 구성

배포 환경에서 아웃바운드 프록시를 사용해야 한다면 환경 변수로 Mattermost를 구성할 수 있습니다.

  1. 서비스 구성에 프록시 설정을 추가합니다.

    Environment=HTTP_PROXY=http://proxy.example.com:3128
    Environment=HTTPS_PROXY=https://proxy.example.com:3128
    Environment=NO_PROXY=localhost,127.0.0.1,.internal.example.com
  2. 인증이 필요한 프록시라면 URL에 자격 증명을 포함합니다.

    Environment=HTTP_PROXY=http://username:password@proxy.example.com:3128
    Environment=HTTPS_PROXY=https://username:password@proxy.example.com:3128
  3. NO_PROXY 변수에는 다음을 포함할 수 있습니다.

    • IP 주소(예: 1.2.3.4)
    • CIDR 범위(예: 1.2.3.4/8)
    • 도메인 이름(예: example.com)
    • 서브도메인(예: .example.com)
참고

HTTPS 프록시를 사용할 때는 연결 문제를 방지하기 위해 Mattermost 서버에 프록시의 루트 인증서가 구성되어 있는지 확인하세요.

systemd 서비스 구성 예시

[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=postgresql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

# Configure proxy settings if needed
#Environment=HTTP_PROXY=http://proxy.example.com:3128
#Environment=HTTPS_PROXY=https://proxy.example.com:3128
#Environment=NO_PROXY=localhost,127.0.0.1,.internal.example.com

# Recommended security options
ProtectSystem=full
PrivateTmp=true
NoNewPrivileges=true

[Install]
WantedBy=postgresql.service

시스템 요구 사항

시스템이 다음 최소 요구 사항을 충족하는지 확인하세요.

  • 운영 체제: 64비트 Linux 배포판
  • 하드웨어: 2GB RAM을 갖춘 1 vCPU/코어(최대 1,000명 사용자 지원)
  • 저장 공간: 최소 10GB의 여유 공간
  • 데이터베이스: PostgreSQL v14 이상
  • 네트워크: 충분한 대역폭을 갖춘 안정적인 인터넷 연결

추가 요구 사항은 소프트웨어 및 하드웨어 요구 사항 문서를 참고하세요.

다음 단계

이 준비 단계를 모두 마쳤다면 Mattermost 서버 설치를 진행할 수 있습니다. 원하는 설치 방식을 선택하세요.