Mattermost 워크스페이스 마이그레이션
이 문서는 기존 Mattermost 인스턴스를 자체 호스팅에서 Cloud로 또는 Cloud에서 자체 호스팅으로 마이그레이션하는 프로세스를 설명합니다. 동일한 배포 방법을 사용하여 기존 Mattermost 인스턴스를 다른 인스턴스로 마이그레이션하는 프로세스는 아래에 설명된 것과 동일하며, 마이그레이션의 소스 또는 대상이 Cloud인지 자체 호스팅인지에 관계없이 동일합니다.
이 문서는 기존 Mattermost 인스턴스를 자체 호스팅에서 Cloud로 또는 Cloud에서 자체 호스팅으로 마이그레이션하는 프로세스를 설명합니다.
동일한 배포 방법을 사용하여 기존 Mattermost 인스턴스를 다른 인스턴스로 마이그레이션하는 프로세스는 아래에 설명된 것과 동일하며, 마이그레이션의 소스 또는 대상이 Cloud인지 자체 호스팅인지에 관계없이 동일합니다. 이 단계는 Cloud 및 자체 호스팅 Mattermost 인스턴스 모두에서 사용할 수 있습니다.
자체 호스팅에서 Cloud로 마이그레이션#
자체 호스팅에서 Cloud로 마이그레이션할 때는 Mattermost 지원팀에 티켓을 열어 프로세스를 지원받아야 합니다. 아래 정보는 마이그레이션 프로세스를 설명합니다. 시작하기 전에 지원 사이트 를 방문하여 티켓을 여세요.
- 이 마이그레이션 프로세스는 유료 Mattermost 에디션을 사용하는 고객에게만 제공됩니다.
- 마이그레이션을 시작하기 전에 자체 호스팅에서 Cloud로 마이그레이션 에 관한 기술 자료를 검토하여 주요 고려 사항, 필수 전제 조건 및 내보내기 테스트에 관한 지침을 숙지하는 것을 권장합니다.
사용자 인증
이메일 로그인 방법을 사용하는 경우 마이그레이션이 완료된 후 사용자는 비밀번호를 재설정해야 합니다. LDAP 및 GitLab SSO와 같은 다른 인증 방법을 사용하는 경우 Mattermost Cloud에서 해당 인증 방법이 작동하도록 인프라를 변경해야 합니다.
플러그인
Marketplace에 등록되지 않은 플러그인을 사용하는 경우 내보내기에 포함되지 않으며 이후에는 사용할 수 없습니다. 인테그레이션 개요 문서에서 지원되는 플러그인 목록을 확인하세요.
데이터
마이그레이션에는 채널의 데이터만 포함됩니다. 플레이북 데이터는 내보내기에 포함되지 않습니다.
마이그레이션 프로세스#
자체 호스팅 인스턴스에서 내보내기
관리자 자격 증명을 사용해 자체 호스팅 Mattermost 서버에 로그인합니다. 로그인 후 다음을 실행합니다:
export create --attachments
<p>이렇게 하면 첨부 파일을 포함한 서버의 전체 내보내기가 생성됩니다. 첨부 파일을 내보내지 않으려면 <code>--attachments</code> 를 생략합니다.
이 프로세스는 시간이 걸릴 수 있으므로 mmctl 은 즉시 반환되고 내보내기가 완전히 생성될 때까지 백그라운드에서 작업이 실행됩니다. 성공하면 명령어가 즉시 다음과 같은 작업 ID를 출력합니다:
process job successfully created, ID: yfrr9ku5i7fjubeshs1ksrknzc
<p>작업이 실행되는 동안 생성 시 제공된 ID를 사용하여 상태를 확인할 수 있으며 완료되면 출력이 다음과 유사합니다:
mmctl export job show yfrr9ku5i7fjubeshs1ksrknzc
ID: yfrr9ku5i7fjubeshs1ksrknzc
Status: success
Created: 2021-11-03 10:44:13 -0500 CDT
Started: 2021-11-03 10:44:23 -0500 CDT
완료된 파일은 .zip 파일로 데스크톱에 다운로드됩니다.
파일 이름은 로그 파일에서 참조되며 지원팀이 내보낸 파일을 유효성 검사하는 데 사용되므로 파일 이름을 변경하지 마세요.
지원팀이 S3 자격 증명을 제공하면 내보낸 파일을 업로드할 수 있습니다. 파일을 업로드한 후 지원팀에 연락하여 알려주세요.
Mattermost Cloud에서 새 워크스페이스 생성#
그 동안 Mattermost 자격 증명으로 Mattermost Cloud에 로그인하여 Cloud 워크스페이스를 생성할 수 있습니다.
마이그레이션 프로세스가 이 작업을 대신 수행하므로 Mattermost Cloud 인스턴스에 사용자를 생성하지 마세요.
Mattermost Cloud 인스턴스로 데이터 가져오기#
제공된 S3 버킷에 내보내기 업로드가 완료되고 Mattermost Cloud 인스턴스 이름/URL을 공유하면 지원팀이 가져오기 단계를 시작할 수 있습니다.
내보내기 크기에 따라 이 프로세스는 시간이 걸릴 수 있습니다. 가져오기가 완료되는 즉시 지원팀이 연락을 드립니다. 이 기간 동안 Mattermost Cloud 인스턴스를 사용하지 않는 것을 강력히 권장합니다.
Mattermost Cloud 인스턴스 사용 시작#
내보내기가 완료되면 Cloud 인스턴스에 로그인하고 사용자를 초대할 수 있습니다.
Cloud 인스턴스를 한동안 사용하고 모든 것이 예상대로 확인될 때까지 자체 호스팅 Mattermost 서버를 유지하는 것을 권장합니다.
Cloud에서 자체 호스팅으로 마이그레이션#
언제든지 Cloud 워크스페이스 데이터를 자체 호스팅 배포로 마이그레이션할 수 있습니다.
어떻게 작동하나요?#
데이터를 내보내고 마이그레이션하기 전에 Mattermost를 실행할 서버에 Mattermost 설치 를 완료해야 합니다. 마이그레이션은 로컬에 설치되고 Mattermost API를 사용하는 Mattermost용 원격 CLI 도구인 mmctl CLI 도구를 사용합니다. mmctl 은 사전 설치되어 있습니다.
mmctl 사용 참고 사항 에서 프로세스 전후에 참조할 수 있는 추가 컨텍스트와 정보를 제공합니다.
mmctl export 명령어를 사용하여 채널, 메시지, 사용자 등의 Cloud 데이터를 내보냅니다. 내보내기 파일은 내보내기 명령어에 지정된 위치로 다운로드됩니다. 내보내기가 완료되면 자체 호스팅 인스턴스로 데이터를 가져옵니다.
또는 Mattermost 서버에서 다운로드하기 어려울 정도로 내보내기 크기가 큰 경우 Amazon S3 클라우드 스토리지 위치로 데이터를 내보낼 수 있습니다. 자세한 내용은 아래 내보내기 생성 섹션을 참조하세요.
Cloud에서 데이터를 마이그레이션하기 전에 민감한 정보가 포함될 수 있는 데이터 내보내기를 수행할 적절한 조직 내 권한이 있는지 확인하세요. Mattermost는 데이터 내보내기 후 취해진 모든 조치에 대해 책임을 지지 않습니다.
또한 내보내기 프로세스에는 인테그레이션이나 사용자 정의 데이터가 포함되지 않습니다. 특정 보안 설정 및 요구 사항과 같은 인스턴스의 다른 측면도 포함되지 않습니다. 추가 데이터 및 설정 마이그레이션에 대한 지원은 지원 옵션을 참조하세요: https://mattermost.com/support/.
mmctl 이 인증되면 소스 인스턴스에서 내보내기를 생성할 수 있습니다.
인증#
인증은 Mattermost 로그인 자격 증명이나 인증 토큰으로 이루어집니다. 먼저 관리자 자격 증명을 사용하여 mmctl로 인스턴스에 로그인합니다. `example-source-domain.com` 을 소스 인스턴스의 네트워크 주소로 대체합니다:
mmctl auth login https://yourdomain.cloud.mattermost.com
사용자 이름(관리자 사용자), 비밀번호 및 연결 이름을 입력하라는 메시지가 표시됩니다. 연결 이름은 원하는 이름으로 설정할 수 있으며 향후 편의를 위해 이 자격 증명 세트를 식별하는 데 사용됩니다. 그런 다음 내보내기 프로세스를 시작할 수 있습니다.
내보내기 생성#
Mattermost Cloud 배포에 Cloud Marketplace에 없는 플러그인이 포함된 경우 해당 플러그인은 내보내기에 포함되지 않으며 이후에는 사용할 수 없습니다. Cloud에서 지원되는 인테그레이션 목록은 인테그레이션 문서를 참조하세요.
로그인한 후 다음 mmctl 명령어를 실행합니다:
export create
<p>이 명령어를 실행하면 첨부 파일을 포함한 서버의 전체 내보내기가 생성됩니다. 인스턴스에서 첨부 파일을 내보내지 않으려면 <code>--no-attachments</code> 를 추가하고, 내보내기 파일에 보관된 채널을 포함하려면 <code>--with-archived-channels</code> 를 추가합니다. 이 프로세스는 시간이 걸릴 수 있으므로 <code>mmctl</code> 은 즉시 반환되고 내보내기가 완전히 생성될 때까지 Mattermost 인스턴스에서 백그라운드로 작업이 실행됩니다. 성공하면 명령어가 즉시 다음과 같은 작업 ID를 출력합니다:
Export process job successfully created, ID: yfrr9ku5i7fjubeshs1ksrknzc
작업이 실행되는 동안 생성 시 제공된 ID를 사용하여 상태를 확인할 수 있으며 완료되면 출력이 다음과 유사합니다:
mmctl export job show yfrr9ku5i7fjubeshs1ksrknzc
ID: yfrr9ku5i7fjubeshs1ksrknzc
Status: success
Created: 2021-11-03 10:44:13 -0500 CDT
Started: 2021-11-03 10:44:23 -0500 CDT
상태가 success 가 되면 내보내기를 로컬 머신에 다운로드합니다. 먼저 mmctl export list 로 완료된 내보내기 파일의 이름을 확인합니다:
mmctl export list
r3kcj8yuwbramdt714doafi3oo_export.zip
이 명령어는 서버의 모든 내보내기를 표시하므로 최신 파일을 다운로드하고 스토리지를 절약하기 위해 완료 후 삭제해야 합니다. 서버의 내보내기 파일 이름이 포함된 다음과 같은 명령어로 파일 다운로드 링크를 생성합니다:
mmctl export generate-presigned-url r3kcj8yuwbramdt714doafi3oo_export.zip
- 마지막 단계의 대안으로 Mattermost Cloud 웹 인스턴스에서
/exportlink [job-id|zip file|latest]Mattermost 슬래시 명령어를 사용하여 내보내기 파일 다운로드 링크를 가져올 수 있습니다.latest옵션을 사용하면 사용 가능한 최신 내보내기를 자동으로 가져오거나job-id또는zip file로 다운로드 링크를 지정합니다. - 자체 호스팅 Mattermost 인스턴스에서
mmctl export generate-presigned-url명령어를 사용하려면 Mattermost v8.1.0-RC1이 필요합니다. Mattermost Enterprise v8.1.0-RC1 바이너리 또는 Mattermost Team Edition v8.1.0-RC1 바이너리 에 접근하세요.
새 서버로 내보내기 업로드#
이제 소스 서버에서 내보낸 파일을 대상 서버로 가져올 차례입니다. 진행하기 전에 원활하고 성공적인 가져오기를 위해 다음 자체 호스팅 Mattermost 구성 설정을 검토하고 적용 가능한 경우 수정하세요.
| Mattermost 구성 설정 | 대용량 파일 가져오기 권장 사항 |
|---|---|
| 팀당 최대 사용자 수 | 가져오기 파일의 팀당 최대 사용자 수를 초과하는 값으로 늘리세요. |
| 최대 파일 크기 | 가져오기 파일 크기보다 크게 이 값을 일시적으로 늘리세요. 성공적인 가져오기 후 일상적인 사용에 적합한 제한으로 이 값을 되돌리는 것을 강력히 권장합니다. |
| 쓰기 타임아웃 | 타임아웃 없이 파일을 업로드할 수 있도록 가져오기 파일 속도와 네트워크 경로를 기반으로 이 값을 일시적으로 조정합니다. 3600 값으로 시작하고 필요에 따라 조정합니다. 성공적인 가져오기 후 이 설정을 초기 또는 이전 값으로 되돌리는 것을 강력히 권장합니다. |
| 읽기 타임아웃 | 타임아웃 없이 파일을 업로드할 수 있도록 가져오기 파일 속도와 네트워크 경로를 기반으로 이 값을 일시적으로 조정합니다. 3600 값으로 시작하고 필요에 따라 조정합니다. 성공적인 가져오기 후 이 설정을 초기 또는 이전 값으로 되돌리는 것을 강력히 권장합니다. |
| Amazon S3 요청 타임아웃 | 클라우드 기반 파일 스토리지를 사용하는 경우 스토리지 요청이 너무 빨리 타임아웃되지 않도록 이 값을 조정하세요. |
다음으로, 소스 서버에 로그인한 것과 같은 방법으로 mmctl 을 사용하여 대상 서버에 로그인합니다:
mmctl auth login https://localinstance.company.com
다음 명령어를 사용하여 내보내기를 대상 서버에 업로드합니다. 업로드 속도는 연결 속도에 따라 다를 수 있습니다. 업로드가 완료되면 명령어가 가져오기 ID와 함께 반환됩니다:
import upload r3kcj8yuwbramdt714doafi3oo_export.zip
Upload session successfully created, ID: cfuq6q9kkjrqfgnph1pew3db4e
Import file successfully uploaded, name: xrzs9wrzufntbfcxpy39mdq9hy
<h2 id="새-서버로-가져오기-완료">새 서버로 가져오기 완료</h2>
<pre><code class="language-text">mmctl import list available
cfuq6q9kkjrqfgnph1pew3db4e_r3kcj8yuwbramdt714doafi3oo_export.zip</code></pre>
<p>가져오기 작업을 실행하여 내보내기 파일을 서버로 가져옵니다. 이 프로세스의 속도는 연결 속도에 따라 다를 수 있습니다. 먼저 가져오기 프로세스를 시작합니다:
import process cfuq6q9kkjrqfgnph1pew3db4e_r3kcj8yuwbramdt714doafi3oo_export.zip
<p>파일을 처리로 표시한 후 <code>mmctl import job list</code> 를 사용하여 작업 상태를 확인할 수 있습니다:
mmctl --local import job list
ID: f93jxu1hzty79enwa1xy6f1tbr
Status: pending
Created: 2021-10-28 13:32:55 +0200 CEST
작업이 완료되면 success 상태가 표시됩니다:
mmctl --local import job list
ID: f93jxu1hzty79enwa1xy6f1tbr
Status: success
Created: 2021-10-28 13:32:55 +0200 CEST
Started: 2021-10-28 13:33:05 +0200 CEST
그런 다음 다음 mmctl 명령어를 실행하여 내보내기 파일을 추출합니다:
extract run [flags].
<p>마이그레이션이 완료되고 데이터를 자체 호스팅 인스턴스로 가져온 후 Cloud 인스턴스를 종료하기 전에 며칠 동안 데이터를 검증하고 모든 것이 예상대로 작동하는지 확인하는 것을 권장합니다.
