클라우드프론트를 구성하여 Mattermost 정적 에셋을 호스팅하는 방법
Mattermost의 정적 에셋을 클라우드프론트로 호스팅하면 팀의 지리적으로 분산된 구성원들에게 개선된 캐싱 성능과 더 짧은 로드 시간을 제공할 수 있습니다.
원하는 도메인을 사용하여 S3 버킷을 생성합니다. 이 예에서는
mattermost.example.com입니다.S3 버킷에 정적 호스팅을 활성화합니다.
SiteURL이 하위 경로로 구성된 경우(예: https://example.com/company/mattermost), 업로드 전에 정적 에셋을 다시 작성해야 합니다. 다음 명령을 사용하여 지정된 하위 경로에 대한 에셋을 다시 작성할 수 있습니다:
mattermost config subpath --path /company/mattermostMattermost 배포에서
client디렉터리를 S3에 업로드하고static으로 이름을 변경합니다.client디렉터리 내부에서 다음 AWS CLI 명령을 사용하여 모든 파일을 S3에 업로드할 수 있습니다. 파일은public-read권한으로 공개적으로 읽기 가능해야 합니다.aws s3 cp --acl public-read --recursive . s3://static.spinmint.com/static/Mattermost 앱 서버를 설정하고 원하는 도메인의 서브도메인을 직접 앱 서버로 연결하는 레코드를 만듭니다. 이것은 클라우드프론트를 우회하여 웹소켓을 연결하기 위한 것입니다. 이 예에서는 도메인을
ws.mattermost.example.com으로 사용합니다. 여러 개의 앱 서버가 있는 경우이 도메인은 ALB나 NGINX와 같은 로드 밸런서/프록시를 가리켜야 합니다.다음 구성으로 Web 클라우드프론트 분산을 만듭니다.
Origin Domain Name을 위에서 생성한 S3 버킷으로 설정합니다.
(권장 사항) Viewer Protocol Policy의 Redirect HTTP를
HTTPS로 설정합니다.허용된 HTTP 메소드를
GET, HEAD, OPTIONS, POST, PATCH, DELETE로 설정합니다.Forward Cookies를
All로 설정합니다.Query string forwarding 및 Caching을
Forward all, cache based on all로 설정합니다.Mattermost에 액세스하고자 하는 도메인을 대체 도메인 이름으로 설정합니다. 예:
mattermost.example.com.Custom SSL Certificate를 선택하고 도메인에 대한 인증서를 설정합니다.Default Root Object를
/static/root.html로 설정합니다.
분산을 만든 후에는 추가 origin을 추가해야 합니다. origin 탭을 선택하고 origin을 만듭니다. origin 도메인 이름을 Mattermost 로드 밸런서로 설정합니다.
다음으로 behavior를 생성합니다.
Path Pattern을
/api/*로 설정합니다.origin을 Mattermost 앱 서버 또는 로드 밸런서로 설정합니다.
허용된 HTTP 메소드를
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE로 설정합니다.Forward Cookies를 `All`로 설정합니다.
Query string forwarding 및 Caching을
Forward all, cache based on all로 설정합니다.
다음으로, 오류 페이지 탭에서 사용자 정의 오류 응답을 설정합니다.
HTTP 오류 코드를
403으로 설정합니다.Customize Error Response를
Yes로 설정합니다.응답 페이지 경로를
/static/root.html로 설정합니다.HTTP 응답 코드를
200으로 설정합니다.HTTP 오류 코드 404에 대해 위의 단계를 반복합니다.
이제 Mattermost가 제공되는 도메인을 클라우드프론트 분산에 가리키도록 설정할 수 있습니다. 이 도메인을 설정하는 것은 이 안내서의 범위를 벗어납니다.
마지막으로, 다음과 같이 Mattermost의
config.json설정을 설정합니다:SiteURL:
https://mattermost.example.comWebsocketURL:
wss://ws.mattermost.example.comAllowCorsFrom:
https://mattermost.example.comAllowCookiesForSubdomains:
true
업그레이드 참고 사항
Mattermost 앱 서버를 업그레이드할 때는 새 클라이언트를 S3 버킷에 다시 업로드해야 합니다(위의 단계 3 및 4 참조).
또한 /static/root.html 에 대해 클라우드프론트 무효화를 실행해야 합니다. 이것은 무효화 탭 아래의 콘솔에서 수행할 수 있습니다.
