AWS lambda, api gateway

Sangyeong Je·2024년 4월 16일
0

서버설정

목록 보기
7/9

AWS Lambda 란 무엇인가요? 🤔

AWS Lambda는 서버를 신경 쓸 필요 없이 코드를 실행할 수 있는 서비스입니다. "서버리스"라고 불리는 이유가 바로 이것이죠! 서버 관리, 운영 체제의 유지 보수 같은 걱정은 AWS가 알아서 해주니, 여러분은 코드 작성에만 집중할 수 있어요.

주요 기능들 🔍

1. 이벤트 기반 🔄:

Lambda는 다양한 이벤트에 반응하여 자동으로 코드를 실행합니다. 예를 들어, 파일이 S3 버킷에 업로드되거나 DynamoDB 테이블이 업데이트될 때 자동으로 작동해요.

2. 확장성 📚:

사용자의 요구사항에 맞춰 자동으로 확장되기 때문에, 수천 개의 요청이 들어와도 Lambda는 자동으로 처리해줍니다. 트래픽에 대한 걱정 끝!

3. 가격 💸:

실행 시간과 호출 횟수에 따라 요금이 부과됩니다. 사용한 만큼만 지불하니, 비용 효율적이죠.

4. 언어 다양성 🎨:

Node.js, Python, Java, Go, PowerShell, Ruby 등 여러 프로그래밍 언어를 지원하므로, 여러분이 선호하는 언어로 코드를 작성할 수 있어요.



API Gateway 란 무엇인가요? 🤔

API Gateway는 마이크로서비스 아키텍처의 중심에 자리 잡고 있는 관리 도구입니다. 간단히 말해서, API Gateway는 클라이언트의 요청을 받아 적절한 마이크로서비스로 라우팅하는 역할을 합니다. 클라이언트는 마치 마법처럼 하나의 단일 점으로 모든 API 요청을 처리할 수 있죠!

주요 기능들 🔍

1. 요청 라우팅 🛣️:

클라이언트로부터 받은 요청을 적절한 백엔드 서비스로 전달합니다. 여러 서비스가 협업하여 결과를 돌려주죠.

2. 인증 및 권한 부여 🔐:

요청이 유효한 사용자로부터 왔는지 확인하고, 필요한 권한을 가진 사용자인지 검증합니다. 안전한 API 사용을 위한 필수 단계입니다!

3. 속도 제한 🏎️:

특정 사용자나 서비스의 요청 비율을 제한하여 API의 남용을 방지합니다. 이는 서버 오버로드를 방지하는 데 큰 도움이 됩니다.

4. 모니터링 및 분석 📊:

API 사용 패턴, 성능 지표 등을 모니터링하여 서비스 개선에 필요한 데이터를 제공합니다.

5. 요청 및 응답 변환 🔄:

클라이언트와 서버 사이의 데이터 포맷을 변환합니다. 예를 들어, XML을 JSON으로 변환하는 일이 여기에 해당하죠.

Lambda와 API Gateway 연결하기 🤝

Lambda 함수를 API Gateway와 연결하는 것은 복잡해 보일 수 있지만, 실제로는 몇 단계만 거치면 됩니다. 여러분의 서비스가 더 빠르고 효율적으로 동작하게 만들어 줄 거예요!

Step 1: Lambda 함수 준비하기


먼저, Lambda 함수를 하나 만들어야 해요. AWS Lambda 콘솔로 가서 'Create function'을 클릭하세요.


함수 이름을 정하고 실행할 프로그래밍 언어를 고르죠. 지원하는 언어로는 Node.js, Python, Go, Java 등이 있으며, 각 언어의 최신 LTS(Long Term Support) 버전을 사용할 수 있습니다. 이름과 언어를 선택하고 'Create function'을 누르면 바로 람다 함수가 생성됩니다.

Step 2: API Gateway 생성하기

1. HTTP API 🌐:

이 타입은 낮은 지연 시간과 비용 효율성을 자랑하는 REST API를 만드는 데 최적화되어 있어요. OpenID Connect(OIDC)와 OAuth 2.0과 같은 인증 옵션을 지원하며, CORS도 쉽게 설정할 수 있습니다. Lambda나 다른 HTTP 백엔드와 연결하기 좋아요.

2. WebSocket API 💬:

실시간 통신이 필요한 앱에 적합해요. 채팅 앱이나 대시보드 등의 서비스에 사용되죠. Lambda와 AWS의 다른 서비스들과 손쉽게 연결돼서 실시간 데이터를 주고받을 수 있습니다.

3. REST API 🛠️:

기능면에서 더 풍부한 관리와 제어가 가능한 전통적인 REST API를 만들 때 사용해요. 복잡한 요청과 응답을 처리하거나 세밀한 API 관리가 필요할 때 유용합니다.

4. REST API Private 🔒:

내부적으로만 사용할 비공개 API가 필요할 때 선택하는 옵션이에요. VPC 내에서만 접근 가능하므로, 보안을 강화할 수 있습니다.

이 4가지 API중 간단한 연결을 위해 HTTP API를 선택할게요.

API의 경로를 설정합니다.

'Add integration' 을 클릭해서 API Gateway가 통신할 백엔드 서비스를 추가합니다. Lambda를 선택하면 API Gateway가 Lambda 함수를 호출하고, 함수의 결과를 클라이언트에게 반환합니다. 그리고 API name을 입력하고 넘어갑시다.

1. Method:

API 요청 방식을 선택합니다. ‘ANY’를 선택하면 모든 HTTP 메소드(GET, POST 등)에 대해 하나의 경로를 사용할 수 있습니다.

2. Resource path:

요청을 받을 API의 경로를 지정합니다. 예를 들어 ‘/getTestFunc’라고 설정하면, 사용자가 이 경로로 API에 요청할 때 해당하는 통합으로 요청이 전달됩니다.

3. Integration target:

이 경로로 들어오는 요청을 처리할 통합 대상을 선택합니다. 여기서는 ‘getTestFunc’ Lambda 함수가 연결되어 있네요.

'Add route' 으로 새로운 경로를 추가할 수 있고, 설정이 끝나면 다음 단계로 진행합니다.

스테이지를 설정하는 부분입니다. 스테이지는 API의 다양한 배포 환경을 의미합니다.

1. Stage name:

여기에는 스테이지의 이름이 나타나요. 기본적으로 생성된 HTTP API에는 $default라는 이름의 기본 스테이지가 있습니다.

2. Auto-deploy:

이 옵션을 켜면, API에 변경 사항이 생길 때마다 자동으로 해당 스테이지에 변경 사항이 배포됩니다.

Add stage 버튼을 통해 필요에 따라 'development', 'testing', 'production'과 같은 추가 스테이지를 만들 수 있습니다. 설정이 끝나면 다음 단계에서 api gateway를 생성합니다.

0개의 댓글