개발놀이터
AWS CLI로 로드밸런서 타겟그룹 바꾸기 본문
블루 그린 배포를 하는 과정에서 한 가지 문제가 생겼습니다. AWS의 로드밸런서인 ALB의 타겟그룹을 수동으로 바꿔줘야 한다는 것이었죠.
CLI로 타겟 그룹을 바꿀 수 있다는 사실을 몰랐던지라 이를 어떻게 자동화할지 몰랐고 덕분에 컨테이너와 이미지를 없애고 다시 블루 버전을 띄워서 블루 그린 배포인데 블루 버전만 사용하는 아이러니함이 생겼죠.
새로운 프로젝트를 진행하다가 챗 지피티한테 궁금해서 물어봤습니다.
"AWS CLI로 타겟 그룹을 변경할 수 있어?"
"그럼요~"
예제 코드까지 친절하게 알려줘서 덕분에 성공할 수 있었습니다 (GPT 최고!).
그럼 이제 본격적으로 AWS CLI로 타겟 그룹을 변경하는 포스팅을 진행해보도록 하겠습니다.
AWS CLI가 뭐야?
우리는 AWS의 시스템을 이용할 때 AWS 사이트에서 진행합니다. 이는 정말 편하지요. 하지만 우리는 AWS를 리눅스 환경에서 조작하고 싶을 때가 있습니다.
그럴 때 사용하는 것이 바로 CLI (씨엘아이) 입니다. 같은 느낌으로 깃허브도 CLI가 있습니다.
AWS CLI를 사용하기 위해서는 먼저 리눅스 환경에 AWS CLI를 설치해야합니다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws --version
aws-cli/2.7.9 Python/3.9.11 Linux/5.13.0-51-generic exe/x86_64.ubuntu.20 prompt/off
$ rm -f awscliv2.zip # 설치 되었으면 zip 파일은 지워주도록 합시다. 용량이 넉넉하지 않으니..
이렇게 하고 이제 AWS의 설정정보를 갱신해줘야합니다. 우리가 사용할 사용자를 만들어야한다는 의미이죠.
이렇게 aws 설정을 통해 자신이 누구인지 리눅스 운영체제에 알려야합니다. 이 데이터를 기반으로 IAM같은 클라우드 정보도 이용할 수 있기 때문입니다.
자신의 Access Key와 Secret Access Key를 입력하고 지역, 포맷을 입력하면 끝입니다.
이제 준비는 끝났습니다. CLI로 AWS를 조종해봅시다.
$ AWS_PAGER="" aws elbv2 describe-listeners --load-balancer-arn <YOUR-LOAD-BALANCER-ARN>
어? 근데 ARN은 뭘까요?
ARN은 쉽게 말해서 UUID와 같은 역할을 한다고 보시면 됩니다. CLI를 위한 UUID이죠.
이 ARN은 다양한 곳에서 확인할 수 있습니다.
우리의 로드 밸런서에도 이렇게 볼 수 있구요.
EC2의 타겟 그룹도 이렇게 ARN을 확인할 수 있습니다.
다시 CLI로 돌아와서요.
AWS_PAGER="" aws elbv2 describe-listeners --load-balancer-arn <YOUR-LOAD-BALANCER-ARN>
여기 <YOUR-LOAD-BALANCER-ARN> 이 부분을 자신의 ARN으로 적어주시면 됩니다.
이 때 주의해야할 점은 오타가 한글자라도 나면 적용이 안된다는 점입니다. 주의해주세요!
이렇게 로드 밸런서를 선택해주었고 이제 타겟 그룹을 변경해보겠습니다.
aws elbv2 modify-listener \
--listener-arn <YOUR-LISTENER-ARN> \
--default-actions Type=forward,TargetGroupArn=<YOUR-GREEN-TARGET-GROUP-ARN>
우리의 리스너와 타겟그룹의 ARN을 입력해주면?
이건 제 Jenkins 로그를 따온건데 보시면 맨 아래 부분에 TargetGroups 가 변경된 것을 볼 수 있습니다. 자세히 보면 assignment-blue로 변경되었네요.
실제로도 변경되었는지 볼까요?
타겟 그룹이 잘 변경되었습니다.
마치며
이렇게 AWS CLI로 로드밸런서의 타겟 그룹을 변경시켜봤습니다.
CLI로 로드밸런서의 타겟 그룹을 변경시켜주지 않으면 블루 / 그린 배포를 진행할 때 굉장히 힘들었을 것입니다. 직접 AWS 사이트에 들어가서 타겟 그룹 변경해주고 설정까지 완료해줘야 하니까요.
나사 하나 빠진 블루 그린 배포에서 이제 완벽한 블루 그린 배포로 거듭났습니다.
여기까지 긴 글 읽어주셔서 감사합니다. 오늘도 즐거운 하루 되세요~
'사이드 프로젝트 > 온라인 쇼핑몰 ver.4' 카테고리의 다른 글
데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 실전1 (VPC와 서브넷) (0) | 2023.08.13 |
---|---|
데이터베이스 서버와 애플리케이션 서버를 분리해보자 : 개념 (0) | 2023.08.13 |
스프링 Redirect 시 HTTPS 접근이 아니라 막히는 현상 (1) | 2023.07.16 |
ACM + ALB 를 이용해 HTTPS 적용하기 (2) (0) | 2023.07.09 |
ACM + ALB 를 이용해 HTTPS 적용하기 (1) (0) | 2023.07.09 |