7주차-3 NLB를 통한 로드 밸런싱 실습

아이수베어·2022년 1월 21일
0

AFOS[2기]

목록 보기
17/29
post-thumbnail

NLB 생성

EC2 -> 로드밸런서 -> Load Balancer 생성 클릭

생성 클릭

1. 기본 구성
    - 이름(NLB-TEST), 인터넷 경계
    - 리스너 : 프로토콜(UDP), 포트(161)
    - 가용 영역 : ELB-VPC, 2a 와 2c 선택 - IP는 AWS에서 할당 or 사용자의 EIP 사용 가능
대상 그룹(새 대상 그룹), 이름(NLB-TG), 대상 유형(인스턴스), 프로토콜(UDP), 포트(161)
상태 검사(HTTP) → 고급 상태 검사 설정 : 간격(10), 나머지는 기본값 ⇒ UDP는 기본 단방향 통신으로 상태검사에 비적합

인스턴스 선택 후 -> Include as pending below 클릭

하단에 Create target group 클릭

대상 그룹 선택

Create load balancer 클릭

My-EC2 에서 확인

NLB= NLB DNS 주소
echo $NLB

# NLB는 아래 도메인 쿼리 응답 IP가 고정
dig $NLB +short
while true; do dig $NLB +short && echo "------------------------------" && date; sleep 5; done


# NLB IP를 변수에 지정 << 아래 NLB1 NLB2 IP 정보는 각자 멤버들 'dig $NLB' 출력된 IP 2개 정보를 각각 입력
NLB1=3.38.32.124
NLB2=13.124.129.65

 curl 접속 테스트
# NLB 는 5 Tuple Hash 결과로 분산하며 default 설정이 Cross Zone Load Balancing(교차 영역 로드 밸런싱)이 비활성화 상태 
for i in {1..20}; do snmpget -v2c -c public $NLB 1.3.6.1.2.1.1.5.0 ; done | sort | uniq -c | sort -nr
for i in {1..20}; do snmpget -v2c -c public $NLB1 1.3.6.1.2.1.1.5.0 ; done | sort | uniq -c | sort -nr
for i in {1..20}; do snmpget -v2c -c public $NLB2 1.3.6.1.2.1.1.5.0 ; done | sort | uniq -c | sort -nr

ELB-EC2-1/2 에서 확인

# 패킷덤프 시 클라이언트IP가 NLB를 경유해서 인입하였지만 변경 안됨 - 클라이언트IP보존
# EC2 보안그룹에 NLB로 서비스하는 포트의 대상을 대부분 0.0.0.0/0 지정하게됨 - 클라이언트IP로 인입되기 때문
tcpdump udp port 161 -nn

오류 수정 완료!
잘 나온다 ㅎㅎ 만약에 어쩌고 저쩌고 bytes 하는 글만 나온다면 My-EC2에 위에 for문 첫 번째 코드를 다시 돌려보자.

NLB Cross Zone Load Balancing 활성화

EC2 -> 로드밸런서 -> 작업 클릭 -> 속성 편집 클릭

교차 영역 로드 밸런싱 활성화 클릭

My-EC2 에서 확인

# curl 접속 테스트
for i in {1..20}; do snmpget -v2c -c public $NLB1 1.3.6.1.2.1.1.5.0 ; done | sort | uniq -c | sort -nr
for i in {1..20}; do snmpget -v2c -c public $NLB2 1.3.6.1.2.1.1.5.0 ; done | sort | uniq -c | sort -nr

오류 수정 완료!
요즘에 오류를 고치고 성공적인 결과가 나올 때 제일 행복한 거 같다 ㅎㅎ


자원 삭제(중요!)

로드 밸런서 삭제 (EC2 → 로드 밸런싱 → 로드 밸런서 → 작업 → 삭제)

대상 그룹 삭제 (EC2 → 로드 밸런싱 → 대상 그룹 → 작업 → 삭제)

CloudFormation 스택 삭제 (CloudFormation → 스택 → 스택 삭제)


참고 자료 : AFOS[2기] 노션 내용

profile
Junior Cloud Engineer

0개의 댓글