콘솔에서 express로 만든 node 서버를 배포하는 것은 다음 게시물을 참고하자
(http://pyrasis.com/book/TheArtOfAmazonWebServices/Chapter23/02)
eb-cli를 통해서 웹콘솔에 직접 접속하지 않아도 빈스톡에 새로운 어플리케이션을 생성하고 로컬에서 작업중인 프로그램을 명령어 한줄로 아마존에 배포할수 있다! 무엇보다 만든 파일을 수작업으로zip으로 묶고 업로드하는 번거로운 방식을 하지 않아도 된다는 큰 장점이 있다. EB CLI를 통해 작업하면 git에 커밋된 내용을 자동으로 zip으로 압축하여 올려준다.
EB CLI 설치 (v3.x)
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3-install.html
공식 문서에 따르면 EB CLI를 설치하는 가장 쉽고 권장되는 방법은 GitHub에 제공되는 EB CLI 설치 스크립트를 사용하는 것입니다.
(2021.3월 기준으론 약간 의문이 듭니다만, 네...)
스크립트는 github에있습니다. git clone한 후에 aws-elastic-beanstalk-cli-setup 폴더가 생깁니다. 해당 폴더의 scripts/bundled_installer를 실행해주면 됩니다. 문서에서 알려준대로 차근차근 해봅시다.
https://github.com/aws/aws-elastic-beanstalk-cli-setup
git clone https://github.com/aws/aws-elastic-beanstalk-cli-setup.git
On Bash and Zsh on macOS and Linux:
./aws-elastic-beanstalk-cli-setup/scripts/bundled_installer
In PowerShell or in a Command Prompt window:
.\aws-elastic-beanstalk-cli-setup\scripts\bundled_installer
인스톨러가 진행되는 모습입니다. Python이 필요합니다. 없다면 알아서 인스톨러가 파이썬까지 설치하도록 도와줍니다.
저는 3.7.7 버전의 python을 사용하고 있는데 여기는 3.7.3 사용을 강제하더군요....? 이 부분은 나중에 다른 버전의 python을 이용할 수는 없는 지 알아봐야할 것 같습니다.
또, 설치중 가상 환경을 제대로 인스톨러가 구성했더라도 ModuleNotFoundError: No module named 'virtualenv' Exiting due to failure 오류가 난다면 다음 글을 참고해 해결합시다.
pip install virtualenv
python .\aws-elastic-beanstalk-cli-setup\scripts\ebcli_installer.py
설치가 완료되면 다음과 같은 출력 결과를 보실 수 있습니다.
환경 변수에 위 경로는 자동으로 들어가있습니다. (들어가 있지 않다면 추가해줍시다)
EB CLI 구성
eb init
EB 배포를 하기 위해 가장 먼저 해야 할 일은 git commit입니다. EB는 가장 최근에 git commit된 코드를 기준으로 압축파일을 생성해 배포합니다.
EB 배포를 하고 싶은 프로젝트 경로로 이동하여 git을 커밋 한 다음 eb init으로 어플리케이션을 생성합니다.
(참고로 eb cli 설치 이후 곧바로 eb 명령어를 사용할 수 없습니다. cmd를 재시작합시다)
eb init
설정 중 username/password를 요구하기도 하는데 입력해주시면 됩니다.
init의 결과로 다음과 같은 설정 파일이 생겼습니다.
eb create
eb create로 애플리케이션을 배포할 환경을 생성해줍니다.
eb create
진행되는 내용을 살펴보시면 알겠지만 웹 콘솔에서 보았던 문구가 cmd에서도 생성되는 것을 보실 수 있습니다.
eb deploy
배포합니다.
참고한 글)
정리하다보니 전부 김정환님 블로그였다
http://jeonghwan-kim.github.io/eb-cli-%ED%88%B4-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC/
http://jeonghwan-kim.github.io/elastic-beanstalk/
'AWS > ☁️ AWS' 카테고리의 다른 글
AWS EC2 .pem key 없이 유저-암호 방식 접근 허용 (2) | 2020.11.09 |
---|---|
React 앱을 S3로 배포 + CloudFront + Route 53 + ACM SSL 인증 (0) | 2020.09.08 |
Elastic Beanstalk(EB)를 통한 배포 인프라 자동화 (0) | 2020.08.14 |
S3 객체의 메타데이터 설정 (0) | 2020.07.12 |
S3 버켓 정책 및 사용자 정책 (0) | 2020.07.11 |