AWS Lambda는 많은 용도로 사용되며, 많은 기능이 있습니다. 그 중 Lambda Function URL 기능을 이용하면 Lambda 함수에 대한 전용 HTTPS 엔드포인트를 제공받을 수 있습니다. Function URL은 단일 기능 마이크로서비스를 구현해야 하는 양식 유효성 검사기, 모바일 결제 처리, 광고 배치 등에 적합합니다.
Function URL을 CloudFront와 연결하면 가장 짧은 지연 시간을 제공하는 엣지 로케이션을 통해 서비스를 최적의 성능으로 제공할 수 있습니다. 오늘은 Lambda Function URL과 CloudFront를 연결해봅시다.
1. Lambda
Create a function을 누릅니다.
Function 이름을 입력하고, Runtime을 Python 3.11로 설정합니다. 이제 Create function을 누릅니다.
기본 함수를 사용하여 response로 제공하겠습니다.
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Configuration > Function URL 메뉴에 들어갑니다.
Create function URL을 누릅니다.
IAM 인증을 수행하지 않도록 Auth type을 NONE으로 설정하고, Save를 누릅니다.
Function URL에 표기된 URL에 접속하면 "Hello from Lambda!"가 출력됩니다.
2. CloudFront
Create a CloudFront distribution을 누릅니다.
Choose origin domain을 했을 때 Lambda가 나오지는 않지만, Function URL을 넣으면 자동으로 인식하게 됩니다.
Origin의 이름을 설정합니다.
HTTPS만을 사용하기 위해 Viewer protocol policy를 Redirect HTTP to HTTPS로 설정합니다.
Lambda Function URL은 Cache policy로 CachingDisabled(캐싱하지 않음)를 추천하고 있습니다. 캐싱 여부에 따라 CachingOptimized로 설정할 수도 있습니다. 이번에는 추천값을 사용하겠습니다.
추가 비용을 방지하기 위해 WAF를 사용하지 않겠습니다.
나머지 설정은 모두 기본값으로 하고, Create distribution을 누릅니다.
조금만 기다리면 Deploy가 완료됩니다.
Distribution domain name으로 접속하면 Function URL처럼 "Hello from Lambda!"를 출력하는 것을 볼 수 있습니다.
CloudFront에 S3나 ALB 등을 연결하여 서비스를 구성할 수 있겠습니다.
오늘의 글은 여기까지입니다. 감사합니다!
'AWS' 카테고리의 다른 글
[AWS] RDS IAM database authentication (0) | 2023.10.11 |
---|---|
[AWS] Kinesis Agent로 Kinesis Data Stream에 로그 전송 (2) | 2023.10.10 |
[AWS] Terraform VPC Module 사용 (0) | 2023.10.06 |
[AWS] Global Aurora (Cross Region Read Replica, Global Database) (0) | 2023.10.02 |
[AWS] Amazon Aurora - RDS DB Engine (0) | 2023.10.01 |