ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1월 9일 TIL - elastic beanstalk로 node.js 앱 배포하기.
    TIL(미사용) 2020. 1. 10. 00:27

    개발

    유저와 회사 직원들이 사용하는 홈페이지 외에 다른 홈페이지가 필요하게 되었다.

    AWS 관해서는 잘 모르는 것이 많기에 그저 다른 홈페이지와 동일하게 구현하는 부분이 많을 것 같은데, 그래도 알고 구현해야 하니까... 공부하자... 틀린 거 있을 수 있음...

     

    On-premise, Iaas, Paas, SaaS

    On-premise

    클라우드 서비스가 나오기 전까지 가장 일반적인 방식이었던 방법이다. 모든 것을 자체적으로 설치, 관리하기 때문에 서버 컴퓨터 같은 것이 자체적인 전산실에 있는 그런 방식이다. 

    구축하는데 시간이 오래 걸리며, 사용량에 관계없이 항상 일정 금액이 나가게 되며, 확장하는 것이 쉽지 않다.

     

    클라우드 서비스

    클라우드 서비스는 클라우드 서비스 공급자가 어느 영역까지 기능을 제공해주냐에 따라 분류가 나뉜다.

     

    Iaas(Infrastructure as a Service)

    (?)On-premise 방식에서 필요한 전산실을 클라우드 서비스가 제공해 주는 느낌

     

    Paas(Flatform as a Service)

    (?)앱과 데이터만 관리하면 된다. OS, 미들웨어 등은 클라우드 서비스가 제공해주며, 정해진 것만 사용할 수 있는 듯

     

    SaaS(Software as a Service)

    드랍박스같은 서비스

     

    Elastic Beanstalk

    Elastic Beanstalk란?

    위에서 PaaS 등을 알아본 이유는 Elastic Beanstalk가 PaaS이기 때문이다. 즉, 앱과 데이터만 관리하며 나머지는 AWS가 관리해주는 방식이다. 

     

    웹 페이지 배포하기

    1. elastic beanstalk 클릭

     

    2. 새 애플리케이션 생성

     

    3. 새 어플리케이션을 생성한다.

    태그는 코드 내에서 process.env.XXXX 같은 코드로 접근할 수 있는 상수를 의미한다.

     

    4. 환경을 생성한다.

     

    5. 환경 티어 선택

     

    6. 환경을 셋팅한다. 

     

    아래와 같이 사전 구성된 플랫폼을 선택할 수 있다. 필요한 플랫폼에 따라 선택할 수 있으며, 샘플 어플리케이션 코드를 선택하면 AWS가 제공하는 샘플 앱을 만들 수 있다.

     

     

    7. 앱 배포가 완성! 링크 클릭 시 배포된 페이지로 이동하게 된다.

     

    다른 버전의 웹 페이지 배포하기

    아래 링크에서 버전을 업데이트하기 위한 파일을 받을 수 있다. 

    https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/GettingStarted.DeployApp.html

     

    https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/GettingStarted.DeployApp.html

    3 단계: 새 버전의 애플리케이션 배포

    docs.aws.amazon.com

    다운로드 받은 파일을 업로드해서 배포를 클릭하면 끝!

     

    좀 더 이해하기 위한 예시

    여기까지 진행해도 '뭐야 이거 왜 되는거야?'같은 생각이 들었다. 그래서 다운받은 파일을 VSCode에서 살펴봤다.

     

    app.js 파일의 코드 내용을 살펴보면(정확하게는 모름) 서버를 실행하고, URL로 접속 시 html 파일을 반환하라는 의미이다.

    app.js

     

    index.html

    터미널에 아래의 명령어를 입력하면, node가 app.js를 실행하게 되는데

    명령어: node app.js

    이렇게 실행하면 localhost:3000을 통해, 배포한 웹 페이지와 동일한 페이지에 접속할 수 있다.

     

    더 발전 - '내가 만든 앱은 명령어 node app.js로 실행할 수 없는데?'

    Elastic Beanstalk에 node.js 플랫폼을 선택할 경우 Elastic Beanstalk는 자동으로 npm start 명령어를 실행하게 된다. 

    npm start는 packge.json에 있는 script 부분의 start에 있는 명령어를 실행하는데, packge.json 파일을 살펴보면 아래 처럼 되어있고,

     

    npm start 명령어를 실행하면 node app.js와 동일하게 localhost:3000에 접속할 수 있는 웹 페이지가 작동하게 된다.

     

    자신의 앱을 실행하기 위한 명령어를 package.json -> script -> start 부분에 추가하면 자동으로 elastic beanstalk가 실행해 주는 것이다...!

     

     

     

    https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/GettingStarted.DeployApp.html


    영어

    는 오늘 안 했음 ㅎ;


    오늘 간만에 너무 재밌게, 많이 배웠다. 내일은 next.js를 혼자 배포해보는 것까지 해볼까 싶다. 

Designed by Tistory.