p62
클라이언트 요청을 직접 받고, 로드 밸런서가 관리하는 서버들에게 요청을 골고루 전달하는 역할
ELB(Elastic Load Balancer)에는 ALB, NLB, CLB 세 종류가 있음
ALB(Application Load Balancer)
- HTTP 및 HTTPS에 가장 적합한 로드 밸런서이다.
- OSI 모형의 애플리케이션 계층(구체적인 통신을 제공하는 계층)에서 동작
- 요청되는 명령어의 내용을 보고 판단하기 때문에 URL 디렉터리 단위로 분배하는 것이 가능
- 인스턴스와 로드 밸런서 사이의 통신은 암호화가 가능하다는 특징도 있음
- 지원 프로토콜 : HTTP, HTTPS
NLB(Network Load Balancer)
- OSI 모형의 전송 계층(전송된 데이터의 제어를 담당하는 계층)에서 동작
- 지원 프로토콜 : TCP, TLS
CLB(Classic Load Balancer)
- 오래된 유형의 로드 밸런서
- 지원하는 프로토콜이 많다는 장점이 있지만 이제 사용하지 않음
- 지원 프로토콜 : TCP, SSL/TLS, HTTP, HTTPS
ELB 요금
- ALB와 NLB의 요금은 시간당 사용 요금과 LCU(로드 밸런서 용량 단위) 요금의 합계로 계산
- ALB 단가는 1시간당 0.0225US달러 정도이고 LCU 요금은 1시간당 0.005US달러 정도
- 요금 = 1) 사용요금 + 2)LCU요금
- 사용요금 ㅣ 사용단가 x 시간
- LCU요금 | LCU사용량 x LCU 단가 x 시간
로드밸런서 구성 실습
로드 밸런싱 → 로드 밸런서 클릭 → 로드 밸런서 생성
Application Load Balancer 생성 버튼 클릭
로드 밸런서 이름 : exercise-lb
체계 : 인터넷 경계
IP 주소 유형 : IPv4
네트워크 매핑 : a, c 체크
보안그룹 : web 추가
* ELB(로드밸런서)는 SSH 접속이 되지 않음
* default는 없어도됨
기본적으로 protocol : HTTP, Port : 80이 설정되어있음
타겟 그룹이 설정되어 있지 않음
*타겟 그룹 : 로드밸런서가 클라이언트로부터 받은 요청을 전달할 대상 그룹
=> 대상 그룹 생성(Create target group) 누르면 새 창이 생성됨
대상 유형 선택 : 인스턴스(기본값)
대상 그룹 이름 : exercise-target-group
VPC : 기본값
프로토콜 버전 : HTTP1(기본값)
상태 검사 프로토콜 : HTTP
상태 검사 경로 : /health
다음
인스턴스를 직접 선택해서 추가할 수 있음
Auto Scaling으로 인해 자동으로 만들어질 인스턴스를 타겟 그룹으로 할 것이므로 선택하지 않고,
타겟 그룹 생성(Create target) 클릭
타겟 그룹이 만들어졌다면 다시 로드밸런서 생성 화면(탭)으로 이동
화면 위의 생성 성공 메시지 확인
AWS Auto Scaling 그룹 생성
기존에 만들어진 Auto Scaling 그룹이 있다면 바로 실습 진행
없을 경우
2023.12.28 - [AWS] - [AWS] Auto Scaling ① - 생성·절차
참조
[AWS] Auto Scaling ① - 생성·절차
기준값에 따라 서버의 수를 자동으로 늘였다 줄였다 하는 서비스 사람이 아닌 AWS에서 자동으로 추가/삭제 AWS Auto Scaling 절차 EC2 인스턴스 스냅샷 생성 시작 템플릿 생성 Auto Scaling 생성 1. EC2 인스
cutyqueen.tistory.com
1. exercise-instance7 우클릭 -> 이미지 및 템플릿 -> 이미지 생성
- 이미지 이름 : exercise-image7
- 나머지 설정은 기본값으로 설정
이름을 넣었다면 이미지 생성 버튼 클릭!
2. AWS Auto Scaling 절차
- EC2 인스턴스 스냅샷 생성
- 시작 템플릿(탭) 생성
- Auto Scaling 생성
시작 템플릿 생성창
- 시작 템플릿 이름 : exercise-team4-launch-template
- 템플릿 버전 이름 : inital version
- 애플리케이션 및 OS 이미지
=> 내 AMI 탭을 선택
=> AMI : exercise-image7 선택
- 인스턴스 유형 : t2.micro (프리티어 사용 가능)
- 키페어(로그인) : 기존 키페어 사용(KeyClass)
- 네트워크 설정 : 기존 보안 그룹 선택(ssh, web)
- 스토리지(볼륨) : 기본값
설정을 다 했다면 '시작 템플릿 생성' 버튼 클릭
3. 시작 템플릿 보기 클릭
===================================
[3. Auto Scaling 생성]
1. Auto Scaling -> Auto Scaling 그룹
2. Auto Scaling 그룹 생성 버튼 클릭
3. Auto Scaling 그룹 생성 화면
- 총 7단계 구성
- 1단계 시작 템플릿 또는 구성 선택
=> Auto Scaling 그룹 이름 : EXERCISE-GROUP
=> 시작 템플릿 : exercise-launch-template
다음 클릭
- 2단계 인스턴스 시작 옵션 선택
=> VPC : 기본값 사용
=> 가용 영역 및 서브넷 : ap-northeast-2a, ap-northeast-2c 선택
다음 클릭
- 3단계 고급 옵션 구성
=> 로드밸런싱 : 로드 밸런서 없음
※ 뒤에 이어서 실습이 나옴!
3단계는 설정없이 다음 클릭
- 4단계 그룹 크기 및 크기 조정 구성
=> 원하는 용량 : 1
=> 원하는 최소 용량 : 1, 최대 용량 : 2
※ 원하는 용량 : 목표로 하는 인스턴스의 수
원하는 최소 용량 : 최소로 유지할 인스턴스의 수
원하는 최대 용량 : 크기 조정 정책에 따라 최대로 늘일 수 있는 인스턴스 개수
=> 크기 조정 정책 : 없음 -> 대상 추적 크기 조정 정책으로 변경
=> 크기 조정 정책 이름 : Scale Group Size
지표 유형 : 평균 CPU 사용률(기본값)
대상 값 : 50 -> 80으로 변경
변경값 적용을 위해 '다음' 클릭
- 5단계 알림 추가
=> 설정 없이 '다음' 클릭
- 6단계 태크 추가
=> 태그 추가 버튼 클릭
=> 키 : Name, 값 - exercise-group
설정을 완료하였으면 '다음' 클릭
- 7단계 검토
=> 정보 확인 후 Auto Scaling 그룹 생성 버튼 클릭
============================================
EC2 인스턴스 -> 인스턴스 선택하면
exercise-group 이라는 이름의 인스턴스가 동작 중!
=> Auto Scaling Group의 원하는 용량이 1 이기 때문!
만약, exercise-group 인스턴스가 동작하지 않게 하려면 Auto Scaling 그룹의 용량을 원하는 용량 : 0, 최소 용량 :0, 최대 용량 : 0으로 설정
!
=> Auto Scaling 그룹 -> EXERCISE-GROUP 선택 후 편집
=============================================
[ Auto Scaling 동작 확인!]
- cpu의 사용량을 높이는 stress 라는 패키지를 exercise-group 인스턴스에 설치
- stress 프로그램 동작
- cpu 사용량이 80%가 넘어서면 최대용량 2 설정값에 의해 exercise-group 인스턴스가 하나 더 생성!!
원격 접속 프로그램 접속
- exercise-group IPv4 주소를 사용
sudo amazon-linux-extras install epel -y
=> 외부저장소에서 패키지를 받을 수 있도록 설정
sudo yum install stress -y
=> cpu의 사용량을 강제로 높이는 stress 패키지를 설치
stress --cpu 1 --timeout 600
=> cpu 하나를 600초(10분) 동안 100%로 만듦
=> 10분을 설정하는 이유는 사용량 지표를 5분(300초)에 한 번씩 모니터링을 하여 검사하기 때문
=> Auto Scaling 생성 시 [세부 모니터링 활성화] 옵션을 활성화하면 인스턴스가 1분마다 지표를 보냄. 단, 이 설정은 추가 비용이 발생!!
stress 프로그램(패키지) 동작 시킨 후 5 ~ 10분 정도 기다리면 exercise-group 인스턴스가 하나 더 생겨남!
그 이유는 모니터링 시점(5분에 한번씩)에 stress 프로그램에 의해 cpu가 80% 넘어선 100%로 유지되기 때문!
10분 동안 동작하던 stress 프로그램이 종료되면 다음 번 모니터링 시점에서 exercise-group 인스턴스 하나를 종료(삭제) 시킴
위의 과정이 모두 사람이 직접 하는 것이 아니라 자동으로 이루어지는 과정!!
=> Auto Scaling
=============================================
[ Auto Scaling AMI & 스냅샷 제거 ]
1. Auto Scaling 삭제
□ EXERCISE-GROUP 체크 후 작업 -> 삭제
2. 시작 템플릿 삭제
- exercise-launch-template 선택, 작업 -> 템플릿 삭제
3. AMI & 스냅샷 삭제
이미지 -> AMI -> AMI ID 확인 -> 작업 -> AMI 등록취소 시 ▶ 연결된 스냅샷 삭제 펼침
※ AMI 등록 취소를 해도 연결된 스냅샷은 같이 삭제가 되지 않음!!
따라서 스냅샷 항목에서 따로 지워야 함!
'AWS' 카테고리의 다른 글
[AWS] Auto Scaling ② - 동작 확인 (0) | 2023.12.28 |
---|---|
[AWS] Auto Scaling ① - 생성·절차 (0) | 2023.12.28 |
[AWS] 교재 ec2 인스턴스 작성 ③ (1) | 2023.12.26 |
[AWS] 교재 EC2 인스턴스 작성 명령어 모음 ③ (0) | 2023.12.26 |
[AWS] 교재 EC2 인스턴스 작성 명령어 모음 ② (0) | 2023.12.26 |