-
[AWS] Elasticbeastalk (elb) 커맨드라인으로 배포하기카테고리 없음 2018. 10. 20. 18:57
사전조건
- PC 에 파이썬이 설치되어있어야 한다. https://www.python.org/
- 키젠을 사용할 수 있어야 합니다. ( 보통 putty 를 설치하면 키젠이 같이 설치되는데 이부분은 어떤시점에서 설치되는지 잘 모르겠습니다. )
터미널을 엽니다.
$ pip install awscli
파이썬 3.x 으로 설치됫을 경우 위 커맨드라인이 작동 하지 않을 수 있습니다. 그럴경우 pip3 로 실행하면 됩니다.
$ pip3 install awscli
아! 반드시 파이썬 환경변수 설정이 되어야 합니다.
위 설정을 하게 되면 aws cli 를 커맨드라인에서 사용 할 수 있습니다.
그럼 두번째로 aws 글로벌 크리덴셜 등록을 해야합니다.
$ aws configure
AWS Access Key ID [********************]: **********
AWS Secret Access Key [********************]: *********
Default region name [*************]: ap-northeast-2
Default output format [None]:아마존 IAM 에서 발급받은 (권한 있는) access key 와 secret key 를 등록하면됩니다.
현재 api 서버는 application.yml 에서 확인 할 수 있습니다.
region name 은 보통 서울리전이면 ap-northeast-2 로 생성됩니다.
사실상 여기까지가 aws 커맨드라인 인터페이스를 사용 할 수 있는 초기설정이 끝납니다.
하지만, 현재 delex api 서버는 elasticbeanstalk ( 이하 elb ) 에서 개발되어지고 있기 때문에 추가적인 설정이 필요합니다.
elb는 커맨드라인 인터페이스를 따로 제공하기 때문에 추가적인 설치가 필요합니다
이유는 aws cli 문서에 대충 다음과 같이 써져있습니다.
사실 aws 커맨드라인 인터페이스로도 사용 할 수 있지만 사용하기 굉장히 불편합니다. 다음을 비교 해보세요.
eb cli 로 실행$
eb create my-env
aws cli로 실행 $
aws elasticbeanstalk check-dns-availability --cname-prefix my-cname
~$aws elasticbeanstalk create-application-version --application-name my-application --version-label v1 --source-bundle S3Bucket=my-bucket,S3Key=php-proxy-sample.zip
~$aws elasticbeanstalk create-environment --cname-prefix my-cname --application-name my-app --version-label v1 --environment-name my-env --solution-stack-name "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)"
aws ebcli 를 설치합니다.
$ pip install awsebcli --upgrade --user
이렇게 하면 커맨드라인에서 eb 라는 키워드를 사용 할 수 있습니다.
프로젝트 폴더에서다음 명령어를 실행하여 현재 프로젝트 폴더를 elb 가 인식할 수 있도록합니다.
$ eb init
C:\workspace-deltaon\delex_new\server>eb init
이렇게 하면 화면 처음 리전 목록이 나오고 그다음엔 앱을 선택하는 화면이 나오는데
서울리전이면 10 입력하고,
application 은 사용 할 어플리케이션을 선택하면 됩니다.
profile 명령어에 대해서는 추후에 설명하겠습니다.
.elasticbeanstalk/ 라는 폴더가 보이실껍니다.
그럼 이제 준비단계는 끝났습니다.
이제 커맨드라인 에서 eb deploy 명령어를 실행하시면 어플리케이션이 elb 에 배포됩니다.
자바나 노드같이 아티팩트를 따로 생성해서 업로드 하는경우 다음줄을 config.yml 에 추가하면 됩니다.
deploy:
artifact: target/application.jar
모두 끝났습니다.
이제 deploy 명령어로 앱을 배포하면 됩니다.
$ eb deploy