이전 실전프로젝트 당시, 이미지 업로드 과정에서 고민이 있었다.
정말 부끄럽게도 백엔드적 지식이 없다 보니 무지하게도 서버니 당연히 백엔드쪽에서 운영해야하지 않을까라고 생각했었다.
다행히 배포 프로세스를 공부하며 프론트에서 S3를 운영하는 것이 유리하다는 결론에 도달했다.
참고 : https://www.youtube.com/watch?v=yGYeYJpRWPM
미디어의 경우 대부분 큰 용량을 가지고 있고, 미디어 전송 작업은 네트웍(인풋 및 아웃풋)과 CPU time에 부하를 줄 수 있다.
또한 업로드하는 유저의 경우 파일의 전송이 정확하고 제대로 되는지 관리되어야 한다.
기념일과 같은 동시작업이 많아지는 순간에는 충분한 네트웍 대역폭도 필요하다.
만약 업로드 되는 파일들이 서버를 거치지 않고 업로드 된다면 트래픽과 CPU 사용량은 줄어들 것이다.
물론 실전프로젝트 당시 우리는 다른 조에 비해 인원이 부족하였고,
처음 접해보는 라이브러리와 프레임웍들을 도입하고 있었기 때문에 백엔드 팀원 분들이 S3를 선뜻 가져가주셨다.🙇♂️
Simple Storage Service의 약자로 파일 서버의 역할을 하는 서비스다. 일반적인 파일서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 하는데 S3는 이와 같은 것을 대행한다. 트래픽에 따른 시스템적인 문제는 걱정할 필요가 없어진다. 또 파일에 대한 접근 권한을 지정 할 수 있어서 서비스를 호스팅 용도로 사용하는 것을 방지 할 수 있다. 아래는 S3의 주요한 기능적인 특성들이다.
출처 : https://opentutorials.org/course/608/3006
결론 : S3를 구축해서 실제로 구현을 해봐야 정확하게 이해가될 것 같다.