본문 바로가기

Develop

Elastic beanstalk CLI 를 활용한 비용 절감 노력

Django 물개발자입니다.

 

이전 글에서 EB(Elasticbeanstalk) 환경에 Django를 배포하면서 겪었던 내용을 여기서 공유했습니다. 이번에는 EB에 환경을 생성하는 과정을 CLI 를 이용해 보려고 합니다.

 

AWS web console을 이용하면 각 단계별로 필요한 과정과 의미를 이해하는데 도움이 됩니다. 다만 이런 과정을 자주 반복해야 하는 상황에 마주친다면 좀 더 나은 방법에 대해서 생각하게 될 것입니다. 같은 작업을 반복하는 것은 시간이 걸린다는 것은 의미하고 또 사람이 손으로 각 단계를 밟다 보면 의도하지 않게 실수를 할 수 있기 때문입니다.


 

Create a web server environment

위 그림은 EB에 environment을 생성하는 시작단계입니다. default configuration과 다른 환경을 갖추기 위해서는 그 후에 많은 단계가 기다리고 있습니다.

 

스스로가 구축하고자 하는 환경의 instance type, elb 설정, 환경 변수에 대한 내용을 모두 알고 있다면 아래와 같이 명령어 덩어리로 한 번에 마칠 수 있습니다. 좀 더 많은 옵션이 있으니 궁금하신 분들은 여기를 참조하시면 됩니다.

 

생성

eb create staging -i t2.small -c staging \
--envvars DB_PW="very secret",DB_USER="waterman",DB_NAME="dev",DB_HOST="staging.ce6uph5ztrl3.ap-northeast-2.rds.amazonaws.com",GOOGLE_APPLICATION_CREDENTIALS="/tmp/tmp.json",REDIS_HOST="hoodpub.frhwt7.0001.apn2.cache.amazonaws.com",ENV='staging',SENTRY_DSN="https://4ac6134c3f84fffa58595f4540859e3@sentry.io/2591210",BOT_TOKEN="xoxb-425766697814-966124446196-F10tFxEFrkLwKNBCNqr0RQ2W",EMAIL_HOST_PASSWORD="water" \
--vpc.id vpc-042054ff5a9c077e9 \
--vpc.publicip \
--elb-type application \
--vpc.elbpublic \
--vpc.elbsubnets subnet-02985fea2c1abcdb,subnet-0abd784b2edb13ac7,subnet-0b729945228bf4fa \
--vpc.ec2subnets subnet-0b729945228bf4fa

* 위에서 노출되는 각각의 값들은 사용 예를 위한 임임의 값들이니 의미가 없습니다.

 

삭제

eb terminate staging

이렇게 간단한 명령어로 eb 환경을 생성/삭제를 할 수 있습니다. 저 같은 경우 회사에 staging, prod 두 개의 환경을 가지고 있습니다. prod는 일반 사용자들, staging은 내부 사용자가 사용하는 자원입니다. 업무시간 외에는 staging을 사용하지 않으므로 굳이 비용을 낭비할 필요가 없겠지요.

 

그래서 crontab을 구성해 둡니다. 출근 오전 9시에는 생성 명령어, 퇴근 6시에는 삭제 명령어를 실행하게끔 구성합니다.

 

 

Linux crontab command help and examples

Linux crontab command help and information with crontab examples, syntax, related commands, and how to use the crontab command from the command line.

www.computerhope.com

AWS cloud 환경 덕분에 시간과 비용을 절약할 수 있게 되었습니다. 비용을 효과적으로 사용하는 스타트업이라면 이런 작은 노력이 비용 절감에 노력이 될 것입니다.

반응형