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) 클릭
타겟 그룹이 만들어졌다면 다시 로드밸런서 생성 화면(탭)으로 이동 대상 그룹 선택 오른쪽 새로고침 버튼 클릭 후 항목 선택하면만들어진 exercise-target-group이 보임! 선택 요약을 확인 후 맞다면 로드 밸런서 생성 버튼 클릭
화면 위의 생성 성공 메시지 확인
AWS Auto Scaling 그룹 생성
기존에 만들어진 Auto Scaling 그룹이 있다면 바로 실습 진행
없을 경우
2023.12.28 - [AWS] - [AWS] Auto Scaling ① - 생성·절차
참조
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 |