시작하기
다음 항목이 필요합니다:
- app.yml 접근 권한이 있는 Discourse 인스턴스
- AWS 계정
네이밍 전략
실수를 할 수 있는 곳이 많습니다. 자신에게(그리고 다른 사람들에게도) 의미가 있는 네이밍 규칙 전략을 사용하면 특히 여러 Discourse 인스턴스를 구성할 때 문제 해결에 도움이 됩니다.
- IAM 사용자: your-iam-user
- 정책: s3-discourse-policy-your-iam-user
- 백업 버킷: yourdomain-subdomain-backups
- 업로드 버킷: yourdomain-subdomain-uploads
- 분배 CDN: cdn-yourdomain-subdomain 및 s3-yourdomain-subdomain-uploads
선택 사항: 구성 프로세스 버킷: a-origin-config-bucket
AWS 구성
반대로 지시되지 않는 한 AWS 구성 페이지에서 기본 설정을 사용하세요.
S3 이름, 이름, 이름
- Discourse 인스턴스 도메인: subdomain.yourdomain.tld (www.yourdomain.tld 포함)
- IAM 사용자: yourdomain-subdomain (아펙스/루트 도메인인 경우 yourdomain-discourse, yourdomain-forum 또는 Discourse: yourdomain-tld-www)
- IAM 사용자용 정책: s3-discourse-policy-yourdomain-subdomain
- 업로드 버킷: yourdomain-subdomain-uploads 참고: 버킷 > 권한 > 액세스 제어 목록(ACL) > 액세스 제어 목록(ACL) > 수혜자에서 "모두(공개 액세스)"를 "읽기"로 설정하는 것을 잊지 마세요.
- 백업 버킷: yourdomain-subdomain-backups
- 분배 CDN: cdn-yourdomain-subdomain 및 s3-yourdomain-subdomain-uploads
- 구성 프로세스 버킷: a-origin-config-bucket
IAM 사용자
- IAM > 사용자 > “사용자 만들기” 선택
- IAM > 사용자 > 사용자 만들기 > 사용자 세부 정보 지정 > 사용자 세부 정보 > 사용자 이름 > 이름 입력 (예: your-iam-user) > “다음” 선택
- IAM > 사용자 > 사용자 만들기 > 권한 설정 > 권한 옵션 > “정책 직접 연결” 선택 > “정책 만들기” 선택 > 정책 만들기 페이지가 열립니다. (대신 정책을 먼저 Policies에서 생성한 후, 사용자 생성 시 "권한 정책"에서 선택할 수도 있습니다.)
- IAM > 사용자 > 사용자 만들기 > 권한 설정 > 권한 정책 > 유형 드롭다운 선택기로 필터링 > “고객 관리” 선택 > 방금 생성된 정책 선택 > “다음” 선택 > “사용자 만들기” 선택
- IAM > 사용자 > your-iam-user > 보안 자격 증명 > 액세스 키 > “액세스 키 만들기” 선택
- IAM > 사용자 > your-iam-user > 액세스 키 만들기 > 액세스 키 모범 사례 및 대안 > “기타” 선택 > “다음” 선택
- IAM > 사용자 > your-iam-user > 액세스 키 만들기 > 설명 태그 설정 > “액세스 키 만들기” 선택
- IAM > 사용자 > your-iam-user > 액세스 키 만들기 > 액세스 키 검색 > Discourse app.yml에서 사용하기 위해 액세스 키와 시크릿 액세스 키를 안전하게 저장 > “완료” 선택
정책
- s3-discourse-policy-your-iam-user.txt 파일을 자신의 IAM 사용자 이름과 버킷 이름으로 수정하세요.
- IAM > 정책 > 정책 만들기로 이동
- IAM > 정책 > 정책 만들기 > 권한 지정 > 정책 편집기 > 정책 편집기에서 “JSON” 선택 > s3-discourse-policy-your-iam-user.txt에서 정책을 복사하여 JSON 편집기에 붙여넣기 (기존 JSON을 복사하여 덮어쓰기) > “다음” 선택
- IAM > 정책 > 정책 만들기 > 검토 및 생성 > 정책 세부 정보 > 정책 이름 > 정책 이름 입력 (예: s3-discourse-policy-your-iam-user) > “다음” 선택
- IAM 사용자로 이동: 4단계. IAM > 사용자 > 사용자 만들기로 이동하여 사용자 생성 프로세스를 계속하세요
Amazon S3 버킷
백업 버킷, 업로드 버킷, 그리고 선택적이지만 유용한 구성 프로세스 버킷을 생성하고 구성하세요.
백업 버킷 생성 yourdomain-subdomain-backups
- Amazon S3 버킷으로 이동 > “버킷 생성” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > “일반 목적” 선택 확인
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > 버킷 이름 > 백업 버킷 이름 입력 (예: yourdomain-subdomain-backups)
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > “ACL 비활성화(권장됨)” 선택 확인
- Amazon S3 > 버킷 > 버킷 생성 > 이 버킷에 대한 공개 액세스 차단 설정 > “모든 공개 액세스 차단” 선택 해제 후, “새로운 공개 버킷 또는 액세스 포인트 정책을 통해 부여된 버킷 및 객체에 대한 공개 액세스 차단” 및 “모든 공개 버킷 또는 액세스 포인트 정책을 통해 부여된 버킷 및 객체에 대한 공개 및 계정 간 액세스 차단” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 이 버킷에 대한 공개 액세스 차단 설정 > 모든 공개 액세스 차단을 끄면 이 버킷 및 내부 객체가 공개될 수 있음 > “현재 설정이 이 버킷 및 내부 객체가 공개될 수 있음을 확인합니다.” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 버킷 버전 관리 > 버킷 버전 관리 > “사용” 선택 정보: 버킷 버전 관리는 "라이프사이클 규칙"에 필요합니다
- Amazon S3 > 버킷 > 버킷 생성 > “버킷 생성” 선택
라이프사이클 규칙 구성
백업 유지 규칙
- Amazon S3 > 버킷 > 방금 생성된 버킷 선택 (예: yourdomain-subdomain-backups)
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > “라이프사이클 규칙 만들기” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 라이프사이클 규칙 이름 > 규칙 이름 입력 (예: backup retention)
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 규칙 범위 선택 > “버킷의 모든 객체에 적용” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 규칙 범위 선택 > 버킷의 모든 객체에 적용 > “이 규칙이 버킷의 모든 객체에 적용됨을 확인합니다.” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 라이프사이클 규칙 작업 > “객체의 비현재 버전 간 스토리지 클래스 전환”, “객체의 현재 버전 만료”, “객체의 비현재 버전 영구 삭제” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 라이프사이클 규칙 작업 > 전환은 요청당 과금됨 > “이 라이프사이클 규칙이 요청당 전환 비용이 발생함을 확인합니다.” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 간 스토리지 클래스 전환 > 스토리지 클래스 전환 선택 > “Glacier Instant Retrieval” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 간 스토리지 클래스 전환 > 객체가 비현재 상태가 된 후 일수 > “1” 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 현재 버전 만료 > 객체 생성 후 일수 > “7” 또는 15 또는 30 또는 ??? 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 영구 삭제 > 객체가 비현재 상태가 된 후 일수 > “91” 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > "전환 및 만료 작업 검토"가 올바른지 확인 > “규칙 생성” 선택
청소 규칙
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > “라이프사이클 규칙 만들기” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 라이프사이클 규칙 이름 > 규칙 이름 cleanup 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 규칙 범위 선택 > “버킷의 모든 객체에 적용” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 규칙 범위 선택 > 버킷의 모든 객체에 적용 > “이 규칙이 버킷의 모든 객체에 적용됨을 확인합니다.” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 라이프사이클 규칙 작업 > “객체의 비현재 버전 영구 삭제” 및 “만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 영구 삭제 > 객체가 비현재 상태가 된 후 일수 > “92” 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 영구 삭제 > 만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제 > 만료된 객체 삭제 마커 > “만료된 객체 삭제 마커 삭제” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 영구 삭제 > 만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제 > 불완전한 멀티파트 업로드 > “불완전한 멀티파트 업로드 삭제” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > 객체의 비현재 버전 영구 삭제 > 만료된 객체 삭제 마커 또는 불완전한 멀티파트 업로드 삭제 > 불완전한 멀티파트 업로드 > 불완전한 멀티파트 업로드 삭제 > 일수 > “3” 또는 ??? 입력
- Amazon S3 > 버킷 > yourdomain-subdomain-backups > 관리 > 라이프사이클 구성 > "전환 및 만료 작업 검토"가 올바른지 확인 > “규칙 생성” 선택
업로드 버킷 생성 yourdomain-subdomain-uploads
- Amazon S3 > 버킷으로 이동 > “버킷 생성” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > “일반 목적” 선택 확인
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > 버킷 이름 > 업로드 버킷 이름 입력 (예: yourdomain-subdomain-uploads)
- Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > “ACL 활성화” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 이 버킷에 대한 공개 액세스 차단 설정 > “모든 공개 액세스 차단” 선택 해제 후, “새로운 공개 버킷 또는 액세스 포인트 정책을 통해 부여된 버킷 및 객체에 대한 공개 액세스 차단” 및 “모든 공개 버킷 또는 액세스 포인트 정책을 통해 부여된 버킷 및 객체에 대한 공개 및 계정 간 액세스 차단” 선택
- Amazon S3 > 버킷 > 버킷 생성 > 이 버킷에 대한 공개 액세스 차단 설정 > 모든 공개 액세스 차단을 끄면 이 버킷 및 내부 객체가 공개될 수 있음 > “현재 설정이 이 버킷 및 내부 객체가 공개될 수 있음을 확인합니다.” 선택
- Amazon S3 > 버킷 > 버킷 생성 > “버킷 생성” 선택
- Amazon S3 > 버킷 > 버킷 화면 > 방금 생성된 버킷 선택 (예: yourdomain-subdomain-uploads)
분배 #2 생성 후 단계 9로 돌아오세요 - Amazon S3 > 버킷 > yourdomain-subdomain-uploads > 권한 > 버킷 정책 > 편집 선택 > 분배 #2 생성의 JSON 붙여넣기 11. CloudFront > 분배 > 분배 ID > 오리진 편집 > 오리진 액세스 제어 > “변경 사항 저장” 선택
- Amazon S3 > 버킷 > yourdomain-subdomain-uploads > 권한 > 액세스 제어 목록(ACL) > 편집 선택 > 모두(공개 액세스) > “읽기” 선택 > 모두 또는 인증된 사용자 그룹의 수혜자에게 액세스를 허용하면 전 세계 누구나 이 버킷의 객체에 액세스할 수 있습니다. “이 변경 사항이 내 객체와 버킷에 미치는 영향을 이해합니다.” 선택 > “변경 사항 저장” 선택
구성 프로세스 버킷 생성 a-origin-config-bucket
분배 #1 구성 프로세스 동안 사용할 버킷을 생성합니다. 버킷은 구성 프로세스 중에 삭제될 초기 오리진으로만 일시적으로 사용되므로 이름과 구성은 중요하지 않습니다.
1. Amazon S3 > 버킷으로 이동 > “버킷 생성” 선택
2. Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > “일반 목적” 선택 확인
3. Amazon S3 > 버킷 > 버킷 생성 > 일반 구성 > 버킷 이름 > 업로드 버킷 이름 입력 (예: a-origin-config-bucket)
4. 구성 페이지를 통해 진행하며 “버킷 생성” 선택
CloudFront 분배
AWS S3 Cloudfront 분배를 두 개 생성합니다. 하나는 웹사이트 자산을 제공하고, 다른 하나는 업로드 버킷 자산을 제공합니다.
분배 #1 생성
분배 #1
DISCOURSE_CDN_URL
분배 이름: cdn-yourdomain-subdomain
오리진: subdomain.yourdomain.tld
분배 도메인 이름(Cloudfront URL): AWS-assigned.cloudfront.net
대체 도메인 이름: discourse-cdn.yourdomain.tld
- CloudFront > 분배로 이동 > “생성” 선택
- CloudFront > 분배 > 분배 생성 > 플랜 선택 > “사용량 기반 과금” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 분배 이름 > 분배 이름 입력 (예: cdn-yourdomain-subdomain)
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 설명 - 선택 사항 > “cdn-yourdomain-subdomain” 입력 (선택 사항이지만 가시성에 도움이 됨)
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 분배 유형 > “단일 웹사이트 또는 앱” 선택 확인 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 오리진 유형 > “기타” 선택 AWS 또는 비-AWS 오리진을 공개적으로 해석 가능한 URL을 통해 참조하세요.
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 오리진 > 사용자 지정 오리진 > 도메인 입력 (예: subdomain.yourdomain.tld)
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 설정 > 캐시 설정 > “캐시 설정 사용자 지정” 선택
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 설정 > 캐시 설정 > 캐시 정책 > 드롭다운에서 “CachingOptimized” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 보안 활성화 > 이 가이드를 위한 선택 사항 - > “보안 보호 기능 비활성화” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 검토 및 생성 > “분배 생성” 선택
브랜드 CDN URL을 사용하는 경우 → 단계 12 - CloudFront > 분배 > 분배 ID > 대체 도메인 이름 > “도메인 추가” 선택
- CloudFront > 분배 > 분배 ID > 대체 도메인 이름 > 도메인 추가 > 도메인 구성 > 도메인 > 제공할 도메인 > DISCOURSE_CDN_URL 입력 (예: discourse-cdn.yourdomain.tld) > “다음” 선택
미완료: 대체 도메인 이름: discourse-cdn.yourdomain.tld
분배 #2 생성
분배 #2
DISCOURSE_S3_CDN_URL
분배 이름: s3-yourdomain-subdomain-uploads
오리진: yourdomain-subdomain-uploads
분배 도메인 이름(Cloudfront URL: AWS-assigned.cloudfront.net
대체 도메인 이름: s3-cdn.yourdomain.tld
- CloudFront > 분배 > 분배 생성
- CloudFront > 분배 > 분배 생성 > 플랜 선택 > “사용량 기반 과금” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 분배 이름 > 분배 이름 입력 (예: s3-yourdomain-subdomain-uploads)
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 설명 - 선택 사항 > “s3-yourdomain-subdomain-uploads” 입력 (선택 사항이지만 가시성에 도움이 됨)
- CloudFront > 분배 > 분배 생성 > 시작하기 > 분배 옵션 > 분배 유형 > “단일 웹사이트 또는 앱” 선택 확인 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 오리진 유형 > “Amazon S3” 선택 확인
- CloudFront > 분배 > 분배 생성 > 오리진 지정 > 오리진 > S3 오리진 > “S3 탐색” 선택 > 업로드 버킷 “yourdomain-subdomain-uploads” 선택 > “선택” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 보안 활성화 > 이 가이드를 위한 선택 사항 - > “보안 보호 기능 비활성화” 선택 > “다음” 선택
- CloudFront > 분배 > 분배 생성 > 검토 및 생성 > “검토 및 생성: 올바른지” 확인 > “분배 생성” 선택 → 방금 생성된 분배 정보 페이지가 CloudFront > 분배 > 분배 ID에서 열려야 함
- CloudFront > 분배 > 분배 ID > 오리진 > 오리진 선택 > “편집” 선택
- CloudFront > 분배 > 분배 ID > 오리진 편집 > 오리진 액세스 제어 > ! 이 정책을 사용하여 CloudFront 액세스를 허용해야 합니다… > “정책 복사” 선택 > 업로드 버킷 생성 9. Amazon S3 > 버킷 > yourdomain-subdomain-uploads > 권한 > 버킷 정책으로 이동
미완료: 대체 도메인 이름: s3-cdn.yourdomain.tld
Discourse 관리자
현재 Discourse 버전 기준: 2025.12.0-latest
Discourse 관리자 UI에서 다음 변경 사항을 수행하세요
백업 설정 /admin/backups/settings
- 최대 백업 수 > 로컬에 유지할 백업 수 입력
- 업로드 포함 백업 > “예약된 백업에 업로드 포함. 이 기능을 비활성화하면 데이터베이스만 백업됩니다.” 선택
S3 설정 /admin/site_settings/category/all_results?filter=S3
- S3 모든 업로드에 CDN URL 사용 > “이미지만이 아닌 S3에 업로드된 모든 파일에 CDN URL 사용.” 선택 (Discourse는 기본적으로 선택 해제됨)
구성 편집 (app.yml) 브랜드 없는 URL
브랜드 URL 또는 브랜드 없는 Cloudfront URL을 위해 아래 변경 사항을 수행하여 app.yml을 편집하세요.
Discourse 브랜드 없는 URL
브랜드 없는 Cloudfront 분배에 이것을 사용하세요. DISCOURSE_S3_REGION이 다를 수 있습니다.
DISCOURSE_CDN_URL: https://amazonassigned.cloudfront.net
S3 스토리지 구성 (브랜드 없음)
## S3 스토리지 구성
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: key obfuscated
DISCOURSE_S3_SECRET_ACCESS_KEY: key obfuscated
DISCOURSE_S3_CDN_URL: https://amazonassigned.cloudfront.net
DISCOURSE_S3_BUCKET: your-bucket-name-uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name-backups
DISCOURSE_BACKUP_LOCATION: s3
Discourse 브랜드 URL
DNS 구성
CDN에 yourdomain.com 기반 URL을 사용하려면 일부 DNS 변경 사항이 필요하며 CDN URL을 조정해야 합니다.
팁: 각 Cloudfront 분배의 "대체 도메인 이름"에 discourse-cdn.yourdomain.com과 s3-cdn.yourdomain.com을 도메인 이름으로 추가하는 것을 잊지 마세요.
도메인 브랜드 Cloudfront 분배를 사용하려면 DNS 구성.
DISCOURSE_CDN_URL
기존 레코드: A discourseinstance.yourdomain.com 인스턴스 IP 참고: 이것은 기존 Discourse 설치 IP입니다.
새 레코드: A discourse-cdn-cloudfront.yourdomain.com 인스턴스 IP
새 레코드: CNAME discourse-cdn.yourdomain.com -> amazonassigned.cloudfront.net
DISCOURSE_S3_CDN_URL
새 레코드: CNAME s3-cdn-cloudfront.yourdomain.com -> amazonassigned.cloudfront.net
새 레코드: CNAME s3-cdn.yourdomain.com -> s3-cdn-cloudfront.yourdomain.com
구성 편집 (app.yml) 브랜드 URL
DNS 변경 사항이 완료되면 아래 변경 사항을 수행하여 app.yml을 편집할 수 있습니다.
Cloudfront 분배에 도메인 CNAME을 사용하는 경우 DISCOURSE_CDN_URL 및/또는 DISCOURSE_S3_CDN_URL을 변경하세요 (amazonassigned.cloudfront.net).
DISCOURSE_CDN_URL: https://discourse-cdn.yourdomain.com
S3 스토리지 구성 (브랜드 있음)
## S3 스토리지 구성
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: key obfuscated
DISCOURSE_S3_SECRET_ACCESS_KEY: key obfuscated
DISCOURSE_S3_CDN_URL: https://s3-cdn.yourdomain.com
DISCOURSE_S3_BUCKET: your-bucket-name-uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name-backups
DISCOURSE_BACKUP_LOCATION: s3
추가 구성 편집 (app.yml)
브랜드 또는 Cloudfront URL 중 어떤 접근 방식을 사용하든, 이후 재빌드 동안 모든 것이 최신 상태를 유지하도록 하기 위해 아래 after_assets_precompile 섹션이 필요합니다.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
-you may have more plugins
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
./launcher rebuild app을 사용하여 인스턴스를 재빌드하세요.
./launcher rebuild app이 성공적으로 완료되면 다음 rake를 실행하세요.
./launcher enter app
rake posts:rebake
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
rake s3:upload_assets
rake s3:expire_missing_assets
rake가 오류 없이 완료되면 준비가 된 것입니다.
일부 사이트에서는 s3:upload_assets와 관련된 오류로 인해 초기 재빌드가 실패할 수 있습니다. 이 경우,
업로드 버킷의 “읽기” 설정을 확인하세요. 올바르게 설정되어 있다면,
after_assets_precompile 섹션을 주석 처리하거나 제거하세요:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
그리고 ./launcher rebuild app을 다시 실행하세요. 그런 다음 "rake s3:upload_assets"와 "rake s3:expire_missing_assets"를 실행하세요.
두 rake 모두 오류 없이 완료되면 after_assets_precompile 섹션을 다시 추가하거나 주석 해제하고, 다시 재빌드한 후 위에 나열된 모든 rake를 실행하세요.
rake 중 하나에서 오류가 발생하거나 재빌드가 다시 실패하면 app.yml 및/또는 AWS S3 구성 및/또는 DNS 레코드에 문제가 있는 것입니다. 즐거운 탐험을! ![]()
s3-discourse-policy-your-iam-user.txt (697 Bytes)