코로나 백신 접종 예약사이트는 최초에 대기열 시스템이 적용되어 있어서 선착순 접속을 해야한다. 전국민이 동시에 접속 시도하기 때문에 대기 시스템은 어쩔수 없는 선택이다. 동시에 많은 사람이 접속하면 동시성 문제 때문에 불만이 터저나올 수도 있다. 한 병원에서 하루에 100명만을 수용할 수 있는 여건이라고 할때, 순간 150명이 같은 병원을 선택하면 50명은 갑자기 "이 병원에는 예약할 수 없습니다"와 같은 오류때문에 혼란을 겪을것이다. (물론 해결은 할 수 있지만.. 300만개의 웹소켓을 만들어서 실시간으로 병원정보를 뿌리기도 뭣하다. 병원을 클릭하는 순간 홀딩이 걸리게 할 수도 있겠지만 홀딩 때문에 오히려 실제 신청하려 했던 사람이 불편을 겪을수도 있다) 서버가 버벅거리고 느려지는것은 덤일것이다.

대기 시스템으로는 netfunnel을 사용한다. 우선 netfunnel의 공급가격을 보자. 해당 가격표는 https://www.ncloud.com/marketplace/netFunnel 에서 찾았다. 여기서 월 구독료는 3개월 구독료가 아니고, 1달 단위 구독료다. 그렇기에 월구독료 * 3개월 = 고객공급가로 봐야한다. 이번 백신 예방접종 신청은 하루씩 끊어서 154만명이 신청해야 하는 상황이었다. 그렇다면 Enterprise Edition의 Extreme 제품보다 더 큰 구성을 잡았을것이다. 널널하게 100만명 이상을 잡았을 가능성이 높다. 그러면 1개월에 거의 3천만원 가까이 사용했을거라 추측할 수 있다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2bdc8f9a-e015-4111-9808-9d2b02b5b240/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2bdc8f9a-e015-4111-9808-9d2b02b5b240/Untitled.png

3천만원? 그정도 값어치를 한다면 문제가 없다. 조금 비싸더라도 인정성을 위해 좋은 제품을 사용한다면 누가 말릴것인가. 그러나 값어치를 하는 제품은 아닌것 같다는게 내 생각이다. netfunnel을 뜯어봤더니 조금만 웹개발에 손을 대봤다면 대기열을 모두 우회할 수 있겠다는 생각이 들었다. (우회하는 방법을 다루는 글은 아니기에, 관심이 있다면 https://libsora.so/posts/bypass-netfunnel/ 을 읽어보길 바란다. 그러면서 단가 계산이 너무 비싼것 아닌가 생각이 들었다.) 또한 처리성능이 저렇게 밖에 안나오나? 생각이 들었다.

외부에서 몇가지 시도하면서 각 노드는 분리되어 있다는것을 발견했다. 즉, 공유된 풀을 사용하지 않는다. 이는 각 서버간 synchronize할 영역이 매우 적다는 것을 뜻한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fce5fc0d-043b-4380-b4ec-f59ac04b745b/Untitled.png