백엔드

[Microsoft Azure] 애저 Azure Scale Sets 구축하기 (오토 스케일링)

음그냥 2023. 12. 22. 01:45
728x90
반응형
SMALL

이번 포스팅은 애저에서 오토스케일링을 구축할것임

 

 

오토스케일링 : 컴퓨팅 리소스 측면에서 시스템이 자동으로 규모를 조절하는  기능임

오토스케일링 시스템을 사용하면, 리소스가 필요할 때 자동으로 추가되고 변화를 거듭하는 사용자 요구에 맞게 규모를 조절할 수 있다

 

=> 쉽게말하면 가상머신을 자동으로 만들거나, 자동으로 삭제해주는 기능임

 

애저는 오토 스케일링이라는 단어가 없어서 Scale sets라고 애저 검색창에입력하면된다

줄여서 VMSS라고 부름 (Virtual Machine Scale Sets 한국어로는 가상머신확장집합 ㅋㅋ)

 

 

 

 

 

< Scale Sets 만들기>

VMSS는 가상머신을 자동으로 만들던가 자동으로 삭제해주는 기능임

가상머신만들때랑 비슷함

 

 

가용성영역 : 없음으로 해도상관없음

오케스트레이션모드- 균일성 : 자동화-> 최적화된 형태로 가상머신의 갯수를 유지하겠다

 

 

 

스폿탭은 할인관련 탭이라서 패스~

 

 

 

디스트유형은 표준HDD 설정후(과금때문에 ㅋㅋㅋ), 키관리는 플랫폼 관리형 키로 설정후 다음을 클릭한다

 

 

 

 

 

 

 

 

 

 

서브넷축소할거면 가상네트워크만들기 버튼클릭해서 축소가능

축소할때 10.0.0.0/24 으로 하면됨

 

네트워크 인터페이스에서 연필버튼을 누르면 인터페이스 수정가능함

 

서브넷을 보면 기본적으로 사용자가 폭증할것을 대비해서 기본값 자체가 서브넷을 크게 잡아놓아졌음

- 공용인바운드포트 : 웹서버니까 80포트를 선택해야하고, 추가로 SSH로 접속위해 22번포트도 열어놓음

- 공용IP주소 : 요청이 들어오면 서버가 사용자에게 전달하는 방식으로 사용하기위해서 공용IP는 사용으로 체크

 

공용IP가 있어서 스케일셋이 공용IP통해서 웹서버로 이동시켜줄수있는것임

 

 

설정후, 부하분산옵션을 만들기위해 Azure Load Balancer선택후 

부하분산장치 만들기 버튼을 클릭하면 오른쪽탭에 창이 뜨는데

나는 방통대 실습이라서 아래처럼 설정해주겠다 (나는 실습이여서 NAT안씀)

유형은 웹서버의 요청을 받아야하기때문에 공용으로 두고,

80포트로 받아서 80포트로 보낼거라서 위처럼 설정

 

 

 

 

 

 

 

 

확장중은 오토스케일링을 하기위해서 오케스트레이션의 조건을 결정하는 부분임

- 초기 인스턴스 수 : 가상머신확장집합의 백엔드풀로서 몇개의 가상머신이 최소한있어야하는지 
  ex) 2개면 2개를 새롭게 만들어짐

- 크기 조정 정책 : 일단 수동으로 설정후 배포후에 확장중탭 들어가서 자동으로 바꿀수도있음

- 축소 정책 - 기본값 : 균일한 조정을 해본다음, 최상위의 가장 큰 인스턴스 ID를 먼저 삭제하는 방식
                   - 나머지 : 거의 사용안되는 VM은 자동삭제

 

 

 

 

 

 

 

 

관리는 보안관련 부분임
- 오버프로비저닝 : 원래조건보다 과도하게 가상머신을 만듦
(생성과 삭제 횟수줄여서 순식간에 폭증 축소 하는 형태를 대비해서 준비할수있게 해줌)

 

