brunch

You can make anything
by writing

C.S.Lewis

by LS ELECTRIC Jun 20. 2022

아마존CEO는 왜 직원들에게 협박(?)메일을 보냈는가?

아마존 시작한 AWS, 마이크로 서비스 아키텍처 개념과 장점은?


2002년 아마존 CEO 제프 베조스는 아마존 온라인 서비스 구축 및 유지를 담당하는 직원들에게 무시무시한 메일을 한통 보낸다. 이 사내 메일에는 몇 가지 지시 사항과 함께 이를 지키지 않으면 해고시키겠다는 문구가 적혀있었다. 



1) 모든 팀은 서비스 인터페이스로 데이터와 기능을 공개하세요.

2) 팀들은 이 인터페이스로 통신하세요.

3) 직접 링킹, 다른 팀 저장소에 직접 액세스, 공유 메모리, 백도어 등, 다른 어떤 통신방법도 허용되지 않습니다. 네트워크를 통한 서비스 인터페이스 호출만 허용합니다.

4) 어떤 기술을 사용하는가는 중요하지 않습니다. HTTP, Corba, Pubsub, 커스텀 프로토콜 다 괜찮습니다.

5) 모든 서비스 인터페이스는 예외 없이 기초부터 모두 외부에서 사용 가능하도록 설계되어야 합니다. 즉, 팀들은 인터페이스를 외부 개발자가 이용 가능하도록 계획하고 설계해야 한다는 것입니다. 예외는 없습니다.

6) 이를 지키지 않는 사람은 해고될 것입니다.

7) 고맙습니다. 좋은 하루 되세요!


<제프 베조스의 2002년 사내 메일>



아마존의 모든 서비스는 규격화된 인터페이스를 제공해야 하고, 이것을 외부에서 이용할 수 있도록 해야 한다는 것이다. 제프 베조스가 얘기한 ‘외부에서 서비스를 이용할 수 있어야 한다’는 개념은 지금의 아마존 마이크로 서비스인 Amazon Web Service (AWS) 가 존재하게 한 핵심적인 기능이라고 평가받는다. 이를 통해 다수의 기업 오너들은 마이크로 서비스가 돈이 된다는 것을 인지하게 되었고, 마이크로 서비스는 IT 업계를 강타하게 된다. 



#AWS 란? 

아마존에서 제공하는 클라우드 서비스이다. 멀리 떨어진 곳에서 서버를 원격으로 빌려 사용할 수 있는 서비스로써, 아마존은 많은 기업들이 클라우드 서비스를 인지하고 적용하는데 기여한 선두 업체이다. 


대세라는데… 마이크로 서비스는 뭔가요?


마이크로 서비스 개념

마이크로 서비스는 이미 많은 기업에서 채택하고 있는 IT 아키텍처이며, 무수히 많은 언론에서 다루어진 소프트웨어 개발 기법이지만 정확하게 한 문장으로 설명하려고 하면 어려움을 느끼게 된다. 마이크로 서비스는 무엇이며, 기존의 아키텍처와 어떤 부분이 다른 것인지 알아보고자 한다. 


마이크로 서비스에서 ‘서비스’란 개념은 고객에게 비즈니스 기능을 제공하는 단위이다. 마이크로 서비스는 고객에게 제공하는 기능들을 하나의 서비스보다 작은 기능별로 잘게 쪼개어 구현하고 운영되며, 잘게 쪼개진 각각의 서비스들은 서로 필요한 데이터들을 주고받으며 연동된다. 즉, 마이크로 서비스는 고객에게 제공되는 기능들을 따로 운영하되, 같이 사용하겠다는 것이다. 


조금 더 쉽게 설명하기 위해 예를 하나 들어보겠다. 온라인 쇼핑몰 사이트가 하나 있다고 생각했을 때, 온라인 쇼핑몰에는 여러 가지 기능들이 존재할 것이다. 


