2021. 9. 2. 10:27ㆍDevOps
나만의 Chat 서비스를 네이버 클라우드 플랫폼에 구축하자!!
Mattermost는 Private Cloud 서비스에서 오픈 소스로 구축 후 사용할 수 있는 Chat Service Platform입니다.
이번 포스팅에서는 네이버 클라우드 플랫폼에서 제공하는 서버 및 인프라 서비스를 활용하여 나만의 클라우드 메시징 플랫폼을 구축하는 방법을 알아보겠습니다.
Mattermost는 Slack과 유사한 기능을 하고 있지만, 아래와 같이 크게 차이점을 나눌 수 있습니다.
Slack
- Public Cloud향 Chat Platform
- Slack 서비스를 사용하여 데이터가 Slack 인프라에 저장됨
Mattermost
- Private Cloud향 Chat Platform
- Private Cloud 인프라 구축 후 사용이 가능하고, 사용자 대화 내용이 Private Data Store에 저장됨
Mattermost 라이선스는 크게 아래와 같이 나누어지며, Small Team Edition의 경우 MIT 라이선스로 사용이 가능합니다.
이번 포스팅에서는 Mattermost Team Edition(Free, MIT Opensource)에 대한 설치 방법을 설명 드립니다.
CentOS 7 버전을 기준으로 설치하는 방법에 대해 알아보겠습니다.
참고로 아래와 같이 Docker Hub를 통해 Docker 컨테이너에 설치할 수 있는 방법도 제공하고 있습니다.
네이버 클라우드 플랫폼 서버 생성 및 설정방법은 어떻게 되나요?
Mattermost 서비스 구축에 앞서 네이버 클라우드 플랫폼을 활용하여 VM 이미지를 설치하고, 설정하는 방법을 간략하게 설명드리고자 합니다.
이미 다른 포스팅에서 단계 별 설치 및 설정 방법을 알려드려서, 상세한 내용은 사용자 가이드와 함께 참고하시면 쉬운 인프라 구성이 가능합니다.
- 아래의 VM 이미지 생성 사용자 가이드를 참고하시면 됩니다.
(http://docs.ncloud.com/ko/compute/compute-1-1-v2.html)
- Jenkins 연동을 위한 서버 이미지 생성 방법은 아래와 같습니다.
(http://docs.ncloud.com/ko/devtools/devtools-1-1.html)
- MySQL Database 연동을 위한 서버 이미지 생성 방법은 아래와 같습니다.
(http://docs.ncloud.com/ko/database/database-1-1.html)
Mattermost 설치 및 설정방법은 어떻게 되나요?
위에서 생성된 CentOS 7 서버 이미지를 사용하여 Mattermost 서비스를 설치하고, 활용하는 방법에 대해 간략하게 설명드리고자 합니다.
(1) yum clean & update 실행
아래와 같이 시스템에서 사용하는 모듈을 최신 버전으로 업데이트 합니다.
$ yum clean all
$ yum -y update
(2) MySQL Database 설치 및 설정
위에서 설명드린 MySQL Database VM서버 이미지 생성 방법을 참고하시면 됩니다.
또는 아래와 같은 명령어로 해당 서버에 설치할 수도 있습니다.
$ wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
$ yum localinstall mysql57-community-release-el7-9.noarch.rpm
$ sudo yum install mysql-community-server
$ systemctl start mysqld.service
$ chkconfig mysqld on
MySQL Secure Configuration을 아래와 같이 진행할 수 있습니다.
$ mysql_secure_installation
- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y
(3) Mattermost 연동을 위한 MySQL Database 설정
MySQL Database 접속 후 아래와 같은 설정 작업을 진행합니다.
(3)-1 MySQL DB “root” 계정 접속
$ mysql -u root -p
(3)-2 Mattermost User 생성 및 설정
mysql> CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_strong_password';
mysql> CREATE DATABASE mattermostdb;
mysql> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mmuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
(4) Mattermost 서버 모듈 다운로드
아래의 Download Url을 통해 압축파일을 다운로드 합니다.
$ wget https://releases.mattermost.com/3.6.2/mattermost-3.6.2-linux-amd64.tar.gz
(5) 압축 해제 후 “/opt” 디렉터리로 이동
위에서 다운로드 받은 압축파일의 압축을 해제합니다.
$ tar xvf mattermost-3.6.2-linux-amd64.tar.gz
“/opt/“ 디렉터리로 이동합니다.
$ mv mattermost /opt/
(6) Mattermost Data Store 디렉터리 생성.
$ mkdir /opt/mattermost/data
(7) Mattermost 사용자 및 그룹 생성과 디렉터리 권한 설정.
“mattermost” 사용자 생성 및 그룹을 생성하고, “/opt/mattermost” 디렉터리 권한을 설정합니다.
$ useradd --system --user-group mattermost
$ chown -R mattermost:mattermost /opt/mattermost
$ chmod -R g+w /opt/mattermost
(8) Mattermost 데이터 저장을 위한 Configuration 파일 설정
“/opt/mattermost/config/config.json” 파일의 내용을 아래와 같이 수정합니다.
(9) Mattermost systemd 파일 생성
“/etc/systemd/system/mattermost.service” 파일을 생성하고, 아래와 같이 내용을 작성합니다.
(“vi /etc/systemd/system/mattermost.service” 실행 후 작성)
(10) 위 파일을 mattermost user가 접근할 수 있도록 권한 수정
$ chmod 664 /etc/systemd/system/mattermost.service
(11) System Daemon을 Reload
$ systemctl daemon-reload
(12) Mattermost 서비스 Enable 설정
$ chkconfig mattermost on
(13) Mattermost 서비스 시작
$ systemctl start mattermost
(14) Mattermost 디렉터리로 이동 후 데몬 시작
$ vi /opt/mattermost/config/config.json (최종 설정 확인)
$ su - mattermost (mattermost 사용자로 변경)
$ cd /opt/mattermost/bin (platform 실행 디렉터리로 이동)
$ ./platform (mattermost platform binary 실행)
(15) 웹 브라우저를 통해 Mattermost 에 접속
기본 포트는 “8065” 포트로 설정되어 있습니다.
네이버 클라우드 플랫폼의 ACG 설정을 통해 기존 ACG에 "8065" 포트를 추가해야 합니다.
(16) Email, Account 정보 입력
(17) [Create New Team] 선택 후, 아래와 같이 팀 정보 입력
“팀이름”을 입력하고, [Next]를 클릭합니다. Tema URL을 확인하고, [Finish]를 클릭합니다.
(18) 아래와 같이 메시지 입력을 할 수 있는 창이 나타나면 기타 옵션을 설정
네이버 클라우드 플랫폼 상품 및 서비스는 어떻게 사용할 수 있나요?
아래와 같이 네이버 클라우드 플랫폼 포털 사이트 및 사용자 가이드를 참고하시면 쉽게 사용하실 수 있습니다.
- 네이버 클라우드 플랫폼 포털 : https://www.ncloud.com
- 네이버 클라우드 플랫폼 사용자 가이드 : http://docs.ncloud.com/ko
- MySQS Database 상품 가이드 : http://docs.ncloud.com/ko/database/database-1-1.html
글을 마무리 하며...
네이버 클라우드 플랫폼의 서버 및 MySQL Database 설치형 상품 및 서비스를 활용하여, Private Cloud에 설치가 가능한 오픈소스 Chat Platform 중 하나인 Mattermost Chat Platform을 구축하는 방법을 알아보았습니다.
네이버 클라우드 플랫폼의 인프라 서비스와 플랫폼을 활용하여 쉽게 빠르게 나만의 Chat Platform 서비스를 구축하여, 팀 및 개인 프로젝트에 활용해 볼 수 있지 않을까 기대해 봅니다.
끝까지 읽어 주셔서 감사합니다.
'DevOps' 카테고리의 다른 글
Grafana + InfluxDB 활용한 모니터링 시스템 구축(feat.NAVER Cloud Platform) (1) | 2021.09.01 |
---|