Amazon Web Services(AWS)의 Lightsail, SES, Route 53를 사용하여 Discourse 설치하기

:information_source: 이 주제는 AWS 서비스를 DNS 공급자(Route 53), 이메일 공급자(SES), 클라우드 서버 공급자(Lightsail)로 사용하여 공식 설치 지침에 따라 Discourse를 설치하는 방법에 대해 다룹니다.

클라우드 서버

Lightsail

  • 1 GB RAM 기본 설정은 소규모 Discourse 커뮤니티에 적합합니다. 대규모 커뮤니티에는 2 GB RAM을 권장합니다.

^ 월 $5로 Discourse 최소 요구 사항을 충족하는 서버를 구할 수 있습니다. 저는 월 $10짜리를 사용하지만, 월 $5짜리도 작동할 것 같습니다.

메일 서버

비밀 키는 다시 가져올 수 없지만, 분실한 경우 사용할 수 있도록 새로운 것을 만들 수 있습니다.

도메인

단계별 설정

  1. Route 53 문서를 따라 도메인을 구매합니다.

이 단계에서 ‘unable to process’ 이메일을 받았다면, AWS가 먼저 계정을 검토해야 할 수 있습니다. 지원 사례를 생성하여 계정이 검토되고 구매를 시작할 수 있을 때 알려달라고 요청하세요.

  1. DNS 레코드 설정

Route 53 콘솔에 진입합니다.

Hosted zones → create hosted zone을 선택하고 도메인 이름을 입력한 다음, 아래로 스크롤하여 create hosted zone을 클릭합니다.

도메인 이름을 클릭하고 Lightsail 클라우드 서버의 IP 주소 값을 가진 A 레코드를 추가합니다. 이 값은 Lightsail 콘솔에서 찾을 수 있습니다. (빨간색 블록)

  1. SES 설정

SES 콘솔에 진입합니다.

Verified identities → create identity를 선택하고 도메인 이름을 입력합니다(유형: domain) → 아래로 스크롤하여 create identity를 클릭합니다.

create identity를 선택하고 관리자 계정을 등록할 때 사용할 이메일 주소를 입력합니다(유형: email address) → 아래로 스크롤하여 create identity를 클릭합니다.


Route 53에서 도메인을 등록했으므로, 인증에는 약 5분 정도 걸리며, 이메일 주소 인증을 위한 이메일을 받게 됩니다.

둘 다 인증되면 도메인 이름을 클릭하고 Publish DNS records를 찾아, 단계 2에서 방금 생성한 hosted zone 아래에 있는 Route 53에 DNS 쌍을 복사하여 붙여넣습니다.

SMTP 설정으로 이동하여 create SMTP credential을 클릭하고 단계를 따르며, SMTP 사용자 이름과 비밀번호가 포함된 CSV 파일을 다운로드합니다.

SMTP 엔드포인트도 이 페이지 아래에 나열되어 있습니다.

  1. Discourse 구성

위 단계들은 공식 설치 지침의 단계 1~3을 다룹니다. 단계 4~6을 계속 따르세요.

Hostname for your Discourse? [discourse.example.com]: // 당신의 도메인 
Email address for admin account(s)? /[me@example.com,you@example.com]: // SES Verified identities에서 인증한 이메일
SMTP server address? [smtp.example.com]:  //SMTP 엔드포인트
SMTP port? [587]: //기본값 사용
SMTP user name? [user@example.com]: //다운로드한 CSV 파일에 있음
SMTP password? [pa$$word]: //다운로드한 CSV 파일에 있음
Let's Encrypt account email? (ENTER to skip) [me@example.com]: //기본값 사용
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]: //기본값 사용

설치를 기다린 후, 설정에서 위에서 제공한 이메일로 관리자 계정을 등록할 수 있습니다.

  1. 설치 후

커뮤니티를 새 사용자에게 소개할 준비가 되면, SES 프로덕션 액세스를 신청하세요.

In Use case description, explain how you plan to use Amazon SES to send email. To help us process your request, you should answer the following questions:

How do you plan to build or acquire your mailing list?

How do you plan to handle bounces and complaints?

How can recipients opt out of receiving email from you?

How did you choose the sending rate or sending quota that you specified in this request?

URL의 신청 가이드를 따르는 것이 권장되지만, 승인을 보장하지는 않습니다. 거절 이메일을 받았다면, 새 사용자 등록 목록의 스크린샷을 추가하고 새 사용자가 활성화 이메일을 기다리고 있다고 설명해 보세요.

4개의 좋아요

누군가 AWS Lightsail과 SES를 사용하여 Discourse를 호스팅하는 올바른 단계별 튜토리얼을 업데이트해 주실 수 있나요?

무언가 잘못되었다고 생각하는 근거가 있으신가요?

3개의 좋아요

SES 설정을 테스트 실행하는 데 이 가이드가 정말 유용했어요.

거기에 표시된 스크립트를 새 스크립트 파일에 복사/붙여넣기하고 엔드포인트(예: email-smtp.us-east-1.amazonaws.com)를 수정하면 정상적으로 작동하는 것 같습니다. 무슨 이유인지는 모르겠지만, telnet 방법은 SES와 함께 작동하지 않는 것 같습니다.

아, 그리고 해당 가이드를 위해 “구성 세트(configuration set)를 만드는” 작업도 수행했습니다. Discourse에서 실제로 필요한 작업이었는지는 확실하지 않지만, 스크립트에 설명된 대로 SES를 테스트할 수 있도록 하려고 그냥 진행했습니다. Creating configuration sets in SES - Amazon Simple Email Service

또 다른 문제도 하나 있었습니다. Publishing an MX record for Amazon SES email receiving - Amazon Simple Email Service

도메인에 적용할 필수 DNS MX 레코드의 경우, AWS SES는 레코드의 "값(Value)"을 다음과 같은 형식으로 제공합니다.

10 inbound-smtp.region.amazonaws.com

그러나 제 도메인 등록사에서는 "값은 호스트명이어야 합니다"라는 오류가 발생했습니다. 즉, 앞에 붙은 "10 "을 인식하지 못했습니다. AWS 콘솔에서는 이것이 무엇을 의미하는지 또는 어떻게 처리해야 하는지에 대해 직접적으로 알려주지 않았기 때문에, 거기에 링크된 문서에 따르면 DNS 등록사에서 다음과 같이 처리해야 합니다.

일부 DNS 제공업체의 관리 콘솔에는 레코드의 **값(Value)**과 레코드의 **우선순위(Priority)**를 위한 별도 필드가 포함되어 있습니다. DNS 제공업체가 이 경우라면, 우선순위 값으로 10을 입력하고 값으로 수신 메일 엔드포인트 URL을 입력하십시오.

도메인 등록사 대시보드에서는 다음과 같이 보아야 합니다.

1개의 좋아요

후속 조치로, 이 게시글에 AWS Cloudfront CDN 설정도 포함할 수 있을까요? 여기에서 설명한 나머지 AWS 스택과 잘 어울리기 때문입니다. 다음 게시글의 조언을 따라 설정을 완료했습니다.

하지만 더 상세한 가이드를 포함하는 것이 좋겠습니다.