쇼핑몰에서 판매하고 있는 물건들에 대한 정보를 관리하고 있는 기능, 

고객이 물건을 장바구니에 담는 기능, 

장바구니에 담아 놓은 물건을 결제하는 기능 등등….


기존에는 하나의 홈페이지를 구성하기 위해 필요한 모든 기능들을 한곳에 몽땅 때려 박고 운영하고 있었고, 마이크로 서비스에서는 아래와 같이 각 기능별로 서비스를 구현하여 운영한다고 생각하면 될 것이다. 


마이크로 서비스 특징

마이크로 서비스는 마이크로 서비스 아키텍처(MSA)라 불리며, 공식적인 정의는 없다. 음... 단지 개발자와 조직 결정자들 간의 공감대가 있을 뿐이다.  



어찌 보면 두루뭉술한 설명으로 인해 이해가 어려울 수도 있지만 아래의 마이크로 서비스의 특징을 살펴보고, 핵심 개념을 곱씹어 본다면 이해가 쉬울 것이다. 


● 각 서비스들은 네트워크를 통해 통신할 수 있어야 한다. 

● 서비스들 간 데이터 교환 및 명령 전달이 가능해야 한다. 

● 각 서비스들은 독립된 배포 단위를 가진다.

● 각 서비스는 서로 의존적이지 않아 쉽게 교체가 가능해야 한다.

● 각 서비스는 기능 중심으로 구성되어 있어야 한다. 


조금 더 쉽게 풀어쓰면, 마이크로 서비스는 각각 단독으로 서비스가 가능해야 한 것이고, 서비스들끼리 필요할 때마다 데이터를 주고받을 수 있는 것이다. 


마이크로 서비스 아키텍처의 장점

마이크로 서비스 이전의 아키텍처를 IT 업계에서는 ‘모놀리틱 서비스 아키텍처’라고 부른다. 고객에게 제공되는 서비스들을 모두 하나의 덩어리로 운영한다는 의미에서 ‘모놀리틱(monolithic: 하나로 된 거대한 덩어리)’이란 단어를 사용하고 있다. 반면 마이크로 서비스 아키텍처에서는 고객에게 제공되는 각 기능별로 별도의 서비스로써 구현하고 운영한다. 아래 그림을 보면 그 차이를 명확하게 이해할 수 있을 것이다.  


<모놀리틱 서비스 아키텍처 vs 마이크로 서비스 아키텍처>


위 그림을 보면 알겠지만, 마이크로 서비스는 모놀리틱 서비스보다 더 유연하다. 필요에 따라 A 기능과 B 기능을 엮어서 새로운 서비스를 제공할 수 있으며, 그 외 다양한 조합이 가능하다. 새로운 비즈니스 모델이 도출되어 신사업 서비스가 필요할 때도, 마이크로 서비스를 통해 이미 구축된 서비스가 있다면 새로 개발하지 않고 가져다 사용하면 되는 것이다. 제프 베조스가 직원들에게 협박(?) 메일을 보낼만하지 않은가? 


이러한 마이크로 서비스의 장점은 크게 네 가지이다. 


1.오류가 전파되지 않아 단일 기능의 오류가 발생해도 고객에게 제공되는 전체 서비스는 멈추지 않는다.

2.단일 기능에 부하가 몰리지 않아 시스템의 성능 향상에 도움이 된다. 

3.여러 기능들을 조합하여 새로운 사업 모델이 도출될 수 있다. 

4.기존 시스템에 새로운 기능 추가가 용이하다. 


위의 장점들은 모두 기업의 수익과 연관되기에 마이크로 서비스의 적용은 기업에 굉장히 매력적으로 느껴질 수밖에 없다. 


실제로 배달의민족의 경우 갑작스러운 주문 수의 증가로 인한 불안정한 시스템 문제를 겪게 되었고, 이를 해결하기 위해 마이크로 서비스 아키텍처를 적용한 사례가 있다. 



#배달의민족 마이크로 서비스 적용 사례


