AWS

aws blue green 배포를 위한 ALB target group 만들기

오렌지마끼야또 2025. 3. 17. 10:48
728x90
반응형

 

 

 

타겟 그룹 (Target Group) 은 Load Balancer 가 트래픽을 분배할 대상(EC2 인스턴스, ECS 컨테이너, Lambda 함수, 온프레미스 서버 등)을 정의하는 그룹입니다. 하나의 로드 밸런서는 여러 개의 타겟 그룹을 가질 수 있습니다. 타겟 그룹에는 헬스 체크(Health Check) 기능이 있어서, 정상적인 타겟에만 트래픽을 보냅니다.

 

 

 

ec2의 load balancing 에 있는 target groups 를 클릭합니다.

 

 

Specify group details

저는 IP addresses 를 선택할 것입니다. 'ec2에 배포할거니까 Instances 로 해야하는거 아닌가요?' 라고 할 수 있습니다. 하지만 저는 ECS(Elastic Container Service) 를 쓸 것입니다.

 

구축하려는 서비스는 동일한 VPC에서 구성되기 때문에 ECS 를 설정할 때 Network mode 를 awsvpc 로 선택할 것입니다. awsvpc 모드를 사용하는 경우에는 Instances 가 아닌 IP Addresses 로 설정해주어야 합니다. 이는 awsvpc 네트워크 모드를 사용하는 ECS task 가 EC2 인스턴스가 아닌 탄력적 네트워크 인터페이스(ENI) 와 연결되기 때문입니다.

(https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/alb.html)

쉽게 말하면 ECS task 는 Instance 도메인이 아니라 독립적인 IP가 할당되기 때문입니다. ECS의 단위는 인스턴스가 아닌 컨테이너 단위이기 때문에 하나의 ec2에 여러개의 컨테이너가 생성될 수 있습니다. 이때 Instances 로 설정하면 인스턴스 내의 어떤 컨테이너로 트래픽을 보내야할지 알 수 없기 때문에 IP Addresses 로 설정하는 것입니다.

 

"ecs 안쓰고 그냥 ec2 구성해서 도커이미지 직접 배포하는 경우에도 awsvpc 니까 instance 가 아니라 ip로 해야한다는 뜻?"

 -> ECS를 사용하지 않고 EC2에 직접 도커 이미지를 배포하는 경우, awsvpc 네트워크 모드와는 관련이 없습니다. EC2에 직접 도커 이미지를 배포할 때는 일반적으로 EC2 인스턴스의 네트워크를 사용하므로, 로드 밸런서 대상 그룹의 대상 유형을 instance로 선택해야 합니다.

awsvpc, bridge, host, none 네트워크 모드는 ECS 에만 적용되는 개념!!

 

 

Protocol : Port

는 보통 http 로 설정합니다.

alb까지는 https 로 와도 alb 이하는 내부통신이기 때문에 http로 해도 무방합니다.

https는 내부 트래픽까지 보호해야 한다는 보안 정책이 있는 경우에 적용합니다.

 

 

Protocol version

요구되는 사항으로 맞춰 설정하시면 됩니다.

http1 (HTTP/1.1)

 - 기본적으로 사용되는 프로토콜 버전
 - 대부분의 웹 애플리케이션과 호환성이 높음

http2 (HTTP/2)

 - HTTP/1.1의 성능 제한을 개선한 버전
 - 다중화된 스트림, 헤더 압축, 서버 푸시 등의 기능을 제공
 - 단일 연결을 통해 여러 요청을 동시에 처리할 수 있어 성능이 향상됨

gRPC
 - Google에서 개발한 고성능 RPC(Remote Procedure Call) 프레임워크
 - HTTP/2를 기반으로 하며, 프로토콜 버퍼를 사용하여 데이터를 직렬화
 - 양방향 스트리밍, 서버 및 클라이언트 스트리밍을 지원
 - 마이크로서비스 아키텍처에서 자주 사용됨

 

 

Health Check 는 등록된 타겟에게 주기적으로 요청을 보내 현재 상태를 확인하는 것입니다.

위에 Protocol 과 마찬가지로 http 로 하겠습니다.

고급설정도 마찬가지로 그대로 두겠습니다.

트래픽이 가는 포트로 health check 하겠다 vs 원하는 포트로 설정하겠다

정상 임계 값

n회 연속으로 정상 응답이어야 정상 상태로 보겠다

비정상 임계값

n회 연속으로 정상 응답이 아니면 비정상 상태로 보겠다

제한 시간

n초 내로 응답하지 않으면 비정상으로 보겠다

간격

health check 사이의 시간 간격은 n초이다

해당 코드로 응답하면 정상으로 보겠다

 

 

next 를 누르면 target을 등록하는 화면이 나옵니다. 저는 target인 ECS를 아직 생성하지 않았으므로 나중에 등록하기로 하고 기본 설정 그대로 두고 마치겠습니다.

 

블루 그린 배포를 위한 target gruop 이기 때문에 동일한 과정으로 이름만 다르게하여 하나 더 생성해줍니다.

 

 

 

728x90
반응형