Skip to content

#444 [Refactor] AWS S3를 Railway Bucket으로 마이그레이션 (개발 서버) - #445

Merged
si-zero merged 6 commits into
devfrom
refactor/#444
Sep 7, 2026
Merged

#444 [Refactor] AWS S3를 Railway Bucket으로 마이그레이션 (개발 서버)#445
si-zero merged 6 commits into
devfrom
refactor/#444

Conversation

@si-zero

@si-zero si-zero commented Sep 7, 2026

Copy link
Copy Markdown
Member

#️⃣ 연관된 이슈

📝 작업 내용

♻️ Refactor

내용 파일
S3 endpoint/path-style-access 프로퍼티 추가 (환경변수로 오버라이드 가능) application.yml
S3Presigner에 endpoint override + path-style access 설정 추가 S3Config.java
presigned URL 생성 시 key 추출 로직을 스토리지 제공자 무관하게 변경 S3PresignedUrlService.java
업로드/다운로드/삭제 시 key 추출 로직을 스토리지 제공자 무관하게 변경 S3UploadServiceImpl.java

🐛 Fix

내용 파일
스웨거 정적 리소스(webjars)가 인증 없이 접근되도록 허용 목록에 추가 SecurityConfig.java
JwtFilter 자체 화이트리스트에도 webjars 경로 누락되어 있던 것 추가 JwtFilter.java

📌 공유 사항

  1. Railway 개발 서버 환경변수만 Railway Bucket 값(AWS_S3_BUCKET, AWS_REGION=auto, AWS_ACCESS_KEY, AWS_SECRET_KEY, AWS_ENDPOINT_URL, S3_PATH_STYLE_ACCESS_ENABLED=true)으로 교체 필요 (코드 배포 전/후 Railway 대시보드에서 별도 작업, merge만으로는 반영 안 됨)
  2. 기존 AWS S3 버킷의 전체 파일(1,250개, 약 626MB)과 FCM/APNs 인증키를 Railway 개발 버킷으로 이관 완료
  3. 운영 서버는 아직 기존 AWS S3 그대로이며, 개발 서버 안정화 확인 후 별도로 전환 예정
  4. 검증 중 발견한 기존 버그 2건은 이번 PR 스코프에서 제외 — 배틀 발행 자동화 작업 때 함께 다루기로 함
    • 배틀 수정(PATCH) API에서 옵션 태그 재전송 시 unique constraint 위반 500 에러
    • 로컬 draft → S3 promote가 DB 트랜잭션과 분리되어 있어 이후 DB 저장 실패 시 파일 쪽은 롤백되지 않는 문제

✅ 체크리스트

  • Reviewer에 팀원들을 선택했나요?
  • Assignees에 본인을 선택했나요?
  • 컨벤션에 맞는 Type을 선택했나요?
  • Development에 이슈를 연동했나요?
  • Merge 하려는 브랜치가 올바르게 설정되어 있나요?
  • 컨벤션을 지키고 있나요?
  • 로컬에서 실행했을 때 에러가 발생하지 않나요?
  • 팀원들에게 PR 링크 공유를 했나요?

📸 스크린샷

로컬 개발 서버 기동 후 아래 항목 실제 호출로 회귀 검증:

  • 관리자 파일 업로드 API (S3 업로드 + presigned URL 반환) 정상
  • 로컬 draft 업로드 → 조회 정상
  • 배틀 생성 → 발행 시 로컬 draft 썸네일 S3 promote → 응답 이미지 URL 정상 노출
  • 배틀 옵션(철학자) 이미지, 마이페이지 캐릭터 이미지 presigned URL 정상 접근 확인
  • 썸네일 교체 시 기존 파일 삭제(orphan 없음) 확인
  • ResourceRedirectController 302 리다이렉트 정상 동작
  • 기존 S3Client mock 통합테스트 6종(ShareApiIntegrationTest, ContentPublishSchedulerIntegrationTest, AdminNotificationTestPushIntegrationTest, AdminScenarioPublishFlowIntegrationTest, AdminNoticeIntegrationTest, AdminContentCreationIntegrationTest) 전부 통과
  • 시나리오 오디오 파이프라인은 AI API 비용/로컬 FFmpeg 경로 문제로 실제 호출 스킵, 기존 통과된 통합테스트로 갈음

💬 리뷰 요구사항

  1. Railway Bucket 자체의 안정성/SLA는 아직 장기 검증 전이니, 개발 서버에서 최소 1~2주 정도 지켜본 뒤 운영 전환 여부를 논의했으면 합니다.

@si-zero si-zero self-assigned this Sep 7, 2026
@si-zero si-zero added the ♻️ Refactor (리팩토링) 코드 구조 개선 및 성능 최적화를 위해 사용합니다. label Sep 7, 2026
@si-zero si-zero changed the title ♻️ Refactor: AWS S3를 Railway Bucket으로 마이그레이션 (개발 서버) #444 [Refactor] AWS S3를 Railway Bucket으로 마이그레이션 (개발 서버) Sep 7, 2026
@si-zero
si-zero merged commit 23496d1 into dev Sep 7, 2026
1 check passed
@si-zero
si-zero deleted the refactor/#444 branch September 7, 2026 02:11
@si-zero si-zero linked an issue Sep 7, 2026 that may be closed by this pull request
19 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ Refactor (리팩토링) 코드 구조 개선 및 성능 최적화를 위해 사용합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

♻️ Refactor: AWS S3를 Railway Bucket으로 마이그레이션

1 participant