이미지 업로드 프로젝트를 클라우드에서 운영하려면 몇 가지 선택지가 있다. EC2를 띄우고, 직접 서버를 운영하는 방법이 가장 익숙한 방법이다. 하지만 이 방법은 유지보수 부담이 크고, 트래픽이 늘어나면 서버를 추가해야 한다. 무엇보다 EC2는 계속 켜져 있어야 하므로, 사용여부와 상관없이 지속적으로 비용이 발생한다.
클라우드를 쓰는 이유는 필요할 때만 사용하고, 불필요한 비용을 최소화하기 위해서다. 따라서 서버를 유지하지 않고도 이미지 업로드 및 처리가 가능한 구조를 고민하게 됐고, AWS Lambda와 S3 조합이 가장 현실적인 선택이라는 결론을 내렸다.
대용량 이미지 업로드를 위한 클라우드 아키텍처 선택 과정
Lambda를 선택한 이유: 서버 없이 돌아가는 시스템
Lambda를 선택한 이유는 단순하다. 서버를 직접 운영하고 싶지 않기 때문이다.
이미지 업로드 서비스에서는 사용자가 파일을 올리면 이를 처리해서 저장해야 하는데, 일반적인 방법이라면 백엔드 EC2서버를 두고 거기에 API를 만들어 처리해야 한다. 문제는 이 방식이 불필요한 지출을 유발한다는 것이다.
EC2 서버를 운영하면 생기는 단점들
- EC2를 쓰면 24시간 켜져 있어야 한다. 트래픽이 적어도 비용이 계속 발생한다.
- 사용자가 몰릴 경우, 수동으로 인스턴스를 늘려야 한다. 즉, 트래픽 예측이 어렵다.
- 서버 유지보수, 보안 패치 같은 귀찮은 작업이 계속 생긴다.
이에 반해 Lambda는 필요할 때만 실행되고, 실행이 끝나면 사라진다. 이게 가장 큰 장점이다.
현 프로젝트에서는 사용자가 이미지를 업로드하면 S3에 저장되고, 이 이벤트를 감지한 Lambda가 자동으로 실행되어 썸네일을 생성하는 방식을 적용했다. 덕분에 서버를 유지할 필요도 없고, 사용량이 많아지면 Lambda가 알아서 확장된다. 트래픽이 없을 때는 돈이 안 나간다는 것도 큰 이점이다.
즉, Lambda를 쓰면 서버 관리에서 완전히 자유로워질 수 있다. 비용도 사용한 만큼만 내면 되니까, EC2처럼 고정 비용이 나가는 구조보다 훨씬 유리하다.
S3를 선택한 이유: 확장이 용이한 스토리지
이미지를 저장하는 방법도 여러 가지가 있다. EC2에 저장할 수도 있고, EBS 같은 블록 스토리지를 쓸 수도 있지만, 이 방식은 용량을 계속 관리해야 한다는 문제가 있다.
S3는 그런 고민을 할 필요가 없다. 그냥 던져 넣으면 알아서 저장되고, 필요할 때 가져오면 된다.
- 무제한 저장 가능 → 용량을 직접 관리할 필요가 없다.
- 사용한 만큼만 비용 지불 → 필요 이상으로 서버를 운영하지 않아도 된다.
- 서버리스 구조와 자연스럽게 연결 → Lambda와 연동하기 쉽다.
또한 S3의 강점인 스토리지 계층 구분을 사용해 이미지를 사용빈도에 따라 나눌 수 있다. 현재 계획은 자주 사용되는 이미지는 기본 S3에 저장하고, 오래된 이미지는 S3 Glacier로 자동 이동하는 방식을 적용할 예정이다. 이렇게 하면 장기 보관 비용을 줄일 수 있으리라 기대한다.
현 상황에서 Lambda + S3 조합이 가장 현실적인 이유
이 조합을 선택한 이유는 단순하다. EC2를 유지하면서 발생하는 고정 비용이 없고, 확장성이 뛰어나며, 유지보수 부담이 없다.
- Lambda는 서버를 유지할 필요가 없고, 사용한 만큼만 비용을 내면 된다.
- S3는 용량을 신경 쓸 필요 없이 무제한으로 저장할 수 있으며, 계층화를 통해 비용을 절감할 수 있다.
두 서비스를 조합하면 자동으로 확장되면서, 비용을 최소화할 수 있는 구조를 만들 수 있다.
물론 클라우드 비용은 운영하면서 계속 모니터링해야 한다. Lambda 실행 횟수가 많아지거나 S3에서도 예상보다 요금이 높아질 수도 있다. 하지만 EC2처럼 무조건 유지비가 발생하는 구조보다는 훨씬 유리한 선택이다.
무조건 최신 기술보다는 비용을 최소화하면서 프로젝트에 적합한 클라우드 서비스를 선택하고자 한다. Lambda와 S3 조합이 현재 구현하는 서비스에서 가장 현실적인 비용 최적화 조합이라 판단한다. 그러나 이것도 현재의 판단이므로 앞으로도 계속 최적화할 수 있는 부분을 찾아서 개선해 나갈 계획이다.
+ 글또 9회차 제출을 위해 모바일로 작성한 글을 추후 수정함
'사이드 프로젝트 > 대용량 이미지 태깅 및 분석 프로젝트' 카테고리의 다른 글
[대용량 이미지 태깅] 프로젝트 개요 및 향후 계획 (0) | 2025.03.02 |
---|
댓글