🕰️ 작성일 : 2025.03.10
Q : 하나의 버킷이 여러개의 Path로 구성되어 있습니다. 각 Path 별 저장되어 있는 Object에 대한 비용을 확인하기 위한 방안이 있을까요?
A : 업로드 된 파일의 Tag 기반으로 비용을 모니터링하거나, S3의 인벤토리 로그를 통해 각 Path 별 저장되어 있는 파일 사이즈를 기준으로 프로젝트의 비용을 산출
태그 기반으로 비용 모니터링
방안 1. (업로드 시 태그 부여)
- S3에 파일을 업로드하는 Application에서 Tag을 기입하는 Logic 추가가 가능하다면 Object를 Put 할 경우 Tag를 함께 지정하여 업로드
- Application에서 업로드되는 경로에 따라 Tag를 달리하여 S3 Put 시 Tag 부여 후 업로드
- (← 펼치기) 예시 - Python 기반 코드

방안 2. (업로드 후 태그 부여)
- S3에 파일 업로드 완료 시 EventBridge를 통해 S3 이벤트를 감지하고, Lambda를 통해 업로드 된 파일에 대한 Tag를 부여
- A 폴더에는
Department=TeamA
로, B 폴더에는 Department=TeamB
로 파일에 Tag가 부여되도록 지정합니다.
- S3 버킷에 아래와 같이 Event Notification을 설정합니다. Event 발생 시 이를 처리할 Lambda를 생성하고 매핑해줍니다. Lambda에서 사용 할 코드는 아래 예시를 참고하세요.
- 이 방안은 Lambda의 Computing 호출 비용이 발생합니다. S3에서 발생하는 Event를 SQS에서 우선 받고 Lambda에서 Batch로 돌 수 있도록 설정하면 Lambda의 호출 비용을 최소화 할 수 있습니다.