Mattermost 서버 환경 준비#
이 가이드는 Mattermost 서버 설치 전에 필요한 주요 준비 단계를 설명하며, 데이터베이스 및 파일 저장소 시스템 설정에 중점을 둡니다.
데이터베이스 준비#
Mattermost 서버 설치에는 PostgreSQL v13+가 필요합니다. MySQL 데이터베이스 지원 은 Mattermost v11부터 더 이상 사용되지 않습니다. MySQL에서 PostgreSQL로 마이그레이션하는 방법은 PostgreSQL 마이그레이션 문서를 참조하세요.
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
Mattermost 데이터베이스 및 사용자 생성:
다음 명령을 실행하여 PostgreSQL에 접근:
sudo -u postgres psql
데이터베이스 생성:
CREATE DATABASE mattermost WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;
보안 비밀번호로 Mattermost 사용자 생성:
CREATE USER mmuser WITH PASSWORD 'mmuser-password';
사용자에게 데이터베이스 접근 권한 부여:
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
PostgreSQL v15.x 이상을 사용하는 경우 추가 권한이 필요합니다:
ALTER DATABASE mattermost OWNER TO mmuser; GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser;
원격 연결을 위한 PostgreSQL 구성(데이터베이스가 별도 서버에 있는 경우):
원격 연결을 허용하도록
postgresql.conf
를 편집하세요:/etc/postgresql/{version}/main/postgresql.conf
를 편집하세요:listen_addresses = '*'
/var/lib/pgsql/{version}/data/postgresql.conf
를 편집하세요:listen_addresses = '*'
pg_hba.conf
를 편집하여 클라이언트 인증을 구성하세요:{mattermost-server-IP}
를 대체하여 다음 줄을 추가하세요:host all all {mattermost-server-IP}/32 md5
중요
Postgres의 주요 버전을 업그레이드하는 경우, 업그레이드 후 데이터베이스에서 ANALYZE VERBOSE
가 실행되었는지 확인하세요. 이는 최적의 쿼리 계획을 생성하는 데 사용되는 pg_statistics
테이블을 다시 채우는 데 필요합니다. 이 단계를 건너뛰면 데이터베이스 성능이 저하될 수 있습니다.
파일 스토리지 준비#
Mattermost는 사용자 파일, 이미지 및 첨부 파일을 저장하기 위한 파일 스토리지 시스템이 필요합니다. 다음과 같은 여러 옵션이 있습니다:
S3 호환 객체 스토리지(권장)
로컬 파일 스토리지
S3 호환 객체 스토리지(권장)#
프로덕션 환경에서는 다음과 같은 S3 호환 객체 스토리지를 사용하는 것을 권장합니다:
Amazon S3
MinIO
Digital Ocean Spaces
기타 S3 호환 서비스
S3 스토리지를 사용할 때 다음이 필요합니다:
Mattermost 전용으로 생성된 버킷
액세스 자격 증명(Access Key 및 Secret Key)
적절한 버킷 정책 구성
구성을 위한 다음 정보:
버킷 이름
리전(해당되는 경우)
액세스 키
시크릿 키
엔드포인트 URL(AWS가 아닌 S3 서비스용)
로컬 파일 스토리지#
간단한 배포의 경우 로컬 파일 스토리지를 사용할 수 있습니다. 하지만 프로덕션 환경이나 다중 노드 배포에는 이를 권장하지 않습니다.
파일 스토리지를 위한 디렉토리 생성:
sudo mkdir -p /opt/mattermost/data
적절한 권한 설정:
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를 구성할 수 있습니다:
서비스 구성에서 프록시 설정을 구성하세요:
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
인증된 프록시의 경우 URL에 자격 증명을 포함하세요:
Environment=HTTP_PROXY=http://username:password@proxy.example.com:3128 Environment=HTTPS_PROXY=https://username:password@proxy.example.com:3128
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 서버 설치를 진행할 수 있습니다. 선호하는 설치 방법을 선택하세요: