Bedrock을 활용한 3줄 요약 기능 - 4부

Administrator||조회수 48


AI 요약 기능 도입기 4부 - "비용 안전망 구축": AWS Budgets 설정 -1

AI 3줄 요약 기능의 마지막 퍼즐 조각인 '비용 통제' 를 위한 최후의 안전망을 설치하는 과정을 공유하려 한다. 아무리 비용 효율적인 캐싱 전략을 사용했더라도, 만약의 사태에 대비해 AWS 사용량이 특정 금액을 넘어서면 즉시 알림을 받는 시스템을 구축하는 것을 목표로 한다.

목표: "AI 요약 기능 때문에 발생하는 비용이 월 $2를 넘을 것 같으면 알려줘"

내가 원한 것은 단순한 월 전체 AWS 비용 알림이 아니었고 베드락 호출에 대한 비용만을 확인 하기 위한 보다 더 정밀한 목표를 세웠다. 이미 블로그 및 포트폴리오 웹 페이지의 전체 발생하는 비용에 대한 예산 설정 및 알림은 해두었다.

  1. 오직 AI 요약 기능과 관련된 리소스에서 발생하는 비용만을 추적할 것.
  2. 그 비용이 내가 설정한 예산(나는 $2로 설정했다)의 "80%"에 도달할 것으로 '예측' 될 때, 나에게 즉시 이메일 알림을 보낼 것.

이 목표를 달성하기 위해 AWS Budgets 서비스를 사용하기로 했다.

첫 번째 난관: 보이지 않는 Bedrock

가장 먼저 시도한 방법은 AWS Budgets의 '서비스' 필터를 사용하는 것이었다. 하지만 내 예상과 달리, 필터 목록에서 'Amazon Bedrock'을 찾을 수 없었다.

alt text

신규 서비스이거나 비용 집계 방식의 차이 등 여러 이유가 있겠지만, 이 방법으로는 내가 원하는 정밀한 추적이 불가능했다. 다른 방법을 찾아야 했다.

해결책: 리소스에 '태그' 붙이기

AWS는 이런 경우를 위해 '비용 할당 태그' 라는 강력한 기능을 제공한다. 특정 리소스에 고유한 '이름표(태그)'를 붙여두고, 나중에 청구서에서 "이 이름표가 붙은 리소스에서 발생한 비용만 따로 보여줘"라고 요청하는 방식이다.

내 아키텍처에서 Bedrock을 호출하는 유일한 주체는 백엔드 API를 처리하는 backendApiLambda였다. 그렇다면 Bedrock 서비스 대신, Bedrock을 호출하는 이 Lambda 함수에 태그를 붙이면 AI 요약 기능으로 인해 발생하는 비용(Lambda 실행 비용 + Bedrock 호출 비용)을 함께 추적할 수 있다는 결론에 도달했다.

나는 모든 인프라를 AWS CDK로 관리하므로, apps/infra/lib/blog-stack.ts 파일에 아래와 같이 단 한 줄의 코드를 추가하여 Lambda 함수에 태그를 부착했다.

alt text

  • 태그 키: blog-project-cost
  • 태그 값: bedrock-caller

이 코드를 추가하고 인프라를 재배포한 뒤, AWS Billing 콘솔의 '비용 할당 태그' 메뉴로 이동했다. 그리고 새로 추가된 blog-project-cost 태그를 비용 추적에 사용하도록 '활성화' 했다.

alt text

정확히 AI 호출 람다를 콘솔에서 확인 시 정확하게 태그가 생성되어 있었다. 하지만 비용 할당 태그에 blog-project-cost라는 태그가 전혀 나타나고 있지 않아서 크게 당황하였다.

그리고, 공식문서를 기반으로 서치를 하였고 아래와 같은 결과를 얻었다.

비용 할당 태그가 Budgets 서비스에 완전히 반영되기까지는 최대 24시간이 소요될 수 있다.

그래서, 나는 마냥 기다릴수 없어서, 기존에 계획했던 프론트엔드 디자인 고도화를 생각했고, 그것이 이전에 포스팅했던 "다크 모드"와 관련된 실패 기록이다...

  • 24시간 후, 나는 다시 AWS Budgets 콘솔로 돌아와 정밀한 예산 설정을 시작할 수 있었다.

