회원가입

[기획] CRON 스케줄링 media 파일 백업 개선

Beany 2024-10-13

ChatGPT 요약

매주 금요일 정각에 블로그 미디어 파일을 압축해서 이메일로 백업하는데 용량 초과로 백업 실패. 문제의 해결을 위해 Google Drive를 활용한 새로운 백업 방법과 AWS S3 또는 압축 파일 분할을 고려하는데, Google Drive를 선택. Google Drive 업로드 기능 구현 후 파일 링크를 받아 알림 이메일 발송 예정. 새로운 방법1 선택 이유는 시간 절약과 미래적 이점을 고려한 결과. Google Drive 활용 포스팅 예정.

매주 금요일 정각에 블로그에 작성된 미디어 파일을 모두 백업하는 로직을 수행하고 있습니다. 모든 미디어 파일을 압축한 후, 이메일로 데이터를 백업하고 있습니다.

 

 

문제 발생


그런데 어느 날 백업이 되지 않는 것이 모니터링을 통해 확인되어, 그 이유를 조사해 보았습니다.


(Sentry 모니터링)

SMTPSenderRefused
(552, b"5.3.4 Your message exceeded Google's message size limits. To view our\n5.3.4 message size guidelines, go to\n5.3.4  https://support.google.com/mail/?p=MaxSizeError xxxxxxxxxxxxxxxxxxxxxxx - gsmtp", 'xxxxxxx@xxxxxxxxx')

https://support.google.com/mail/answer/6584?visit_id=638643793405778907-1958394339&p=MaxSizeError

자세히 확인해본 결과, 첨부 파일의 용량이 초과된 것 같았습니다.

 

이 문제를 해결하기 위해 현재 프로세스를 간단하게 설명해 보겠습니다.

위 사진과 같이 00:00시에 작업이 시작되며, media 폴더를 압축한 뒤 이 파일을 이메일로 전송하고, 디스크 용량을 확보하기 위해 압축 파일을 제거합니다.

위에서 언급했듯이, 압축 파일의 용량이 25MB를 초과하여 Gmail API를 사용할 수 없게 되었습니다.

 

 

 

문제 해결 방법 구상


이 문제를 해결하기 위해 여러 가지 방법을 고민해 보았습니다.

  • 새로운 방법1 - 메일이 아닌 Google Drive 를 이용해서 백업
  • 새로운 방법2 - 메일이 아닌 AWS S3 로 파일 관리
    • S3 파일 업로드 로직 구현
  • 기존 방법 - 압축 파일을 크게 1개가 아닌 N개로 쪼개서 email 전송
    • N 개로 쪼개서 전달하는 로직 개발 필요

 

새로운 방법1 - 메일이 아닌 Google Drive 를 이용해서 백업

  • google cloud console Google Drive API 활성화 필요
  • 파일을 업로드 하는 로직 구현
  • 파일을 삭제 하는 로직 구현
  • 업로드한 파일 링크 받는 로직 구현
  • 로직 완료 후, 파일 링크 전달 및 알림 email 전달

 

새로운 방법2 - 메일이 아닌 AWS S3 로 파일 관리

  • S3 파일 업로드 로직 구현

 

기존 방법 - 압축 파일을 크게 1개가 아닌 N개로 쪼개서 email 전송

  • N 개로 쪼개는 로직 구현

 

확실히 해야 할 일이 많은 것은 새로운 방법1입니다. 빠르게 해결하려면 새로운 방법2기존 방법을 선택하면 될 것입니다.

 

 

문제 해결 방법 결정


이번 기회에 Google Cloud를 이용해 Google Drive파일을 업로드하고 제거하는 로직을 만들어 두면 좋을 것 같아 새로운 방법1을 선택하게 되었습니다.

원래는 기존 방법을 사용하려고 했지만, 시간적 장점과 새로운 기능 구현의 장점을 고려해 고민한 끝에 새로운 방법1이 미래에 더 많은 도움이 될 것 같다고 판단했습니다.
언젠가는 Google Drive 파일 업로드도 필요하지 않을까? 라는 생각도 있었습니다.

새로운 방법2를 선택하지 않은 이유는 AWS S3가 무료가 아니기 때문입니다. 블로그를 운영하면서 전기세와 도메인 이름 외에 추가 비용을 최대한 줄이고 싶었습니다.
(전기세: 라즈베리파이)

 

기존과 동일한 흐름이지만, 파일을 이메일로 보내는 대신 압축된 파일을 Google Drive에 업로드하고, 드라이브 링크를 받아 해당 링크와 함께 업로드가 완료되었음을 이메일로 알리려고 합니다.

 

 

다음 게시글에서는 Google Drive를 이용해 미디어 파일을 업로드하는 방법에 대해 다룰 예정입니다.

Google Drive 업로드 게시글https://cwbeany.com/tip-dev/58

0 0
블로그 일기
제 블로그의 고도화 과정을 설명합니다. 이는 코드 리팩토링과 추가된 기능들에 대해 기록하기 위한 게시판입니다. 어떤 기능이 추가되었는지, 무엇이 개선되었는지 등 고도화되는 과정을 자세히 다룰 예정입니다.
Yesterday: 456
Today: 114