AWS 로드밸런서 사용법, AWS AutoScaling이란?, 용법
ec2 - 로드밸런서- 로드밸런서선택 - Application Load Balancer 생성 - vpc , 매핑
로드밸런서 만들때는 필요한 보안그룹을 만들어야해서 설정해줄거임.
인바운드 규칙 설정
보안그룹 설정하고 다시 로드밸런서 설정으로 돌아와서 선택
* 보안그룹이 안뜬다면 보안그룹 옆에있는 새로고침 누르기
리스너 및 라우팅 설정
그룹을 설정해줘야하는데 이때 그룹이란, 누구누구한테 로드밸런싱을 할지 묶어주는게 그룹
대상 그룹 생성 클릭 해서 vpc 확인후 선택
아래에 보류중인것으로 포함 클릭 - 대상그룹 생성하면됨
다시 돌아와서 새로고침 한번하고 대상그룹 선택 후 로드밸런서 생성
* vpc 들어가서 작업 누르고 DNS 설정 둘다 켜져있는지 확인
로드밸런서가 활성화 됐으면 원래 쓰던 myvpc-sg 클릭
인바운드 규칙 편집 - 새 규칙추가 -
새로 만든 보안규칙 선택
- 이 보안규칙대로만 접속을 받겠다는것.
로드밸런서 DAN 복사해서 웹 브라우저에 붙여넣고 새로고침 할때마다
web01, web02, mydb에 접속이 되는걸 볼수있다.
이제 cpu부하테스트 할거임
stress 라고하는 패키지를 깔아서 테스트 할거니까
- web02에서 stress 깔아주기
yum -y install stress
-stress 버전 확인
stress --version
이미지 만들거니까 인스턴스로 가서 web02 중지하고 이미지 생성
이제 추가 설정을 할것이다.
Amazon Simple Notification Service - 주제 - 주제생성
구독생성 - 프로토콜 (이메일) - 이메일 입력후 구독생성
이메일 들어가보면 메일이 와있을건데 confirm subscription 클릭
이미지 다 만들었으니까 ec2에서 web02 인스턴스 시작 누르기
알람받기 설정하기.
web02 작업 - cloudwatch 경보관리 - 경보생성 - 경보알림에서 위에서 만든 주제 선택
5분마다 알람주겠다라는거임 cpu 부하테스트 할거니까 유형도 cpu 선택하고 생성
다시 터미널로 접속할건데,
중지했다가 다시 시작했으니까 ip 바뀌었을거니까 다시 접속
- stress가 5분 안팍이면 알람이 안오니까 timeout을 500초로 해서 stress 주기
stress --cpu 1 --timeout 500
좀 시간 지나서 cloudwatch 가면 ec2가 화나있음
Auto Scaling을 해주면 부하분산을 해주는데 안해줬으니까 지 혼자 견디고 있는것..
견디다 견디다 죽을수도있음
그래서 Auto Scaling을 해볼거임.
템플릿 만들기
ec2 페이지 - 시작 템플릿
템플릿 : 설정정보를 저장
이미지 : 모든것을 저장
차이가 있음
시작 템플릿 생성 - Auto Scaling 지침 체크
내가 서버를 만드는게 아니라 얘가 서버를 만들어줄거기때문에 이미지를 만들어줘야함 AWS에서 주는거 써도 되긴하는데
아무것도 안되어있으니까 내가 세팅해준 이미지 선택
인스턴스 유형 선택 - 키페어 선택 (ssh 접속해서 부하줄거니까) -보안그룹 선택 후 템플릿 생성
ec2 로드밸런싱 메뉴 - 대상그룹 클릭 - 대상에서 아까 만든 인스턴스 3개 등록 취소
vpc - 서브넷 들어가서 web01,web02 둘다 퍼블릭 IPv4 주소자동할당 되있는지 확인 -안되어있으면 편집해서 선택
퍼블릭 ip를 안주면 외부에서 못들어옴 (고립)
7단계라 번호로 정리하겠음
1. ec2 - Auto Scaling 그룹 - 그룹생성 - 아까 만든 템플릿 선택
2. vpc 선택 - 가용영역 2개 다 선택 (가상서버들이 확장되는 영역 )
3. 기존 로드밸런서 연결 선택 - 대상그룹선택에서 아까 만든 로드밸런서 선택 - 상태확인 시간을 100초로 수정 ( 부하확인 시간 100초가 넘었는데도 부하다? 그럼 그때 서버증설 즉 테스트 하려고 하는거임 진짜 부하인지 잠깐인지 하는거 보는거임 )
cloudwatch 내에서 그룹지표 수집 활성화 해야지 cloudwatch에서 모니터링 가능하니까 선택
4. 그룹크기 (가상서버의 숫자) 원하는 용량 2로 설정 - 최소용량 2, 최대용량 6으로 설정 (아무리 부하가 와도 6개 이상 증설 불가능)
Auto Scaling 종류
이벤트 기반 : cpu가 얼마이상 되면 서버 증설
시간기반 : 일정을 딱 정해줌 ex) 교육서버같은거는 개강일에 부하가 패턴처럼 진행되니까 그때만 오토스케일링 켜지도록 설정하는거
대상 추적 크기 조정 정책 선택 - 인스턴스 워밍업 100초로 설정
5. 알림추가 - 아까 만든거 클릭
6. 태그추가 (이름)
7. 이건 그냥 검토라 생성하면 된다.
생성후에 ec2 인스턴스 클릭해서 보면 서버가 자동으로 생성되는걸 볼수있음
인스턴스 - Auto Scaling서버 중에 하나를 종료하고 조금 기다리면 또 다시 생겨남
아까 최소설정한게 2여서 하나가 장애가 생겨도 다시 생겨나는것. ( 컨테이너도 같음 )
이제 부하를 줘서 자동으로 늘어나는걸 볼거임
만들어진 서버 ssh 접속하기
얘네는 stress 깔려있는 이미지 따서 만든거라 깔려있음 이미
stress --cpu 1 --timeout 500
둘다 스트레스 주고 기다려보면
원래 두개 말고 더 늘어나는걸 볼수있음 최대 6개까지만 늘어나고 이메일도 온다
좀 더 기다리면 줄어들기도 함
개별서버를 닫으면 증식 되는데 그룹을 삭제하면 아예 삭제됨
모니터링해보기 ~-~