< Dev-Kidult />

aws cli를 사용해보자 본문

개발/Etc

aws cli를 사용해보자

개른이 2021. 3. 23. 17:21

 

 

 

문제


팀장님으로부터 스테이지 서버 비용을 조금이라도 줄여보자라며, 비사용 시간에 오토 스케일링 인스턴스 숫자를 0으로 만들자는 요구가 왔다. 

하면서 알려주신 옵션이 아래 옵션을 건드려서 조정해보시자고 한 것.

 

추가로 SDK를 사용하면 빈스톡 옵션을 조정할 수 있다는 방법과 함께 떠나셨다.

 

하여 백엔드단에 스케쥴러를 작성 할 생각으로 작업방향을 진행하려 했지만, 저 예약된 작업을 추가하는 것에 제약이 꽤나 있었고 원하는바로 진행이 되지 않았다.

 

좀 더 찾아보고 짱구를 돌려본 후 내린 결정은 aws cli + 젠킨스로 해결하기로 하였다.

 

 

 

해결


aws.amazon.com/ko/cli/

 

AWS 명령줄 인터페이스

aws-shell은 명령줄 셸 프로그램으로서, AWS 명령줄 인터페이스를 사용하는 새로운 사용자와 고급 사용자 모두에게 도움이 되는 편의 기능 및 생산성 기능을 제공합니다. 주요 기능은 다음과 같습

aws.amazon.com

위 링크를 타고 들어가면 windows 혹은 mac & linux용 설치 방법이 둘다 나와있다.

 

제일 먼저 설정부터 완료해주었다. ( 아래 이미지는 공식문서 펌 )

 

그리고 우리가 건드려야 하는 부분은 엘라스틱빈스톡이다.

docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.htmldocs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/index.html

 

Using the Elastic Beanstalk command line interface (EB CLI) - AWS Elastic Beanstalk

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

자세한 부분은 여길 참조하자.

 

최종적으론 구성요소 중 오토스케일링의 인스턴스 숫자 자체를 업데이트하는 것이기 때문에, 이 많은 옵션 중 우리가 사용해야 하는 옵션은 update-environment이다. 

 

업데이트는 특정 버전, 환경변수, 파일로 하는 방법이 있는데, 파일로 업데이트하는 방법을 골랐다.

파일은 형식에 맞게 json파일을 만들어주면 되고, 우리는 인스턴스 숫자를 특정 시간에 늘리거나 줄이는 것이므로 2개를 준비했다.

[
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MinSize",
        "Value": "1"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MaxSize",
        "Value": "1"
    }
]

위 json은 오토스케일링 인스턴스 개수를 최소와 최대 모두 1로 조정하는 것이고 위와 반대로 0으로 조정을 원할 때에는 value에 0으로 바꾸면 된다.

 

이렇게 준비를 끝내고 젠킨스로 특정 시간마다 cli를 통해 호출을 해주면 완료!

반응형
Comments