클라우드/클라우드 Application Developer

[클라우드 Application developer] 1주차 2. Azure App Services

-운- 2023. 4. 21. 03:12

 

Azure web App은 Web Application을 바로 실행할 수 있는 서비스이다.

1차시 때 웹사이트에 접속을 하였기 때문에 트래픽이 올라간 것을 볼 수 있고, 나중에 실제로 운영할 때는 이러한 지표들을 잘 관리하는 것이 중요하다고 볼 수 있다.

 

Deployment slots

이제 Web App에서 가장 기본적인 스택인 Deployment slots에 대해 알아볼 것인데

앱 서비스를 만들었을 때 Deployment slots라는 메뉴가 있는데 이를 눌러보면 아까 만든 하나의 앱 서비스가 100%의 트래픽을 감당하고 있는 것을 볼 수 있다.(하나밖에 없기 때문에)

 

여기서 상단의 Add slot을 눌러주고

이름을 설정한 뒤 아까 만들었던 사이트인 labtest0000의 세팅과 똑같이 하여 Add한다.

 

이러한 작업을 하는 이유는 두 App Service에서 운영과 개발의 역할을 나누기 위함인데, 하나의 App Service를 만들 때 일종의 클론을 만들어 개발하고, 이를 원래의 App Service와 Swap하는 과정을 반복하는 것이다.

 

 이렇게 Swap하면 이미 테스트가 끝난 서비스를 바로 운영계로 옮기기 때문에,  문제 없이 안전하게 서비스를 전환할 수도 있고 미처 전환하기 전에 발견하지 못했던 문제가 있다 라고 하면 다시 한번 스왑핑하게 되면 문제 없이 사용할 수도 있다.

 

Auto Scaling

클라우드 컴퓨팅의 대표적인 장점으로 필요에 따라 서비스를 빠르게 확장하거나 축소할 수 있는 유연성을 들 수 있다. 오토스케일링(Auto Scaling)은 클라우드의 유연성을 돋보이게 하는 핵심기술로 CPU, 메모리, 디스크, 네트워크 트래픽과 같은 시스템 자원들의 메트릭(Metric) 값을 모니터링하여 서버 사이즈를 자동으로 조절하는 기능이다.

 수많은 트래픽, 그리고 사용자의 리캐스트를 다 감당할수 있게끔 가변적으로 용량이 늘었다, 줄었다 하는 사이트를 만들어야 되겠다 라고 하면, 바로 이 오토 스케일 기능을 사용야 한다.

 

Azure에서 용량을 늘리는 방법과 Auto Scaling에 대해 살펴보자.

 

먼저 Scale up은 서비스의 용량을 비슷한 사양으로 선택하여 용량을 키우는 것을 말한다. Azure에서 자주 쓰이는 것은 Scale up보다는 Scale out이다.

 

 

Scale out에 들어가면 두가지 선택지를 볼 수 있다.

먼저 Manual scale은 Instance count 값을 그냥 늘려만 주면 그대로 서비스의 용량이 늘어난다.

8로 늘리면 원래의 8배로 늘어나는 것이다. 이것이 메뉴얼로 용량을 늘려주는 것이다.

이는 필요 용량이 예상이 될 때 사용하는데, 예상이 안되면 Cutom autoscale을 사용하여주면 된다.

 

Custom auto scale은 metric으로 용량을 늘리는법과 instance count로 용량을 늘리는 법이 있는데,

instance counts는 그냥 아까와 같이 이 값을 늘려주면 되는 것이다.

metric으로 늘리는 법은 먼저 Minimum과 Maximum, Default를 설정해준 뒤

자동으로 용량이 늘어났다, 줄었다하는 기준을 설정해주어야 하는데,

이는 Add a rule을 클릭하면 설정할 수 있다.

 

이제 용량이 바뀌는 Rule을 설정할 수 있다.

위를 보면, 현재의 CPU Percentage가 나오고 몇 퍼센트가 넘어갈 때 용량이 늘어날 지 설정해줄 수 있는 모습을 볼 수 있다. 위는 70%로 설정되어 있는데 이를 줄일 수도, 늘릴수도 있는 것이다.

또한, 몇 초 단위로 이를 확인할 지도 설정해줄 수 있기 때문에 만약 티켓 사이트처럼 사용자가 빠르게 몰린다면 이 값을 줄여 빠르게 용량이 늘 수 있도록 하면 되는 것이다.

내가 봐도 정말 쉽다!

 

Wep App으로의 코드 배포

Wep App에 코드를 배포하고 싶다면 Deployment Center에서 해결할 수 있다.

Deployment Center에 들어가서 Source면 어디에서 코드를 가져올 것인가를 선택할 수 있다.

 

이는 GitHub를 선택한 것인데, 사용하고 있는 깃허브 사이트가 자동으로 올라와있고, 사용하고 있는 사이트, 계정 등을 바로 선택할 수 있는 모습을 볼 수 있다.

그리고 새로운 Workflow가 발생할 때마다, 즉 GitHub에 무언가를 Push할 때마다 자동적으로 그 내용들이 웹 서버에 배포되도록 할 수 있다.