[AWS] Elastic Beanstalk eb cli 활용하기
안녕하세요. 남산돈가스입니다.
얼마 전, Elastic Beanstalk로 손쉽게 서버를 구성해보면서, eb cli를 조금 더 유연하게 활용해볼까 라는 생각에 금주 포스팅은, eb cli 활용법에 대한 글을 작성해보려고 합니다.
선행으로 eb cli가 설치되어있다고 가정하고 포스팅을 진행하려고 하니, 아직 eb cli 설치를 하지 못하신 분은 AWS Elastic Beanstalk 명령줄 인터페이스(EB CLI) 설정하기 를 참고하시면 될 것같습니다.
eb cli 설치가 되었다면, 터미널에서 eb -h 라는 명령어를 입력해봅니다.
eb cli로 실행할 수 있는 명령어 목록이 보여집니다. 이번 포스팅에서 가장 중심적으로 쓰이는 명령어를 몇가지 소개해드리겠습니다.
- appversion
먼저 eb appversion [환경명] 을 입력하면 입력한 환경에 대한 버젼 정보를 아래와 같은 형식으로 보여줍니다.
간단한 정보로 버전번호, label, 생성 일자, Description 등을 제공합니다.
- clone
다음은, clone 명령입니다. 말 그대로, 현재 생성되어있는 환경을 새로운 환경으로 복사하는 개념과 같습니다. 사용법은 eb clone [현재 생성되어있는 환경명] [새로 만들어진 환경명] 입니다.
clone을 하게 되면 복사할 환경에서 설정 된 정보들을 그대로 하나 복제하게 됩니다.
- console
console 명령어는 입력한 환경에 대한 AWS 웹 콘솔화면 페이지로 이동시켜주는 명령어입니다. 사용법은 eb console [환경명]입니다. 개인적으로, AWS 웹 콘솔로 이동하기 위한 번거로움을 해소시켜주는 점이 마음에 드는 명령어였습니다.
- create
create는 말 그대로 새로운 환경을 만드는 명령어입니다. 사용법은 단순하게 eb create 입니다.
명령을 실행하면 몇 가지 입력을 통해 필수 정보들을 설정할 수 있습니다.
deploy는 로컬 환경에 작업하고 있는 프로젝트를 .elasticbeanstalk/config.yml 에 설정한 정보에 맞는 형태로 배포하는 명렁어 입니다. 사용버은 eb deploy 이고 가장 일반적으로 많이 사용되고 있는 명령어 입니다.
- health
health 명령은 현재 생성되어있는 환경들의 상태를 정리하여 보여주는 명령어 입니다.
- init
init 명령은 현재 디렉토리에 elastic beanstalk를 시작할 수 있는 환경을 만들어주는 명령어입니다.
프로젝트 디렉토리를 생성한 뒤 이동하여 eb init 명령을 실행하면 기존에 생성되어 있는 Application 정보를 가지고 올 수도 있고, 새로운 Application을 생성할 수 있습니다. create와 마찬가지로 몇 가지 입력형식을 받는 형태로 제공되며 결과적으로는 해당 프로젝트에 .elasticbeanstalk 라는 폴더와 하위에 config.yml 파일을 생성합니다.
- list
list 명령은 현재 생성되어 있는 환경의 목록을 보여주는 명령어입니다.
- scale
scale 명령어는 입력한 환경명의 인스턴스 용량을 설정할 수 있는 명령어 입니다. 웹 콘솔에서 환경을 선택하시고 구성 -> 용량 을 선택하시면 인스턴스 갯수를 설정할 수 있습니다. 기본적으로 단일 인스턴스가 아닌 로드밸런싱 구성에서만 해당하며 min-max로 구성이 되어있는데, eb clid에서 eb scale [구동할 인스턴스 갯수] [환경명] 을 입력하시면 됩니다. 예를 들어 eb scale 2 [환경명] 을 실행하면 해당 환경의 인스턴스는 2-2로 설정되게 됩니다.
- printenv, setenv
printenv, setenv 는 보시는 것처럼 env(환경변수)를 print하고 set 할 수 있는 명령어입니다.
- status
eb status는 해당 환경의 정보 및 상태를 간략하게 제공하는 명령어입니다.
- terminate
terminate 명령은 eb 환경을 중지시킬 때 사용하는 명령어입니다.
eb terminate [환경명] 으로 사용하고 제거되는 환경은 실행되고 인스턴스가 가지고있는 security group이라던지 elb들도 함께 삭제됩니다.
얼마 전, Elastic Beanstalk로 손쉽게 서버를 구성해보면서, eb cli를 조금 더 유연하게 활용해볼까 라는 생각에 금주 포스팅은, eb cli 활용법에 대한 글을 작성해보려고 합니다.
선행으로 eb cli가 설치되어있다고 가정하고 포스팅을 진행하려고 하니, 아직 eb cli 설치를 하지 못하신 분은 AWS Elastic Beanstalk 명령줄 인터페이스(EB CLI) 설정하기 를 참고하시면 될 것같습니다.
eb cli 설치가 되었다면, 터미널에서 eb -h 라는 명령어를 입력해봅니다.
commands: abort Cancels an environment update or deployment. appversion Listing and managing application versions clone Clones an environment. codesource Configures the code source for the EB CLI to use by default. config Modify an environment's configuration. Use subcommands to manage saved configurations. console Opens the environment in the AWS Elastic Beanstalk Management Console. create Creates a new environment. deploy Deploys your source code to the environment. events Gets recent events. health Shows detailed environment health. init Initializes your directory with the EB CLI. Creates the application. labs Extra experimental commands. list Lists all environments. local Runs commands on your local machine. logs Gets recent logs. open Opens the application URL in a browser. platform Commands for managing platforms. printenv Shows the environment variables. restore Restores a terminated environment. scale Changes the number of running instances. setenv Sets environment variables. ssh Opens the SSH client to connect to an instance. status Gets environment information and status. swap Swaps two environment CNAMEs with each other. tags Allows adding, deleting, updating, and listing of environment tags. terminate Terminates the environment. upgrade Updates the environment to the most recent platform version. use Sets default environment.
eb cli로 실행할 수 있는 명령어 목록이 보여집니다. 이번 포스팅에서 가장 중심적으로 쓰이는 명령어를 몇가지 소개해드리겠습니다.
- appversion
먼저 eb appversion [환경명] 을 입력하면 입력한 환경에 대한 버젼 정보를 아래와 같은 형식으로 보여줍니다.
간단한 정보로 버전번호, label, 생성 일자, Description 등을 제공합니다.
- clone
다음은, clone 명령입니다. 말 그대로, 현재 생성되어있는 환경을 새로운 환경으로 복사하는 개념과 같습니다. 사용법은 eb clone [현재 생성되어있는 환경명] [새로 만들어진 환경명] 입니다.
clone을 하게 되면 복사할 환경에서 설정 된 정보들을 그대로 하나 복제하게 됩니다.
- console
console 명령어는 입력한 환경에 대한 AWS 웹 콘솔화면 페이지로 이동시켜주는 명령어입니다. 사용법은 eb console [환경명]입니다. 개인적으로, AWS 웹 콘솔로 이동하기 위한 번거로움을 해소시켜주는 점이 마음에 드는 명령어였습니다.
- create
create는 말 그대로 새로운 환경을 만드는 명령어입니다. 사용법은 단순하게 eb create 입니다.
명령을 실행하면 몇 가지 입력을 통해 필수 정보들을 설정할 수 있습니다.
- deploy
deploy는 로컬 환경에 작업하고 있는 프로젝트를 .elasticbeanstalk/config.yml 에 설정한 정보에 맞는 형태로 배포하는 명렁어 입니다. 사용버은 eb deploy 이고 가장 일반적으로 많이 사용되고 있는 명령어 입니다.
- health
health 명령은 현재 생성되어있는 환경들의 상태를 정리하여 보여주는 명령어 입니다.
- init
init 명령은 현재 디렉토리에 elastic beanstalk를 시작할 수 있는 환경을 만들어주는 명령어입니다.
프로젝트 디렉토리를 생성한 뒤 이동하여 eb init 명령을 실행하면 기존에 생성되어 있는 Application 정보를 가지고 올 수도 있고, 새로운 Application을 생성할 수 있습니다. create와 마찬가지로 몇 가지 입력형식을 받는 형태로 제공되며 결과적으로는 해당 프로젝트에 .elasticbeanstalk 라는 폴더와 하위에 config.yml 파일을 생성합니다.
- list
list 명령은 현재 생성되어 있는 환경의 목록을 보여주는 명령어입니다.
gimseongsin@gimseongsin-ui-MacBook-Pro:~/Desktop/WebStormProject/dev/github/api:> eb list * eb-express-dev
- scale
scale 명령어는 입력한 환경명의 인스턴스 용량을 설정할 수 있는 명령어 입니다. 웹 콘솔에서 환경을 선택하시고 구성 -> 용량 을 선택하시면 인스턴스 갯수를 설정할 수 있습니다. 기본적으로 단일 인스턴스가 아닌 로드밸런싱 구성에서만 해당하며 min-max로 구성이 되어있는데, eb clid에서 eb scale [구동할 인스턴스 갯수] [환경명] 을 입력하시면 됩니다. 예를 들어 eb scale 2 [환경명] 을 실행하면 해당 환경의 인스턴스는 2-2로 설정되게 됩니다.
- printenv, setenv
printenv, setenv 는 보시는 것처럼 env(환경변수)를 print하고 set 할 수 있는 명령어입니다.
gimseongsin@gimseongsin-ui-MacBook-Pro:~/Desktop/WebStormProject/dev/github/api:> eb printenv Environment Variables: RDS_DATABASE = ***** RDS_HOSTNAME = ***** RDS_PASSWORD = ***** RDS_USERNAME = ***** gimseongsin@gimseongsin-ui-MacBook-Pro:~/Desktop/WebStormProject/dev/github/api:> eb setenv NODE_ENV=dev INFO: Environment update is starting. INFO: Updating environment eb-express-dev configuration settings. INFO: Successfully deployed new configuration to environment. gimseongsin@gimseongsin-ui-MacBook-Pro:~/Desktop/WebStormProject/dev/github/api:> eb printenv Environment Variables: NODE_ENV = dev RDS_DATABASE = ***** RDS_HOSTNAME = ***** RDS_PASSWORD = ***** RDS_USERNAME = *****
- status
eb status는 해당 환경의 정보 및 상태를 간략하게 제공하는 명령어입니다.
gimseongsin@gimseongsin-ui-MacBook-Pro:~/Desktop/WebStormProject/dev/github/api:> eb status Environment details for: eb-express-dev Application name: eb-express Region: ap-northeast-2 Deployed Version: app-c3d3-180528_112616 Environment ID: e-tej39ffejm Platform: arn:aws:elasticbeanstalk:ap-northeast-2::platform/Node.js running on 64bit Amazon Linux/4.5.0 Tier: WebServer-Standard-1.0 CNAME: eb-express-dev.hut4xtcmbh.ap-northeast-2.elasticbeanstalk.com Updated: 2018-05-28 02:27:05.346000+00:00 Status: Ready Health: Green
- terminate
terminate 명령은 eb 환경을 중지시킬 때 사용하는 명령어입니다.
eb terminate [환경명] 으로 사용하고 제거되는 환경은 실행되고 인스턴스가 가지고있는 security group이라던지 elb들도 함께 삭제됩니다.
여기까지 eb cli의 명령어에 대해서 전부는 아니지만 자주 사용하는 명령어를 알아보았습니다.
생각보다 eb cli가 직관적으로 이해할 수 있도록 제공되는 것 같아 개발하면서 조금 더 유연하게 eb 환경을 컨트롤 할 수 있을 것 같습니다.
감사합니다.
댓글
댓글 쓰기