ECS를 이용한 Blue/Green 무중단 배포 구성하기 (4) - 애플리케이션 로드 밸런서(ALB) 생성

2024. 6. 30. 21:07· AWS/ECS를 이용한 Blue-Green 무중단 배포 구성하기
목차
  1. ECS를 이용한 Blue/Green 무중단 배포 구성하기 (4) - 애플리케이션 로드 밸런서(ALB) 생성
  2. 시리즈 순서
  3. 1. ALB의 Security Group 생성
  4. 1-1. 애플리케이션 로드 밸런서(ALB)란?
  5. 1-2. ALB의 Security Group 생성
  6. 2. Target Group 생성
  7. 2-1. Target Group이란?
  8. 2-2. Target Group 생성
  9. 3. ALB 생성
  10. 4. Route 53 레코드 생성

ECS를 이용한 Blue/Green 무중단 배포 구성하기 (4) - 애플리케이션 로드 밸런서(ALB) 생성

 

작성 일자 : 2024년 6월 30일


 

 

ECS illustration by Dalle3

 

시리즈 순서

  1. 프로젝트 생성과 ECR 리포지토리
  2. VPC 생성 및 NAT Instance를 이용한 인터넷 연결
  3. Route 53 Hosted Zone 생성 및 ACM SSL 인증서 발급
  4. 애플리케이션 로드 밸런서(ALB) 생성(👈 지금 보고 있는 포스트)
  5. ECS를 이용한 컨테이너 배포
  6. CodeDepoly를 이용한 Blue/Green 무중단 배포 테스트
  7. Github Actions를 이용한 배포 자동화 구축

 


 

 

1. ALB의 Security Group 생성

 

1-1. 애플리케이션 로드 밸런서(ALB)란?

 

애플리케이션 로드 밸런서(Application Load Balancer)는 AWS에서 제공하는 고가용성 로드 밸런싱 서비스로, HTTP 및 HTTPS 트래픽을 처리하도록 설계되었습니다. ALB는 다양한 대상 그룹(Target Groups)에 트래픽을 분산시켜, 각 대상 그룹에 연결된 EC2 인스턴스, ECS 컨테이너 또는 Lambda 함수로 트래픽을 전달합니다. Blue-Green 배포 전략을 사용하는 경우, ALB는 새로운 버전의 애플리케이션을 포함한 대상 그룹(예: Green)과 현재 프로덕션 애플리케이션을 포함한 대상 그룹(예: Blue) 간에 트래픽을 원활하게 전환하는 데 중요한 역할을 합니다. 이를 통해 무중단 배포가 가능하며, 롤백이 필요할 때도 빠르게 이전 버전으로 전환할 수 있습니다.

 


 

1-2. ALB의 Security Group 생성

 

먼저, ALB를 생성하기 전에 ALB의 Security Group을 생성하겠습니다.

 


 

  1. AWS Management Console에 로그인한 후, EC2 > Security Groups로 이동합니다.
  2. Security Groups 페이지에서 Create security group을 클릭합니다.

Create security group 클릭

 


 

  1. 아래와 같이 설정을 진행한 후, Create security group을 클릭합니다.

  • Security group name: gerrymandering-ecsdeploy-ALB-SG
  • Description: security group for gerrymandering-ecsdeploy-ALB
  • VPC (중요!!): 시리즈 2편에서 생성한 VPC 선택

 


 

Inbound rules / Outboud rules 설정

 

  • Inbound rules
    • 모든 IPv4 주소로부터 HTTP(포트 80), HTTPS(포트 443) 트래픽을 허용합니다.
  • Outbound rules
    • 모든 대상(0.0.0.0/0)으로의 트래픽을 허용합니다.

 


 

 

2. Target Group 생성

 

2-1. Target Group이란?

 

