[go] Go 언어를 사용하여 AWS Lambda 함수 개발하기

AWS Lambda는 서버리스 컴퓨팅 서비스로, 코드를 실행하기 위한 서버 프로비저닝이나 관리 없이도 실행할 수 있습니다. 이번 글에서는 Go 언어로 AWS Lambda 함수를 개발하는 방법에 대해 알아보겠습니다.

AWS Lambda란?

AWS Lambda는 이벤트에 응답하여 코드를 실행하는 서버리스 컴퓨팅 서비스입니다. 코드를 실행하기 위한 서버를 프로비저닝하거나 관리할 필요가 없으며, 코드가 실행될 때만 비용이 발생합니다.

Lambda는 다양한 이벤트 소스(예: Amazon S3, Amazon DynamoDB, Amazon API Gateway, 등)로부터 이벤트를 받아서 실행될 수 있습니다. 또한 Lambda 함수는 다양한 프로그래밍 언어로 작성할 수 있으며, Go 언어 역시 그 중 하나입니다.

Go 언어로 AWS Lambda 함수 개발하기

1. AWS Lambda CLI 설치

AWS CLI(Command Line Interface)를 설치한 후, 다음 명령어로 AWS Lambda CLI를 설치합니다:

$ npm install -g aws-cli

2. Go Lambda 함수 작성

다음은 Go 언어로 작성된 간단한 AWS Lambda 함수의 예시입니다.

package main

import (
	"context"
	"fmt"

	"github.com/aws/aws-lambda-go/lambda"
)

type MyEvent struct {
	Name string `json:"name"`
}

func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
	return fmt.Sprintf("Hello, %s!", name.Name), nil
}

func main() {
	lambda.Start(HandleRequest)
}

3. 빌드 및 배포

위의 Go 코드를 빌드한 후에는 AWS CLI를 사용하여 AWS Lambda에 배포할 수 있습니다. 다음 명령어로 빌드하고 배포합니다:

$ GOOS=linux GOARCH=amd64 go build -o main
$ zip deployment.zip main
$ aws lambda create-function --function-name my-function --zip-file fileb://deployment.zip --handler main --runtime go1.x --role arn:aws:iam::123456789012:role/lambda-role

create-function 명령어를 사용하여 Lambda 함수를 생성하고, Go 언어로 작성한 함수를 업로드합니다.

4. 실행

Lambda 함수가 성공적으로 배포되었다면, 트리거 이벤트를 발생시켜 함수를 실행해 볼 수 있습니다.

마무리

이상으로, Go 언어로 AWS Lambda 함수를 개발하고 배포하는 방법에 대해 알아봤습니다. Lambda 함수를 통해 서버리스 아키텍처의 이점을 살려서 코드를 실행할 수 있게 되었습니다. AWS Lambda의 다양한 이벤트 트리거와 Go 언어의 강력한 특성을 활용하여 효율적인 서버리스 애플리케이션을 구축할 수 있을 것입니다.

참고 문헌: