함수 두 개로 코드를 실행해서 웹페이지를 만들 수 있다?ㅣ서버리스로 가능하다!

신 영·2024년 3월 26일
1

AWS

목록 보기
1/4

✅서버리스(Serverless) 컴퓨팅이란?

  • 애플리케이션을 개발하고 실행하기 위해 서버 인프라를 직접 관리할 필요가 없는 컴퓨팅 모델
  • 개발자가 서버 인스턴스나 클러스터를 프로비저닝하거나 관리하지 않고도 '함수(Function) 단위로' 코드를 실행할 수 있다.
  • 함수는 일반적으로 짧은 지속 시간 동안 실행되며, 사용된 만큼만 과금된다.
  • 서버리스 컴퓨팅은 클라우드 제공 업체(예: AWS Lambda, Azure Functions, Google Cloud Functions 등)에서 제공되며, 다양한 프로그래밍 언어와 프레임워크를 지원한다.

✅서버리스 컴퓨팅의 장점

  • 관리 부담 감소: 서버 인프라를 관리할 필요가 없기 때문에 개발자는 애플리케이션에 집중할 수 있다.
  • 확장성: 함수는 필요에 따라 자동으로 확장되므로 트래픽이 급증해도 애플리케이션의 성능에 영향을 미치지 않는다.
  • 사용량에 따른 과금: 함수가 실행될 때만 과금되므로 비용을 절감할 수 있다.
  • 개발 생산성 향상: 함수 단위로 코드를 작성하고 테스트하기 쉬우며, 빠른 반응성을 제공한다.

✅실습

📌본 포스팅에서는 AWS 서버리스를 사용하여 웹 어플리케이션 서비스를 구축해 볼 것이다. 우리가 만들고자 하는 최종 구조와 구성 요소는 다음과 같다. 실습에서 사용되는 코드는 제공 받은 관계로 공개하지 않았다.

1. 웹페이지를 보여주는 함수 생성 : Simple Webpage lambda 생성하기

  • Lambda 서비스 이동 후 함수 생성
  • 새로 작성 > 함수 이름 : 이니셜-webpage > 런타임 : Python 3.9
  • 기본 실행 역할 변경 > 기본 Lambda 권한을 가진 새 역할 생성
  • 고급 설정 > 함수 URL 활성화 : NONE

  • 코드 소스 입력 후 Deploy
    : DynamoDB 테이블에 무작위로 선택된 이름과 상태를 저장한 후 해당 정보를 반환하는 코드

  • 함수 URL 복사 후 브라우저에 실행
    아직 who are you 버튼을 클릭해도 아무런 변화가 없다.
    다음 과정을 통해 버튼을 클릭하면 값이 출력되도록 해보자.

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로 쉽고 빠르게 텍스트와 버튼이 출력되는 웹페이지를 구축해 보았다.


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

0개의 댓글