Target Group은 ALB에서 요청을 라우팅하는 대상의 논리적 집합입니다. 각 Target Group은 하나 이상의 대상(Target)을 포함하며, 이러한 대상은 EC2 인스턴스, ECS 컨테이너, 또는 Lambda 함수일 수 있습니다. Target Group은 요청을 수신할 대상의 집합을 정의하고, 각 대상의 상태를 모니터링하여 트래픽이 건강한(Healty) 대상에게만 전달되도록 합니다. Blue-Green 배포 전략에서는 Blue와 Green 두 개의 Target Group이 존재하며, 각각 다른 버전의 애플리케이션을 호스팅합니다.

 


 

2-2. Target Group 생성

 

  1. AWS Management Console에서 EC2 > Load Balancing > Target Groups로 이동합니다.
  2. Target Groups 페이지에서 Create target group을 클릭합니다.

Create target group 클릭

 


 

  1. 아래와 같이 설정을 진행한 후, Next를 클릭합니다.

Basic configuration

  • Basic configuration
    • Choose a target type: IP addresses
    • Target group name: ecsdeploy-blue-TG
    • Protocol: Port: HTTP / 8080

 


 

Basic configuration

  • Basic configuration
    • IP address type: IPV4
    • VPC: 시리즈 2편에서 생성한 VPC 선택
    • Protocol version: HTTP1

 


 

Health checks 설정

  • Health checks
    • Health check protocol: HTTP
    • Health check path: /actuator/health (Spring Boot Actuator 기본 경로로 설정)

 


 

  1. 아래와 같은 설정을 확인한 후, Create target group을 클릭합니다.

설정 확인

  • IP addresses
    • Network: 시리즈 2편에서 생성한 VPC 선택
    • Enter an IPv4 address from a VPC subnet: 10.0.0. (그대로 유지)
    • Ports: 8080

 


 

  1. (중요!!) 위의 2번 ~ 4번까지의 과정을 반복하여, ecsdeploy-green-TG Target Group을 추가로 생성합니다. (이름을 제외한 모든 설정은 동일)

생성된 Blue / Green Target Group들

 


 

 

3. ALB 생성

 

다음으로, 애플리케이션 로드 밸런서(ALB)를 생성하겠습니다.

 


 

  1. AWS Management Console에서 EC2 > Load Balancing > Load Balancers로 이동합니다.
  2. Load Balancers 페이지에서 Create Load Balancer를 클릭합니다.

Create load balancer 클릭

 


 

  1. Load balancer types에서 Application Load Balancer의 Create를 클릭합니다.

Application Load Balancer의 Create 클릭

 


 

  1. 아래와 같이 설정을 진행한 후, Create load balancer를 클릭합니다.

Basic configuration

  • Basic configuration
    • Load balancer name: gerrymandering-ecsdeploy-ALB
    • Scheme: internet-facing
    • IP address type: IPv4

 


 

Network mapping

  • Network mapping
    • VPC: 시리즈 2편에서 생성한 VPC 선택
    • Mappings
      • Availability Zone: ap-northeast-2a / ap-northeast-2c (두 개의 서브넷 선택)
      • (중요!!) Subnet: 각 Availability Zone의 Public Subnet 선택 (로드 밸런서가 인터넷에 노출되어야 하므로 Public Subnet 선택)

 


 

Security groups

  • Security groups
    • Security groups: gerrymandering-ecsdeploy-ALB-SG (위에서 생성한 ALB의 Security Group 선택)

 


 

Listeners and routing / Secure listener settings

  • Listeners and routing
    • Protocol: HTTPS
    • Port: 443
    • Default action: ecsdeploy-blue-TG (위에서 생성한 Target Group Blue 선택)
  • Secure listener settings
    • Security policy: 기본 선택인 recommended 유지
    • Certificate source: From ACM
    • Certificate (from ACM): 시리즈 3편에서 생성한 ACM 인증서 선택

 


 

Summary

 


 

 

  1. 생성을 완료한 이후, 상태가 Active로 변경될 때까지 기다립니다.

