ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2019.06.10] Serverless framework를 이용하여 lambda 배포하는 법
    개발 블로깅/Server&DataBase 개념 2019. 6. 11. 01:41

    AWS에서 제공하는 lambda를 serverless framework를 이용하여 배포하는 법을 알아보자.

     

    serverless란 lambda를 AWS에 배포하는 작업을 더욱 쉽게 작업할 수 있도록 도와주는 프레임워크이다.

     

    #서버리스 모듈 설치

    $ npm i -g serverless

     

    lambda를 이용하기 위해서는 AWS에서 IAM 계정을 연동해줘야 한다.

    AWS 사이트에서 IAM계정을 생성한다.

    # IAM 계정 생성하는 법

    '서비스 찾기'에서 IAM를 검색하면 바로 나온다.

     

    'IAM 리소스' 중 '사용자'를 선택한다.

    '사용자 추가'를 선택한다.

    IAM 계정에 등록할 사용자 이름을 자유롭게 입력한다.

    하위의 액세스 유형을 체크하고 '다음:권한' 버튼을 클릭한다.

    상단의 세 개의 탭 중 마지막 탭인 '기존 정책 직접 연결'을 선택하면, 여러 가지 정책을 선택할 수 있는 리스트가 나온다.

    해당 계정이 사용할 수 있는 정책 권한을 부여하는 부분인데, 이 설정은 언제든지 변경할 수 있다. 여기서는 제일 상단에 있는 모든 정책 설정으로 하고 '다음:태그'버튼을 클릭한다.

     

    IAM계정에 부여할 수 있는 키, 값을 설정한다. 해당 값으로 AWS 기능에 접근할 수 있다.

    아무것도 입력하지 않고 '다음:검토' 버튼을 누르면, 자동으로 키:값이 생성된다.

    이 값들은 유출되면 엄청나게 큰일이 날 수 있으므로 무조건 타인이 알 수 없도록 조심하도록 하자. (인생이 바뀔 수도 있다.) 

     

     

    '사용자 만들기' 버튼을 클릭하여 최종적으로 IAM 계정을 생성한다.

     

    그러면 해당 계정의 엑세스 키 ID와 비밀 액세스 키를 확인할 수 있다.

    (해당 값들은 절대 유출되면 안 된다!)

     

    #IAM 키를 serverless 설정에 추가하기

    serverless를 통해 AWS에 연결하기 위해서 터미널에 아래와 같이 입력한다.

    $ serverless config credentials --provider aws --key xxxxxxxxxxxxxx --secret xxxxxxxxxxxxxx

    --key 다음으로 액세스 키 ID 값들을 입력한다.

    --secret 다음으로 액세스 비밀번호 값을 입력한다.

     

    # serverless framework 프로젝트 생성

    $ serverless create -t aws-nodejs -p 프로젝트 명

    위 와 같이 입력하여 serverless 프로젝트와 aws전용 노드를 설치한다.

    프로젝트를 생성 후 해당 디렉터리로 들어가 보면, 위 터미널과 같이, handler.js serverless.yml 파일 두 개가 들어있다.

    • handler.js : 실제 lambda함수가 될 js파일
    • serverless.yml : AWS로 올라갈 lambda(handler.js에 대한) 설정을 할 수 있는 파일

     

    그럼 이제 vsCode로 서버리스 프레임워크를 열어보자

    handler.js 함수가 와 사진과 같이 세팅이 되어있다.

    hello라는 함수가 있고 event라는 매개변수가 있다. 

    hello함수가 서버에서 작동하는 하나하나의 함수, 즉 라우터 기능을 하는 녀석들이다. 

    event는 express 라우터로 따지면, request 변수에 속한다. 우리는 event라는 값을 통해, 외부에서 요청한 값을 받아올 수 있다.

     

    해당 hello라는 함수를 사용하려면, AWS에 배포 작업을 해야 한다. 그러나 이 상태로는 hello라는 함수가 연결된 event가 없어 사용할 수 없다. 이것을 해결하기 위해 serverless.yml 파일로 가보자.

    serverless.yml 파일을 보면, 중간쯤에 hello 함수와 관련된 설정 파일과, 아래에 주석으로 막아놓은 설정들이 있다.

    hello 함수를 사용하려면, 아래의 event부분의 주석을 풀어주어 해당 이벤트를 연동시켜줘야 한다.

    코드 들여 쓰기를 주의하자. 또한 event는 hendler 바로 아래에 위치해야 한다.

    그럼 이제 hello 함수를 배포해보자.

    $ serverless deploy -v

    그러면 여러 가지 로그가 올라온다. 시간이 좀 걸린다...

     

    배포가 다 되었다! 마지막쯤 로그를 보면, endpoints가 있다.

    이 엔드 포인트를 주소 창에 넣어, 실행이 잘 되는지 확인해보자.

     

    실행이 잘 되었다는 메시지가 담긴 object 값을 확인할 수 있다!

     

     

    반응형

    댓글

Designed by Tistory.