alt text


"비용 안전망 구축": AWS Budgets 설정 - 2

24시간이 지난 후, 나는 다시 AWS Budgets 콘솔로 돌아왔다. 이제 이 활성화된 태그를 사용하여, 내가 목표했던 "AI 요약 기능 관련 비용이 월 $2를 초과하면 알림 받기" 설정을 완료할 차례다.

1단계: 예산 유형 선택

AWS Budgets 대시보드에서 '예산 생성' 버튼을 누르면, 가장 먼저 예산 유형을 선택하는 화면이 나타난다. 나는 미리 정의된 템플릿 대신, 필터와 같은 고급 옵션을 직접 제어하기 위해 **'사용자 지정(고급)'**을 선택했다.

alt text

다음으로, 예산 설정 방법에서는 가장 일반적인 '기본 예산' 을 선택했다.

alt text

2단계: 예산 세부 정보 및 범위 설정

이 단계가 이번 여정의 핵심이다. 예산의 이름, 금액, 그리고 가장 중요한 **'어떤 비용을 추적할 것인지(범위)'**를 정의한다.

  • 예산 이름: Bedrock 요금 호출 Budget 관리 (직관적으로 알아볼 수 있도록)
  • 예산 금액: 2.00 USD (월 $2를 초과하지 않도록)

그리고 '예산 범위' 섹션에서, 지난 1부에서 우리가 준비해 둔 '비용 할당 태그'를 필터로 사용했다.

  • 차원: 태그
  • 태그: blog-project-cost (20시간 전에는 나타나지 않은 것이 약 20시간이 지난 후 나타났다.)
  • 값: bedrock-caller

alt text

이 설정을 통해, AWS Budgets는 이제 내 AWS 계정의 모든 비용이 아닌, 오직 blog-project-cost: bedrock-caller 태그가 붙은 리소스(우리의 backendApiLambda)에서 발생하는 비용만을 정밀하게 추적하게 된다.

3단계: 알림 임계값 설정

다음으로, "언제" 알림을 받을지 임계값을 설정했다. 나는 예산을 초과한 후에 통보받는 것이 아니라, 초과할 것이 예측 될 때 미리 알고 싶었다. 하지만 이번에는 예측 기능이 아닌 실제 지출액을 기준으로 설정했다.

  • 임계값: 예산 금액($2.00)의 80% (즉, $1.60)
  • 트리거: 실제 지출액 기준
  • 이메일 수신자: 내 개인 이메일 주소

alt text

이 설정은 "AI 요약 기능 관련 실제 누적 비용이 $1.60를 초과하는 순간, 나에게 즉시 이메일을 보내라"는 의미다.

4-5단계: 검토 및 생성

마지막으로, 지금까지 설정한 모든 내용이 올바른지 검토 페이지에서 다시 한번 확인했다. 예산 유형, 금액, 태그 필터, 알림 설정까지 모두 내가 의도한 대로 설정된 것을 확인하고, '예산 생성' 버튼을 눌러 모든 과정을 마무리했다.

alt text

잠시 후, AWS Budgets 대시보드에 기존에 만든 전체 리소스에 대한 예산 설정 외 새로운 베드락 호출 람다 함수에 대한 예산 설정이 성공적으로 추가되었다.

alt text

결론: 비용에 대한 두려움을 덜고 Bedrock을 사용하다

  • 이제 Deep Dive! 블로그의 AI 요약 기능은 단순 '기능 동작'하는 것을 넘어, '비용적으로 안전하게 통제되는' 상태가 되었다. 만약 예상치 못한 버그나 사용량 급증으로 비용이 증가하더라도, 나는 누구보다 먼저 그 사실을 알 수 있게 되었다.

이 비용 안전망 덕분에, 나는 이제 비용 걱정 없이 더 자유롭게 Bedrock과 같은 기존에 사용해 보지 못한 AWS 서비스를 도입하여 실험하고, 블로그에 새로운 기능들을 더하는 데 집중할 수 있게 되었다. AWS를 사용하며 비용에 대한 '마음의 평화'만큼 중요한 것은 없으니까...ㅎ

Administrator
Written by

Administrator

안녕하세요! Deep Dive! 블로그 제작자 입니다.

댓글을 불러오는 중...