Azure Application Gateway를 사용중이거나 생성하는 과정에서 마주하는 몇가지 선택지가 있다.
이번 글은 위의 4가지 중 아래 두가지 3번과 4번에 대해 알게된 부분을 기록하려 한다.
위의 1번과 2번의 간략한 차이점만 짚고 넘어가자면,
클라우드 플랫폼들이 7계층 LB를 구현한다는 것은 어떠한 VM 위에 7계층 LB 역할을 하는 서비스를 띄워놓고 우리가 포탈에서 설정값들을 바꾸며 편하게 사용할 수 있도록 추상화 해놓았다고 생각하면 이해가 쉽다. 즉, 이 서비스는 VM 또는 container 형태로 돌아가고 있을 것이며 이 VM이나 container는 spec을 가지고 있을 것이다. 이 spec을 넘어서는 상황에는 일반적 scale up 또는 out을 선택해야 한다. scale up은 보통 down time을 수반하기에 scale out을 많이 사용한다. 우리들의 Application Gateway 또한 그러하다.
Application Gateway는 여기서 2가지 지표를 사용한다.
Capacity Unit

Compute Unit

위 부분이 넘어갈 때, Autoscaling을 설정해 놓았다면, scale out이 진행된다.

저 위에 설정은 심지어 0도 가능하다. 0개면 서비스 안되는거 아냐?
이 docs 문서를 보면, 자세히 나와 있지만 조금 포인트만 모아보자면 아래와 같다.
이러한 포인트들은 트래픽 유실에 대하여 tracking 하다가 scale in 또는 out은 어떻게 컨트롤 되고 있을까? 라는 의문에서 출발하였다.
Capacity Unit들을 담는 그릇정도로 보면된다. 물론 비용측면에서는 Capacity Unit 단위로 계산 되기에 전부 Capacity Unit으로 표기하고 쓰면 되지 않냐? 라고 할 수 있지만, 위의 메뉴 중 Autosclaing 옵션이 아닌 Manual로 사용했을 때는 아래와 같은 문제가 발생 될 수도 있다.
Autoscaling을 사용하였을 때

Manual로 instance 개수를 3개로 고정 시켰을 때

위와 같이 Autoscaling을 사용하였을 때는 instance를 늘려서 Capacity Unit을 손쉽게 배포하여 사용할 수 있지만, Manual로 정하였을 때는 기존 instance에 배포 가능한 만큼만 하고 더 이상 배포를 못하는 경우도 발생할 수도 있다. 즉, instance에 더 이상 배포가 불가능한 상태로 트래픽이 늘어난다면 응답 latency가 길어질 수도 있다는 말과 같다.