실습에서는 사용안하겠음

 

 

 

 

 

 

어플리케이션이 정상 동작하는지 모니터링하기위해 체크해주었음

배포후 우측에서 인사이트탭에서 사용버튼 클릭해서 활성화할수있음

 

 

 

 

 

 

 

 

 

고급탭은 클라우드 init 적용하는 부분임

사용자 지정 데이터 부분에 초기화할 소스를 넣으면 됨

DB_HOST : 애저 db 서버이름

DB_USER : 애저 서버 관리자 로그인 이름

DB_PASSWD : 비번

DB_NAME : 사용할 이름

 

 

내가만든 애저 db에서 개요탭을 들어갔을때 뜨는 오른쪽 정보를

클라우드 init부분에서 DB_HOST , DB_USER , DB_PASSWD 부분에 넣어주면됨

 

 

 

 

 

쭉쭉 만들고 다음다음 눌러서 배포까지 완료하면 리소스들어가서 직렬콘솔들어가면 

자동으로 클라우드 init이 실행됨

 

 

 

 

< cpu상태에따라 추가적으로 가상머신 복제하기 >

확장 중 탭으로 들어가서 자동으로 바꾸고, 크기조건추가 버튼을 클릭해서 자세하게 설정가능함

 

cpu가 몇퍼센트 80퍼센트 이상이 되면 그때마다 추가적으로 자동으로 하나씩 복제하게 만들것임
- 크기조정모드 : 메트릭기준 크기조정선택
- 규칙 : 파란색 추가버튼클릭

    *클라우드 init하는데 시간걸려서 최대한 80퍼센트 이하로 잡는게좋음
    *기간 10분이면 10분에 한번씩 파악함
    *휴지기간 : 1개늘리면 무조건 5분이후에 생성가능
-인스턴스제한 : 최소2, 최대5로 하겠음

이름도 바꿔서 명확하게 구분해주는게 좋음

 

 

 

 

 

< 저장했는데도 수동크기조정으로 되버리는 오류 >

구독 - 리소스 공급자 - microsoft insights 가등록되어있는지 확인

microsoft insights 상태가 Unregistered 라면 등록버튼눌러서 등록해준후 다시 스케일셋에서 설정해준후 저장하면됨

위같은 경우라면 아래처럼 구독 - 리소스공급자에서 microsoft insights 를 등록눌러주면됨

 

 

 

VMSS를 만들자마자 자동으로 초기에 내가설정한만큼 가상머신 2개가 만들어지는거고,

순서 : 스케일셋 -> 로드밸런서 -> 백엔드풀아래에 있는 여러개의 가상머신으로 연결됨

 

=> 사용자가 폭증하면 VMSS(스케일셋)가 조건에 맞춰서 가상머신 복제해서 로드밸런서에 붙이거나, 사용자가 확 감소하면 사용하지않는 리소스를 자동적으로 폐기함

 

 

 

 

 

 

 

외부 -> 내부 : NAT

내부 -> 외부 : SNAT

 

정상적으로 내부IP만으로 작업가능하게, 내부의 공용 IP가 외부에 유출되지않게 만들어주게 하는게 기본적인 구성인데, 이렇게 만들려면 너무 복잡해져서 실습때는 이런식으로 안함

바람직한 아키텍처는 아래 링크클릭하면 나옴

 

 

내부아이피만 가지고있을때 아웃바운드트래픽이 정상 동작하지 않기때문에 어떤식으로 구성을 만들어야하는지 

내부->외부

https://github.com/jaehwachung/cloud_computing/blob/main/learning_handouts/VMSS_Outbound_Traffic(by%20checkpoint.com).gif

 

 

 

외부트래픽이 -> 내부로 들어올때 NAT가 되어서 내부로 들어와야 바람직함

https://github.com/jaehwachung/cloud_computing/blob/main/learning_handouts/VMSS_Outbound_Traffic_Reply(by%20checkpoint.com).gif

 

 

 

728x90
LIST