백엔드 서버를 개발함에 있어서 파일 업로드 기능을 구현할 때 대표적인 방법은 3가지가 있습니다.
1. Stream
2. MultipartFile
3. AWS Multipart upload
1, 2번 방식을 이용하면 파일 업로드나 임시 파일 관리에서 결국 서버를 경유해야 하기 때문에
하나의 통합된 서버에서 서버의 리소스가 충분치 않다면, 업로드 작업을 처리하느라 다른 작업들에 대해 영향을 받을 수 있게 됩니다.
적은 자원으로 서버를 운영하면서 파일 업로드도 구현하기 위해서는 3번 방법이 적절하나, 구현 난이도는 제일 복잡하며
이는 단순 이미지 파일만 업로드가 필요한 서비스의 경우에는 오버엔지니어링이라고 볼 수도 있습니다.
저는 파일/이미지 업로드를 제공하는 서비스이기에 3번(AWS Multipart upload) 방법을 통해 더 쾌적한 서비스를 제공하고자 했습니다.
AWS 멀티파트 업로드의 방식은, 업로드하고자 하는 파일을 아주 작은 단위로 쪼개서 AWS에 보낸 뒤에 AWS에서 이를 다시 원본 파일로 합치는 방식을 활용합니다.
단 AWS Multipart upload를 이용할 경우 주의해야 할 점이 있는데요, 사용하지 않는데도 알 수 없는 볼륨이 점점 증가되는 현상을 마주할 수 있습니다.
이는 AWS Multipar upload에서, 업로드 도중 취소된 파일들에 대한 관리를 서비스 단에서 제공해주지 않으면 점점 불필요한 용량으로 자리잡아 쌓이게 된다는 점입니다. 이를 불완전한 멀티파트 업로드 라고 합니다.
이러한 '사용되진 않지만, 자리잡고 있는 파일들' 을 관리해주기 위해서, AWS 플랫폼에서 '수명 주기 관리' 를 활용할 수 있습니다.
설정 방법은 생각보다 간단한데, 아래와 같이 진행해주면 됩니다.
위와 같이 이름과 규칙 범위에 대해서 적용해주시고
날짜와 속성에 대한 설정을 진행해주면 됩니다.
'[AWS]' 카테고리의 다른 글
Spring Scheduled가 EC2 에서 시차가 생길 때 (0) | 2024.11.02 |
---|---|
AWS Swap memory 활용으로 메모리 부족 해결하기 (0) | 2024.06.19 |
[AWS] WAF는 자비가 없다. (0) | 2022.07.11 |
[AWS] WAF란? - WAF 설정 (0) | 2022.07.10 |
[AWS] 예산 설정 (AWS budget limit) (0) | 2022.07.10 |