[AWS] 초보자를 위한 Lambda 배포 가이드: 콘솔 vs 테라폼 (macOS 기준)
AWS 람다(Lambda)는 서버를 관리할 필요 없이 코드만 올리면 실행되는 서버리스 서비스의 핵심입니다. 오늘은 AWS 콘솔에서 직접 만드는 방법과, 실무에서 필수인 테라폼(Terraform)을 이용한 자동화 방법을 정리합니다.
1. AWS 콘솔에서 수동으로 만들기 (빠른 테스트용)
가장 직관적인 방법으로, 람다의 개념을 익히기 좋습니다.
- 서비스 접속: AWS 콘솔에서 'Lambda' 검색 후 접속
- 함수 생성: [함수 생성] 버튼 클릭 -> 새로 작성 선택
- 기본 정보:
- 함수 이름: my-test-lambda
- 런타임: Python 3.12
- 기본 실행 역할: 기본 Lambda 권한을 가진 새 역할 생성 선택
- 테스트: 생성된 함수 페이지의 Test 탭에서 이벤트를 생성하고 실행 결과를 확인합니다.
2. 테라폼(Terraform)으로 자동화하기 (실무용)
맥(macOS) 환경에서 테라폼을 셋팅하고 코드로 람다를 배포하는 방법입니다.
Step 1: 환경 셋팅 (macOS)
터미널을 열고 아래 명령어를 입력하여 필요한 도구를 설치합니다.
# 1. 테라폼 설치
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
# 2. AWS CLI 설치 및 인증 설정
brew install awscli
aws configure # 발급받은 Access Key와 Secret 입력
Step 2: 소스 코드 준비 (hello.py)
람다로 실행할 파이썬 코드를 작성하고 압축합니다.
def handler(event, context):
return {'statusCode': 200, 'body': 'Hello from Terraform!'}
압축 명령: zip function.zip hello.py
Step 3: 테라폼 코드 작성 (main.tf)
인프라를 정의하는 파일을 만듭니다.
provider "aws" {
region = "ap-northeast-2"
}
# 1. IAM 역할 생성 (람다가 실행될 권한)
resource "aws_iam_role" "iam_for_lambda" {
name = "my_lambda_role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Action = "sts:AssumeRole"
Effect = "Allow"
Principal = { Service = "lambda.amazonaws.com" }
}]
})
}
# 2. 람다 함수 정의
resource "aws_lambda_function" "test_lambda" {
filename = "function.zip"
function_name = "my-terraform-lambda"
role = aws_iam_role.iam_for_lambda.arn
handler = "hello.handler"
runtime = "python3.12"
}
Step 4: 배포 실행
terraform init # 초기화
terraform plan # 변경 사항 확인 (매우 중요!)
terraform apply # 실제 배포 (yes 입력)

3. 실무자를 위한 핵심 팁
권한 관리는 '최소 권한'으로!
실무에서 테라폼에 AdministratorAccess를 주는 것은 위험합니다. 프로젝트에서 필요한 서비스(Lambda, S3 등)에 대한 권한만 할당된 전용 IAM Role을 사용하는 습관을 들이세요.
왜 테라폼을 쓰나요?
- 복구 가능: 실수로 인프라를 지워도 코드만 있으면 즉시 복구됩니다.
- 버전 관리: Git을 통해 인프라의 변경 이력을 추적할 수 있습니다.
- 환경 복제: 개발용(Dev)과 운영용(Prod) 서버를 똑같이 만드는 데 1초도 걸리지 않습니다.
마무리하며
이제 여러분은 클릭 한 번 없이 코드로 인프라를 생성할 수 있게 되었습니다. 다음 글에선 람다에 API Gateway를 연결하여 실제 URL 주소를 만들어보는 것을 해보겠습니다.
반응형
'Infra > AWS' 카테고리의 다른 글
| [AWS] AWS Batch 설정 가이드 (3) | 2024.12.01 |
|---|
댓글