티스토리 뷰

AWS

eb cli 를 통해 nodejs, docker 플랫폼 배포하기

나를찾는아이 2022. 2. 1. 13:16
728x90
반응형

eb(elastic beanstalk)를 cli를 통해 사용하려면 eb cli를 설치해주세요

 

설치를 완료했으면 손쉽게 콘솔상에서 eb 어플리케이션을 생성하여 배포할수 있습니다

(디테일한 세부설정은 아무래도 cli를 이용하는 것보다 GUI 화면상에서 설정하는게 더 쉬울수도 있습니다)

 


$ eb init

 

현재 소스코드의 루트 디렉토리에서 해당 명령어를 입력하면 eb세팅을 위한 질문이 진행됩니다

이 질문들은 해당프로젝트 내에 .elasticbeanstalk/config.yml 파일을 생성하기 위한 질문일뿐

실제 계정에 eb를 생성하지 않습니다

 

- region 선택
- 어플리케이션 이름 생성(기본적으로는 폴더이름)
- 도커파일이 있는지, 아니면 다른 확장자의 파일이 있는지 검색하여 플랫폼을 지정(java, nodejs, php 등)
- 도커인경우 도커가 실행될 플랫폼 선택

- 도커가 아닌 경우 해당 플랫폼의 버전 선택

- codecommit을 사용할지 여부(codecommit에 소스코드가 저장됩니다)
- 외부에서 인스턴스에 ssh접속 여부 선택(보안그룹설정에 22번 포트가 개방됩니다)
- 여러개의 키페어가 있는 경우 어떤 키페어를 사용할지 선택

 

 

 

$ eb create

 

마찬가지로 몇가지 질문을 합니다

어플리케이션 이름과 cname prefix를 지정하면 기본적인 세팅으로 진행이 시작됩니다

세부 옵션을 조정하고 싶다면 eb create의 옵션 파라메터를 참고해주세요

 

이 단계에서

 

* eb어플리케이션 생성
* 생성된 어플리케이션 내에 환경 생성

* git archive 하여 s3에 소스코드 업로드(app-d204-220202_091946.zip 커밋id와 날짜를 포함한 파일명으로 s3에 업로드 됩니다)
* 로드밸런서 생성(보안그룹 생성, 타겟그룹, 리스너 생성 등)

등등의 실제적인 작업이 진행됩니다

세부 입력을 하지 않는 값들은 기본 세팅값으로 진행이 됩니다

 

(classic load balancer를 이용하여

NetworkOut auto scaling 조건으로

t2.micro 인스턴스로 최소 1, 최대 4 생성되며

타겟그룹을 80포트로 바로 연결하는 리스너가 탑재됩니다

docker플랫폼을 선택한 경우 EXPOSE된 포트를 80번포트로 연결하는것 같네요)

 

 

"Successfully launched environment" 메시지와 함께 모든 셋업이 완료되었습니다

 

이렇게 생성된 eb 어플리케이션은 당연히 aws 웹사이트 접속해서 확인이 가능합니다

 

 

생성된 어플리케이션의 URL을 입력했는데 웹사이트가 정상적으로 보여지지 않는 경우도 발생할 수 있습니다

아니면 아마도 어플리케이션이 성공적으로 생성은 되었으나 상태가 "정상"이 아닌 경우일거예요

기본 생성된 로드밸런서는 80번포트를 리스닝하는 리스너가 탑재되어있습니다

그래서 만약 여러분이 만든 어플리케이션이 80번 포트가 아닌 다른 포트를 리스닝하고 있다면

 

 

여러분의 어플리케이션에 해당 하는 포트에 맞게 타겟그룹의 포트를 변경해야 합니다

 

한가지더, 로드밸런서가 ec2에 접근할수 있도록 보안그룹의 인바운드 포트도 열어주어야 합니다

 

 

이런식으로 말이죠

 

위 두가지를 꼭 참고하세요!

 

 

eb create 명령어에는 이러한 값들을 조정할수 있는 옵션이 없고

 

대신에 루트 디렉토리에 .ebextensions 폴더와 환경설정파일을 생성하여 내가 원하는 세팅값으로 eb가 구성되도록 할 수 있습니다

 

 

 

$ eb terminate --all

 

위의 명령어로 방금까지 생성한 모든 eb 설정이 계정내에서 삭제됩니다

그리고 내 프로젝트폴더의 .elasticbeanstalk/config.yml 파일까지 모두 삭제됩니다

 

 

 

 

이렇게 elastic beanstalk의 초기 세팅이 끝났습니다

 

새로운 코드를 업데이트하여 배포할때는 여러가지 방법이 있습니다

 

그중에서 가장 쉬운방법은 현재 어플리케이션의 repository를 그대로 업로드 하는 방법인데요

 

 

$ eb deploy

 

git archive 명령을 사용하여 최신 .zip 명령의 내용에서 git commit 파일을 생성하여 배포합니다

 

생성된 zip 파일은 지정된 s3 버킷에 app-d204-220202_091946.zip 커밋id와 날짜를 포함한 이러한 이름으로 업로드가 되어 배포할때 사용됩니다

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함