강남의 클라우드 회사들.. 테크 기업 맞나?
한국뿐만 아니라 전 세계적으로 이제는 클라우드(Cloud) 가 대세다. 이런 대세속에서 특이하게도 한국은 아직 그 시장 크지 않다. 정확하게 말하면 클라우드로 전환해서 쓰는 비율이 잘해야 15% 정도. 아직도 랙 서버 기반의 IDC 서버를 많이 쓴다.
최근에 금융권에서도 공공 클라우드 사업자를 선정해 클라우드로 전환하는 사례가 있다. 대표적인게 국민카드. 리브메이트 앱이 아마도 클라우드로 구축된 사례일 것이다.
이렇게 큰 규모에 경우에 클라우드 사업을 위해서는 클라우드를 잘 아는 기업을 선정해서 기술지원을 받는다. 국내에 클라우드는 AWS, Azure, GCP 삼파전인데 이들 글로벌 클라우드 회사에 기술을 가져다 다른 기업에 기술지원과 전환작업을 해주는 회사들이 존재하는데 그런 회사를 MSP 회사라고 한다. 이런 MSP 회사들 중에 한국에서는 대표적인 회사 두 회사가 있는데 강남에 있다. 신기하게도 한 두블럭이면 갈 수 있을 정도로 인접해 있다.
국내 금융권에서도 클라우드를 사용하고 하는 움직임이 있기 때문에 클라우드 엔지니어에 대한 수요가 상당하다. 문제는 이런 수요가 많은 만큼 그러한 기술을 지원해줄 사람들은 많이 없다는데 문제가 있다.
그런데, 사람이 아무리 없기로서니 아무나 다 뽑아서 프로젝트 매니저로 보내는 일은 없어야 하지 않을까? 프로젝트 매니저로 온 사람이라면 적어도 프로젝트에 대해 기술적 방향성이나 제안등을 할 수 있을 정도는 되어야 하는데 AWS EC2 가 뭔지도 모르거나, 그러다보니 전체적인 서비스를 서로 엮어서 전체적인 시스템을 만들어내는 아키텍쳐에 대한 지식도 없는 사람이 프로젝트 매니저를 하는 건 문제가 있다.
그런 기술적인 숙련도가 없는 사람을 그것도 강남에 클라우드 회사에서 정규직으로 뽑아놓고 현장에 뿌리고 있는데, 이런 현장에서는 매니저라는 사람의 사고 방식은 대부분 다음과 같다.
나는 프로젝트 매니저다. 기술은 잘 몰라도 내가 하라고 하면 너는 해야한다. 그러라고 돈주고 뽑은거다.
적도 프로젝트 매니저라면 몇년씩 클라우드 경력을 쌓은 사람에 대한 예의라도 있어야 하는데, 거꾸로 내가 책임자니까 무소 불휘의 권력을 쥔것마냥, 고작 한다는 것이 엑셀 파일에 자원 현황이나 기록하고 있고 그것을 잘 정리하지 않는다고 닥달하는 모습을 보여주는게 최근에 벌어지는 일이다.
클라우드 본사가 만든 한심한 아키텍쳐
강남에 이름 있다하는 클라우드 회사가 만들었다는 아키텍쳐에 일부다. AWS 클라우드 다이어그램인데, Public Subnet 이 두개, Private Subnet 그 뒤에 1개 있다.
EndPoint 를 NLB 가 받고 이것을 뒤에 Public Subnet 에 있는 웹 방화벽이 받고 있다. 웃기지 않나? 여기서 이것이 왜 문제가 되는지를 이해하지 못한다면 심각하게 자신의 능력을 한번 되돌아 봐야 한다.
웹 방화벽은 그야말로 웹에서 들어오는 패킷에 대한 보안검사기능을 한다. L7 패킷 검사가 가능한 장비. 그런데, 저렇게 Public Subnet 에 그것도 EIP 를 박아서 놔두면 십중팔구 DDOS 공격 대상이다. AWS 의 Shield 서비스를 해준다고 하지만 차라리 Private Subnet 구축하는게 훨씬 낫다. (AWS Shield Standard 는 EC2 인스턴스에 대한 DDOS 방어를 해주지 않는다. Advanced 는 가능하지만 한달에 3,000 달러다) 이렇게 웹 방화벽을 Public Subnet 에 올려놓고 구축하는 사례는 본적이 없다.
문제는 또 있다. 웹 방화벽은 EC2 인스턴스로 구축된다. 이 웹 방화벽은 뒤에 ALB 에 연결되는 구조다. 웹 방화벽이 ALB 의 도메인으로 연결이 된다고 하더라도 어짜피 커넥션은 IP 기반이 될 것이다. ALB 는 고정IP 가 아닌 유동 IP 이며 늘었다 줄었다 하게 된다. 웹 방화벽이 이렇게 유동적으로 변경되는 IP를 탐지해서 연결 설정을 해주면 고맙겠지만 안타갑게도 이중화를 위한 IP 2개만 들어간다.
십중팔구 트래픽일 몰리게 되면 방화벽이 뒤에 ALB 로 보내는 트래픽 양이 늘어날텐데 ALB 에서는 IP 를 늘리겠지만 그렇게 해봤자 아무런 소용이 없게 된다.
또 다른 문제는 EndPoint 로 NLB 를 사용했다는 데 있다. NLB 는 L4 계열이다. 네트워크 라우트 경로 설정에 유용하지 HTTP 기반의 연결에는 부적합하다. 가장 문제가 되는 것이 AWS WAF 문제다. AWS WAF 서비스는 Web 방화벽이다. Web 은 L7 기반인데, 당연히 NLB 에 연동될 수가 없다.
AWS WAF 의 경우에 ALB, CloudFront 등에 연동 된다. 요 몇일 AWS WAF 설정해야 한다고 난리던데, 그러면 WAF 를 EC2 웹 방화벽 뒤에 있는 Private Subnet 의 ALB 에 붙일 수 밖에 없든데, 얼간이 같은 설정이다. 앞에 이미 EC2 기반의 웹 방화벽이 일을 하고 있는데, 뒷단에 WAF 를 붙여서 뭣하게?
수준이 너무나 낮다
적어도 클라우드 MSP 사업을 영위하고 있다면, 적어도 프로젝트 매니징 능력이라도 있는 사람을 현장에 투입하고 아키텍쳐 또한 유기적인 조합이 가능하도록 해야 할 것이 아닌가?
더 크게 생각해볼 문제도 있다. 최근에 공정한 경쟁에 대한 관심은 우리 사회에 큰 논란을 낳기도 했다. 인국공 문제가 그런 것이다. 인천국제공항에 비정규직의 정규직화는 정규직 직원들에 대한 불공정 시비를 불렀다. 불공정한 경쟁으로 특정한 자리, 위치에 올라서 다른 사람을 부리는 것을 우리사회는 용납하지 않는다.
이번 프로젝트를 하면서 느낀 것이 바로 저러한 것이였다. 프로젝트 매니저라고 하는 사람은 아무것도 몰랐다. 그져 AWS 라는 것이 무엇이다 정도. PC 를 사용자중에서도 파워유저급과 비교될 정도 수준 일 뿐이다. 그런 사람이 프로젝트 매니저를 한다는 것이 그져 기술을 아는 사람을 대려다가 엑셀 파일이나 작성하며서 다 됐냐 안됐냐 만 따지는 것이 과연 공정한 것인가?
이런식이면 대학교를 막 졸업한 컴퓨터 관련 전공자를 앉혀놔도 될 정도다.
강남에 클라우드 회사는 테크 회사다. 본인들이 외주 업체 직원을 뽑을때에 기술이 낫을 거 같은 사람들이 많으니 기술면접을 엄격하게 진행하는 마당이면 적어도 본인들 회사 직원들 또한 그런 기준으로 뽑아야 하지 않겠나…..
Best Practice
클라우드를 하다보면 이런 말을 자주 듣게 된다. 한국어로 번역하자면 “모범 사례” 인데, 클라우드 아키텍쳐에 대한 모범사례를 다양하게 익히는 것이 좋다. 아키텍쳐라는 것이 정답이 없다보니 그나마 좋다라고 하는 것을 익히는 것이다.
여러 엔지니어, 특히나 강남에 클라우드에 다닌다는 사람들과 이야기를 하다보면 너도나도 모범 사례들을 이야기 한다. AWS 의 경우에 Re:Invent 행사에서 많이 다뤄지기도 해서 많이 알려진 것들도 많다. 하지만 이런 사람들이 도맡아 하는 기업의 아키텍쳐는 모범 사례는 고사하고 기초적인 3-Tier 모놀리틱 아키텍쳐를 클라우드로 구현하지 못한다.
대표적인 사례가 AutoScaling Group 사용을 하는 비율이 많지 않다. 금융권은 전멸이고 그나마 좀 사용한다는 곳이 쇼핑몰 들이다. CloudFront 를 EndPoint 로 하고 Static 파일은 S3, Dynamic 은 ALB 뒤에 EC2 서버로 서빙하는 구조를 가지는 아키텍쳐를 찾기도 힘들다.
HTTP 헤더 조작을 많이 한다면 이야기가 달라지만, 아직도 Apache + Tomcat 혹은 Nginx + Tomcat 으로 서버를 구성하는 곳도 지천이다. ALB – Apache – Tomcat 구조. Apache 에서는 mod_jk 로 톰캣 연동…. static 파일 서빙을 위해서 Apache 를 넣었다는 건데, 바보 같은 짓이다.
널리고 널렸다. 왜 이렇게 됐을까? 고객이라고 우쭈쭈쭈 고객님 말씀이 옳습니다 하는 바람에 이런 멍청한 구조가 나온 것이다.
기술의 발전은 인간을 이롭게 하는데 있다. 이것은 엔지니어에게도 그대로 적용된다. 왜 클라우드를 사용하는가? 기업의 대답은 “돈” 이겠지만 나의 대답은 “인간을 이롭게 하기 위해” 그냥 직접적으로 말한다면 “야근을 하지 않기 위해” 서다. 클라우드를 사용한다면 언제든지 Continuous 한 서비스 운영이 가능해지는데, 죽어도 이것을 하면 안된다고 하는 고객들을 설득할 마음조차도 없는게 국내 MSP 업체들이다.
그런 와중에 능력도 없는 프로젝트 매니저라니…. 대가리 박고 반성해라.. M사..