AWS - ELB(= ALB) + ASG 실습

TopOfTheHead·2026년 2월 2일

클라우드 / AWS

목록 보기
23/38

ALB + ASG 아키텍처
EC2 인스턴스고가용성장애내구성을 확보하기 위한 가장 일반적인 아키텍처
ELB에 의해 EC2 인스턴스Health Check를 주기적으로 수행하면서 특정 인스턴스에서 200 OK를 반환하지 않는 경우 ASG에 의해 인스턴스강제 종료 및 새로운 인스턴스프로비저닝

ELB 종류 中 ALB를 사용
▶ 속도는 느리지만 OSI 7계층 정보를 모두 포함하므로 사용에 좋음
7
오토스케일링을 통해 그룹EC2 인스턴스 수를 관리 및 조정하면서 ELB를 통해 분산 트래픽 처리를 수행

클라이언트ELBIP주소만 알고 트래픽을 전송

ELB그룹EC2 인스턴스에 지속적으로 Health Check 트래픽을 송신하며 모니터링Fail 시 해당 인스턴스트래픽 전송 금지

오토스케일링을 통해 시작 구성을 기반으로 Fail인스턴스에 대응하는 EC2 인스턴스를 생성하여 그룹 내 EC2 인스턴스 수 유지

ALB + Autoscailing 실습
시작 템플릿 생성
ASG 생성 및 테스트
대상 그룹 생성 + ALB 생성
ALB와 연결 및 테스트
ASG인스턴스 증감에 따른 ALB 연동 확인
리스너 테스트
Connection Draining

Connection Draining
ASGALB가 연결되어있을때 ASG자원 정리 시 로그 정보 등의 확보를 위해 자원을 바로 정리하지 않고 유예시간을 주는 행위

AWS Console -> EC2 ->시작템플릿 생성
ASG에 의해 동적으로 프로비저닝EC2 인스턴스옵션을 설정
▶ 이후 해당 설정을 기반으로 EC2 인스턴스가 생성됨.

#!/bin/bash
sudo -s
dnf install httpd -y
service httpd start
chkconfig httpd on
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
INSTANCE_ID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id)
echo "$INSTANCE_ID" >> /var/www/html/index.html 

EC2 UserData에 다음 Script를 입력하여 Bootstrap 설정

EC2 -> Auto Scaling 그룹 진입 후 ASG 생성

  • 시작 템플릿 생성
    ASG에 의해 동적으로 프로비저닝EC2 인스턴스옵션을 설정
    ▶ 이후 해당 설정을 기반으로 EC2 인스턴스가 생성됨.


  • 인스턴스 시작 옵션 설정
    네트워크 : ASG에 의해 생성될 EC2 인스턴스가 속할 VPC + Subnet을 설정
    ▶ 최대 3개의 VPC를 설정 가능

    인스턴스 유형 요구사항 : 시작 템플릿 재정의를 통해 시작 템플릿에 정의된 인스턴스 내용을 재정의
    Instance Type, 요금모델인스턴스를 재정의 가능


  • 다른 서비스와 통합 - 선택사항
    로드 밸런싱 서비스를 설정

대상 그룹 (Target Group) 생성
AWS Console -> EC2 -> 대상그룹에서 대상그룹을 생성

대상 , 프로토콜 ( HTTP, TCP, .. ), 포트, 트래픽 분산 알고리즘 등을 설정

ALB 생성
AWS Console -> EC2 -> 로드 밸런서 에서 ALB를 생성

로드 밸런서 유형 : ALB
리스너 및 라우팅 -> 기본 작업에서 생성한 대상 그룹을 지정



  • 리스너 생성
    。생성한 ALB리스너 및 규칙에서 리스너 추가를 통해 생성


  • 리스너 규칙 추가

    ALB리스너 및 규칙 -> 규칙 관리에서 규칙 추가로 진입 후 리스너 규칙에 따라서 조건 / 작업유형 / 우선순위를 설정
profile
공부기록 블로그

0개의 댓글