Active 상태가 된 애플리케이션 로드밸런서

 


 

 

4. Route 53 레코드 생성

 

마지막으로, ALB와 도메인을 연결하기 위해 Route 53 레코드를 생성하겠습니다. 이를 통해 사용자는 도메인을 통해 애플리케이션에 접근할 수 있습니다.

 


 

  1. AWS Management Console에서 Route 53 > Hosted zones로 이동합니다.
  2. Hosted zones 페이지에서 시리즈 1편에서 생성한 Hosted Zone을 클릭합니다.

시리즈 1편에서 생성한 Hosted zone 클릭

 


 

  1. Records 섹션에서 Create record를 클릭합니다.

Create record 클릭

 


 

  1. 아래와 같이 설정을 진행한 후, Create records를 클릭합니다.

레코드 설정 진행

  • Quick create record
    • record type: A
    • Alias: 체크
    • Route traffic to
      • Alias to Application and Classic Load Balancer
      • Asia Pacific (Seoul)
      • 생성한 ALB 선택

 


다음 글: ECS를 이용한 컨테이너 배포

 

ECS를 이용한 Blue:Green 무중단 배포 구성하기 (5) - ECS를 이용한 컨테이너 배포

ECS를 이용한 Blue:Green 무중단 배포 구성하기 (5) - ECS를 이용한 컨테이너 배포 작성 일자 : 2024년 7월 14일  시리즈 순서프로젝트 생성과 ECR 리포지토리VPC 생성 및 NAT Instance를 이용한 인터넷 연결R

gerrymandering.tistory.com

 

저작자표시 (새창열림)
  1. ECS를 이용한 Blue/Green 무중단 배포 구성하기 (4) - 애플리케이션 로드 밸런서(ALB) 생성
  2. 시리즈 순서
  3. 1. ALB의 Security Group 생성
  4. 1-1. 애플리케이션 로드 밸런서(ALB)란?
  5. 1-2. ALB의 Security Group 생성
  6. 2. Target Group 생성
  7. 2-1. Target Group이란?
  8. 2-2. Target Group 생성
  9. 3. ALB 생성
  10. 4. Route 53 레코드 생성
'AWS/ECS를 이용한 Blue-Green 무중단 배포 구성하기' 카테고리의 다른 글
  • ECS를 이용한 Blue/Green 무중단 배포 구성하기 (6) - CodeDeploy를 이용한 Blue/Green 무중단 배포 테스트
  • ECS를 이용한 Blue/Green 무중단 배포 구성하기 (5) - ECS를 이용한 컨테이너 배포
  • ECS를 이용한 Blue/Green 무중단 배포 구성하기 (3) - Route 53 Hosted Zone 생성 및 ACM SSL 인증서 발급
  • ECS를 이용한 Blue/Green 무중단 배포 구성하기 (2) - VPC 생성 및 NAT Instance를 이용한 인터넷 연결
gerrymandering
gerrymandering
gerrymandering
gerrymandering
gerrymandering
전체
오늘
어제
  • 분류 전체보기 (82)
    • SOLID 원칙 (6)
    • 번역 (4)
    • Nginx (1)
    • Tailwind CSS (1)
    • AWS (7)
      • DMS를 사용한 RDS to OpenSearch .. (3)
      • ECS를 이용한 Blue-Green 무중단 배포 .. (7)
    • NextJS (6)
    • 기타 (12)
    • Prompt Engineering (6)
    • 읽어볼만한 글 (3)
      • 기술 (0)
      • 쓸만한 툴 (0)
      • 아이템 (0)
      • 웹 디자인 (0)
      • 기타 (3)
    • Cloud Architecture (4)
    • Trouble Shooting (9)
    • Spring (11)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

글쓰기 / 관리자
hELLO · Designed By 정상우.v4.2.1
gerrymandering
ECS를 이용한 Blue/Green 무중단 배포 구성하기 (4) - 애플리케이션 로드 밸런서(ALB) 생성
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.