1.배달의민족은 하기 두 가지 문제를 해결하기 위해 2015년부터 2019년까지 4년 동안 마이크로 서비스를 적용하였다. 

A.각 기능별 서비스 중 하나만 장애가 발생하더라도 모든 서비스가 중단되어 고객 컴플레인이 심각함

B.Legacy System의 구조적인 문제로 인해 기하급수적으로 증가하는 (2016년 8만 -> 2020년 200만) 주문수를 감당할 수 없음


2.관련 링크: www.youtube.com/watch?v=BnS6343GTkY 



진짜 필요한지 판단은 해보자!! 

좋다고 해서 무작정 마이크로 서비스를 적용할 수는 없다. 앞에서 언급한 배달의민족의 경우에도 마이크로 서비스 아키텍처를 적용하는데 4년이라는 긴 시간이 필요했다는 것을 잊어서는 안 된다. 

마이크로 서비스를 적용하기 전에 비용, 안정성, 생산성, 운영 측면에서 고민을 해보고 이득이 있는지 사전 판단을 해봐야 할 것이다. 


1.비용: 마이크로 서비스 아키텍처 적용 시 개발 리소스 비용 대비 얼마만큼의 사업이익을 기대할 수 있는가?

2.안정성: 시스템이 마이크로 서비스를 적용할 만큼 각 기능들 간의 복잡도가 높은가? 

3.생산성: 마이크로 서비스를 적용할 경우 지나치게 높아진 복잡도, 테스트 난이도로 인해 개발 생산성을 저해하는가?

4.운영: 마이크로 서비스를 개발, 운영할 만큼 각 기능별 조직이 준비되어 있는가?


그리고 굳이 마이크로 서비스를 적용하겠다고 전체 설계를 다 뜯어고칠 필요도 없다. 기업 내에 이미 운영되고 있는 서비스가 있다면 해당 서비스들 간의 데이터를 교환할 수 있는 인터페이스를 확보해 주는 것만으로도 마이크로 서비스라고 할 수 있을 것이다.  


LS ELECTRIC의 마이크로 서비스

다수의 제조 기반 기업들 또한 DT(Digital Transformation)를 위해 많은 노력을 꾀하고 있다. 과거 제조 물품의 생산성을 혁신하는 정도의 DT가 아니라 고객들의 Work Life에 직접적인 도움이 될 수 있는 화면 및 기능들을 제공하고 있는 것이다. 


LS ELECTRIC 또한 기존 조직, 프로세스 간 데이터 연계를 통해 고객 중심의 마이크로 서비스 디지털 제품들을 기획, 구현하고 있다. 고객에게 전력 기기 모니터링만을 제공하는 것이 아니라, 전력 데이터/공정 데이터/기기 상태 데이터 등을 엮어 비용 절감을 위한 솔루션을 제공하고, 전력 기기의 교체 시기 및 교체 컨설팅을 제공할 수 있는 서비스를 개발하고 있다.



데이터 연동 인터페이스 구축을 통해 각 조직 별로 운영되던 서비스들은 긴밀하게 상호 연동되고 있으며, 이를 활용한 새로운 디지털 제품들을 고객에게 선보이게 될 것이다. 기존의 모놀리틱 서비스들 간의 데이터 연동을 LS ELECTRIC만의 마이크로 서비스로 새롭게 구축해 나가고 있다. 이처럼 기존 모놀리틱 서비스뿐만 아니라 새롭게 구현되는 마이크로 서비스들은 일종의 기능이 되어 더 새롭고 효율적인 전력기기 솔루션을 구성하게 될 것이다. 


각 서비스들 간의 데이터 연동, 기능 공유를 통해 새롭게 제안될 디지털 제품들과 LS ELECTRIC만의 마이크로 서비스 아키텍처가 어떤 모습이 될지 기대되는 바이다.   



작가의 이전글 [눈높이 기술] 데이터를 위한 허브 EdgeHub
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari