개발놀이터

AWS CLI로 로드밸런서 타겟그룹 바꾸기 본문

사이드 프로젝트/온라인 쇼핑몰 ver.4

AWS CLI로 로드밸런서 타겟그룹 바꾸기

마늘냄새폴폴 2023. 8. 9. 22:01

블루 그린 배포를 하는 과정에서 한 가지 문제가 생겼습니다. 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의 설정정보를 갱신해줘야합니다. 우리가 사용할 사용자를 만들어야한다는 의미이죠. 

 

출처 : https://passwd.tistory.com/114

이렇게 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 사이트에 들어가서 타겟 그룹 변경해주고 설정까지 완료해줘야 하니까요. 

 

나사 하나 빠진 블루 그린 배포에서 이제 완벽한 블루 그린 배포로 거듭났습니다. 

 

여기까지 긴 글 읽어주셔서 감사합니다. 오늘도 즐거운 하루 되세요~