✅서버리스(Serverless) 컴퓨팅이란?
- 애플리케이션을 개발하고 실행하기 위해 서버 인프라를 직접 관리할 필요가 없는 컴퓨팅 모델
- 개발자가 서버 인스턴스나 클러스터를 프로비저닝하거나 관리하지 않고도 '함수(Function) 단위로' 코드를 실행할 수 있다.
- 함수는 일반적으로 짧은 지속 시간 동안 실행되며, 사용된 만큼만 과금된다.
- 서버리스 컴퓨팅은 클라우드 제공 업체(예: AWS Lambda, Azure Functions, Google Cloud Functions 등)에서 제공되며, 다양한 프로그래밍 언어와 프레임워크를 지원한다.
✅서버리스 컴퓨팅의 장점
- 관리 부담 감소: 서버 인프라를 관리할 필요가 없기 때문에 개발자는 애플리케이션에 집중할 수 있다.
- 확장성: 함수는 필요에 따라 자동으로 확장되므로 트래픽이 급증해도 애플리케이션의 성능에 영향을 미치지 않는다.
- 사용량에 따른 과금: 함수가 실행될 때만 과금되므로 비용을 절감할 수 있다.
- 개발 생산성 향상: 함수 단위로 코드를 작성하고 테스트하기 쉬우며, 빠른 반응성을 제공한다.
✅실습
📌본 포스팅에서는 AWS 서버리스를 사용하여 웹 어플리케이션 서비스를 구축해 볼 것이다. 우리가 만들고자 하는 최종 구조와 구성 요소는 다음과 같다. 실습에서 사용되는 코드는 제공 받은 관계로 공개하지 않았다.

1. 웹페이지를 보여주는 함수 생성 : Simple Webpage lambda 생성하기
- Lambda 서비스 이동 후 함수 생성
- 새로 작성 > 함수 이름 : 이니셜-webpage > 런타임 : Python 3.9
- 기본 실행 역할 변경 > 기본 Lambda 권한을 가진 새 역할 생성
- 고급 설정 > 함수 URL 활성화 : NONE


2. DynamoDB에 접근하는 API 함수 생성 : API Service lambda 생성하기
- Lambda 서비스 이동 후 함수 생성
- 새로 작성 > 함수 이름 : 이니셜-api > 런타임 : Python 3.9
- 기본 실행 역할 변경 > AWS 정책 템플릿에서 새 역할 생성
- 역할 이름 : 이니셜-lambda-api-role
- 정책 템플릿 : 단순 마이크로서비스 권한 DynamoDB 선택

- 코드 소스 입력 후 Deploy
: 클라이언트 측에서 "Who are you?" 버튼을 클릭할 때 외부 API를 호출하고, 그 응답을 화면에 표시하는 기능을 포함한 코드
3. DynamoDB 생성 : API를 통해 값을 넣을 테이블 생성하기
- DynamoDB 서비스 이동 후 테이블 생성
- 테이블 생성 > 테이블 이름 : 이니셜-hello-member
- 파티션 키 : name / 문자열
- 이니셜-api 함수 소스 수정 후 Deploy

4. API Gateway 생성 : 이니셜 - API 함수를 호출할 REST API 생성하기
- API 생성 > REST API 구축 > API 이름 : 이니셜-api-gw
- 작업 > 메서드 생성 > GET
- Lambda 프록시 통합 사용 체크
- Lambda 리전 : 본인 리전 선택
- Lambda 함수 : 이니셜-api 입력 후 저장
Lambda 프록시 통합의 역할
: API Gateway가 클라이언트에서 들어오는 요청을 이벤트 객체로 Lambda 함수에 직접 전달한다. API 함수와 연결하는 것.

- CORS 설정 및 배포
CORS 설정의 역할 : 웹페이지 함수와 연결하는 것
- 작업 > CORS 활성화

- 작업 > API 배포 > 새 스테이지 > 이름 : test > 배포

- 상단 URL 정보 복사


5. 함수 수정 및 DB 테이블 확인 : Simple Webpage lambda URL 수정하기
- Lambda 서비스 이동 후 Webpage 함수 수정
- 코드 소스 하단에 “URL을 입력하세요” >>
- “본인 API Gateway URL” 입력 후 Deploy

- 함수 상단 함수 URL 복사 후 브라우저 확인
- 함수 URL 복사 후 브라우저에 실행
이제 버튼을 누르면 값이 출력된다.

- DB 데이터 확인
- DynamoDB 서비스 이동 -> 테이블
- 본인 테이블 -> 표 항목 탐색
- 실행

📌최종적으로 완성한 구조는 다음과 같다. Webpage 함수, API 함수, API Gateway, DynamoDB로 쉽고 빠르게 텍스트와 버튼이 출력되는 웹페이지를 구축해 보았다.

📖'천재교육'의 '프로젝트 기반 빅데이터 서비스 개발자 양성 과정' 내용을 바탕으로 작성하였습니다.