Mattermost 서버 환경 준비#

이 가이드는 Mattermost 서버 설치 전에 필요한 주요 준비 단계를 설명하며, 데이터베이스 및 파일 저장소 시스템 설정에 중점을 둡니다.

데이터베이스 준비#

Mattermost 서버 설치에는 PostgreSQL v13+가 필요합니다. MySQL 데이터베이스 지원 은 Mattermost v11부터 더 이상 사용되지 않습니다. MySQL에서 PostgreSQL로 마이그레이션하는 방법은 PostgreSQL 마이그레이션 문서를 참조하세요.

  1. PostgreSQL 서버 인스턴스 생성:

    sudo apt update
    sudo apt install postgresql
    
    sudo apt update
    sudo apt install postgresql
    
    sudo apt update
    sudo apt install postgresql
    
    sudo dnf install postgresql-server
    sudo postgresql-setup --initdb
    
  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;
      
    3. 보안 비밀번호로 Mattermost 사용자 생성:

      CREATE USER mmuser WITH PASSWORD 'mmuser-password';
      
    4. 사용자에게 데이터베이스 접근 권한 부여:

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

      ALTER DATABASE mattermost OWNER TO mmuser;
      GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser;
      
  3. 원격 연결을 위한 PostgreSQL 구성(데이터베이스가 별도 서버에 있는 경우):

    1. 원격 연결을 허용하도록 postgresql.conf 를 편집하세요:

      /etc/postgresql/{version}/main/postgresql.conf 를 편집하세요:

      listen_addresses = '*'
      

      /var/lib/pgsql/{version}/data/postgresql.conf 를 편집하세요:

      listen_addresses = '*'
      
    2. pg_hba.conf 를 편집하여 클라이언트 인증을 구성하세요:

      {mattermost-server-IP} 를 대체하여 다음 줄을 추가하세요:

      host all all {mattermost-server-IP}/32 md5
      

중요

Postgres의 주요 버전을 업그레이드하는 경우, 업그레이드 후 데이터베이스에서 ANALYZE VERBOSE 가 실행되었는지 확인하세요. 이는 최적의 쿼리 계획을 생성하는 데 사용되는 pg_statistics 테이블을 다시 채우는 데 필요합니다. 이 단계를 건너뛰면 데이터베이스 성능이 저하될 수 있습니다.

파일 스토리지 준비#

Mattermost는 사용자 파일, 이미지 및 첨부 파일을 저장하기 위한 파일 스토리지 시스템이 필요합니다. 다음과 같은 여러 옵션이 있습니다:

  • S3 호환 객체 스토리지(권장)

  • 로컬 파일 스토리지

로컬 파일 스토리지#

간단한 배포의 경우 로컬 파일 스토리지를 사용할 수 있습니다. 하지만 프로덕션 환경이나 다중 노드 배포에는 이를 권장하지 않습니다.

  1. 파일 스토리지를 위한 디렉토리 생성:

    sudo mkdir -p /opt/mattermost/data
    
  2. 적절한 권한 설정:

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

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

이미지 프록시 를 사용하면 Mattermost 클라이언트가 만드는 모든 이미지 요청이 타사 서버에 직접 연락하는 대신 프록시를 통해 전달됩니다. 이는 타사 서버가 이미지를 보는 사람을 추적하는 것을 방지하여 사용자 개인정보를 보호하는 데 도움이 됩니다. 또한 추적 픽셀(사용자가 이미지를 보지도 못하는 상태에서 동일한 작업을 수행하는 보이지 않는 이미지)의 사용도 방지합니다.

일부 프록시 서버는 캐싱 계층을 제공하여 이미지 로딩을 더 빠르고 안정적으로 만들 수 있습니다. 이 캐싱은 게시물이 깨진 이미지로부터 보호되어 게시물을 보존하는 데도 도움이 됩니다.

네트워크 준비#

다음 표는 Mattermost 서버에 필요한 네트워크 포트와 프로토콜을 설명합니다:

서비스 이름

설정 구성

포트(기본값)

프로토콜

방향

정보

HTTP/웹소켓

ServiceSettings.ListenAddress

8065/80/443 (TLS)

TCP

인바운드

외부(프록시 없음) / 내부(프록시 있음) HTTPS를 실행할 때는 일반적으로 포트 80과 443이 필요합니다.

클러스터

ClusterSettings.GossipPort

8074

TCP/UDP

인바운드

내부

메트릭스

MetricsSettings.ListenAddress

8067

TCP

인바운드

외부(프록시 없음) / 내부(프록시 있음)

데이터베이스

SqlSettings.DataSource

5432 (PostgreSQL) / 3306 (MySQL)

TCP

아웃바운드

일반적으로 내부(권장)

LDAP

LdapSettings.LdapPort

389

TCP/UDP

아웃바운드

S3 스토리지

FileSettings.AmazonS3Endpoint

443 (TLS)

TCP

아웃바운드

SMTP

EmailSettings.SMTPPort

10025

TCP/UDP

아웃바운드

푸시 알림

EmailSettings.PushNotificationServer

443 (TLS)

TCP

아웃바운드

참고

  • 모든 아웃바운드 포트는 특정 구성에 따라 달라질 수 있습니다

  • Mattermost는 모든 HTTP/HTTPS 트래픽에 대해 아웃바운드 프록시를 사용하도록 구성할 수 있습니다(아래 참조)

  • Calls 서비스에는 추가 포트가 필요할 수 있습니다

아웃바운드 프록시 구성#

배포에 아웃바운드 프록시 사용이 필요한 경우 환경 변수를 사용하여 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 v13+

  • 네트워크: 충분한 대역폭을 갖춘 안정적인 인터넷 연결

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

다음 단계#

이러한 준비 단계를 완료하면 Mattermost 서버 설치를 진행할 수 있습니다. 선호하는 설치 방법을 선택하세요: