우당탕탕

AWS Lambda 비용 없이 사용하는 방법, 직접 세팅하며 겪은 삽질과 해결법 본문

Tech/AWS

AWS Lambda 비용 없이 사용하는 방법, 직접 세팅하며 겪은 삽질과 해결법

모찌모찝 2026. 5. 25. 19:16

AWS Lambda를 처음 써보면서 비용 걱정을 많이 했는데, 실제로는 무료 티어와 적절한 설정을 활용하면 비용 없이도 충분히 운영할 수 있더라고요. 이걸 세팅하다가 생각보다 삽질이 많아서, 저처럼 비용 고민 때문에 Lambda 도입 망설이는 분들께 도움이 될까 싶어 정리해 봤습니다.

이 글에서는 AWS Lambda 무료 사용 한도를 활용하는 방법부터, 비용 발생을 막기 위한 설정법, 그리고 저는 실제로 어떤 부분에서 막혔고 어떻게 해결했는지까지 모두 다뤄볼게요.

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 이미지

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 정보

제가 사용한 AWS 환경과 버전

AWS Lambda 콘솔과 CLI를 사용했고, AWS CLI 버전은 2.11.0 버전이었습니다. Node.js 18 런타임을 선택했어요. 무료 티어가 적용되는 조건은 AWS 공식 문서에서 확인하시면 됩니다.

AWS Lambda 무료 사용 한도 최대한 활용하는 법

사실 AWS Lambda는 매달 첫 100만 건 호출40만 GB-초의 컴퓨팅 시간을 무료로 제공해요. 그런데 여기서 많이 틀리는 부분이 바로 람다 함수 메모리 설정과 실행 시간을 신경 안 쓰는 거였죠.

저는 처음에 그냥 기본값으로 128MB 메모리, 3초 타임아웃으로 세팅했는데, 이게 쌓이면 GB-초 계산이 커져서 비용이 발생할 수밖에 없더라고요.

// Lambda 함수 설정 예시 (AWS CLI)
aws lambda update-function-configuration \
  --function-name my-function \
  --memory-size 64 \
  --timeout 1

메모리를 64MB로 줄이고 타임아웃도 1초로 설정했더니 사용량이 무료 한도 내로 딱 맞더라고요. 물론 함수가 실제로 1초 이상 걸린다면 타임아웃을 적절히 조절해야 합니다.

무료로 Lambda 호출하는 구체적 트리거 세팅

그런데 여기서 많이 헷갈리는 게 Lambda 호출 트리거인데요, 제가 자주 쓰는 방법은 API Gateway와 연동하는 거였네요. API Gateway 자체도 무료 티어가 있어서 적은 요청량에서는 비용 걱정 크게 안 해도 됩니다.

API Gateway를 HTTP API 모드로 간단히 만들고 Lambda 함수랑 연결하려면 이렇게 했어요.

// API Gateway 생성 및 Lambda 연결 예시 (AWS CLI)
aws apigatewayv2 create-api \
  --name 'MyHttpApi' \
  --protocol-type HTTP

API_ID=$(aws apigatewayv2 get-apis --query "Items[?Name=='MyHttpApi'].ApiId" --output text)

aws apigatewayv2 create-integration \
  --api-id $API_ID \
  --integration-type AWS_PROXY \
  --integration-uri arn:aws:lambda:us-east-1:123456789012:function:my-function \
  --payload-format-version 2.0

aws apigatewayv2 create-route \
  --api-id $API_ID \
  --route-key 'GET /'

aws lambda add-permission \
  --function-name my-function \
  --statement-id apigateway-access \
  --action lambda:InvokeFunction \
  --principal apigateway.amazonaws.com \
  --source-arn arn:aws:execute-api:us-east-1:123456789012:$API_ID/*/*/

aws apigatewayv2 create-deployment \
  --api-id $API_ID

// 배포 URL 확인 후 테스트

이렇게 하면 API Gateway를 통해 Lambda 함수를 호출할 수 있어요. 저는 처음에 Lambda 권한 설정 부분에서 막혔었는데, add-permission 명령어를 꼭 해줘야 호출이 됩니다.

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 이미지

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 정보

이 부분에서 삽질했어요

가장 오래 걸렸던 건 IAM 권한 문제였어요. API Gateway가 Lambda를 호출하려면 권한이 필요한데, 에러 메시지에 "User is not authorized to invoke Lambda function" 같은 문구가 떴죠. 한참 검색해서 해결한 방법은 Lambda 함수에 API Gateway가 호출할 수 있도록 add-permission 명령을 직접 실행해 주는 거였습니다.

aws lambda add-permission \
  --function-name my-function \
  --statement-id apigateway-access \
  --action lambda:InvokeFunction \
  --principal apigateway.amazonaws.com \
  --source-arn arn:aws:execute-api:us-east-1:123456789012:$API_ID/*/*/

// 여기서 $API_ID는 실제 API Gateway ID로 바꿔야 합니다.

이걸 안 하면 호출 시 권한 부족 에러가 나와서 호출 자체가 안 됐어요. 이 부분에서 한참 헤맸던 거 기억나요.

이왕 쓰는 거 이렇게도 하면 좋아요

무료로 쓰면서 성능도 챙기려면 Lambda 함수 코드 최적화도 중요하더라고요. 예를 들어 Node.js라면 함수 실행 시간을 줄이기 위해 비동기 호출을 최대한 활용하고, 불필요한 라이브러리 적재를 줄이는 식이죠.

그리고 매달 AWS 비용 청구서 꼭 확인하는 거 잊지 마세요. 제가 처음엔 무료인 줄 알고 신나서 막 호출했는데, 다른 서비스 관련 비용이 같이 붙을 수 있거든요.

자주 물어보시는 질문들

Q. 무료 티어가 지나면 바로 요금이 부과되나요?

A. 네, 매달 100만 건 호출과 40만 GB-초 초과분에는 요금이 발생합니다. 그래서 사용량 모니터링이 중요해요.

Q. Lambda 메모리 설정을 더 낮추면 무조건 비용이 줄까요?

A. 메모리를 너무 낮추면 실행 속도가 느려져서 실행 시간이 길어질 수 있어요. 그러면 GB-초 계산이 오히려 더 커질 수 있으니 적절한 균형이 필요합니다.

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 이미지

AWS Lambda 비용 없이 사용하는 방법 실전 예시 관련 정보

한 마디로 AWS Lambda는 무료 티어 범위 내에서 제대로 설정하고, 호출 방법만 잘 맞추면 비용 걱정 없이 쓸 수 있다는 걸 제가 직접 세팅하며 확실히 느꼈어요. 혹시 비슷한 서버리스 서비스 고민 중이라면 이 방법 한번 써보시길 추천합니다.

Comments