아마존웹서비스(AWS)의 대표 상품인 ‘아마존 심플 스토리지 서비스(S3)’는 2006년 출시됐다. AWS의 시작이 아마존 S3였고, 아마존 S3가 AWS 성장을 견인했다. 오늘날 전세계서 가장 큰 스토리지인 S3는 설계단계부터 ‘마이크로서비스 아키텍처(MSA)’를 채택했다.
아마존 S3의 강점은 편리함과 내구성이다. 쓰기 쉬운 건 말할 것도 없다. 아마존 S3는 내구성 99.999999999%를 보장한다고 한다. 웬만해선 S3에 저장한 데이터를 잃어버리지 않는다고 강조한다. S3에 1억개의 객체를 저장할 경우 1만년 동안 객체 1개가 손실될 확률이다. 이런 강력한 내구성은 마이크로서비스 설계에 기반했기에 가능하다.
마이 란 톰슨 부코벡 AWS S3 담당부사장은 지난달 열린 ‘AWS 리인벤트2018’ 컨퍼런스에서 “아마존 S3는 13년 전 첫 출시 당시 8개의 마이크로서비스로 구성됐다”며 “지금은 235개 이상의 마이크로서비스가 S3에 존재한다”고 밝혔다.
첫 출시 당시 S3는 단순한 스토리지였다. 객체 키, 미터링, 과금, 백업 등 8개 기능을 각각의 마이크로서비스로 만들었다. S3 기능 증가로 지금은 235개의 마이크로서비스를 갖고 있다. 마이크로서비스 중 온라인 서비스에 특화된 서비스도 있다고 한다.
마이크로서비스의 핵심은 내구성이다. S3는 객체당 단일 리전 내 3개의 가용영역(AZ)에 최소 3개의 복제본을 분산해둔다. 복제본 하나가 손실되면 곧바로 다른 복제본으로 대체한다. S3는 정기적으로 데이터 무결성을 확인한다.
AWS는 서비스 유지를 위해 다층적인 마이크로서비스를 구현해놨다. 각 마이크로서비스 자체도 재해복구(DR) 시나리오를 감안해 대비책을 마련한다.
최근 우리나라 기업도 마이크로서비스에 큰 관심을 보이고 있다. 신기술과 최신 트렌드에 민감한 스타트업은 일찌감치 마이크로서비스 아키텍처를 채택했다. 중견기업, 대기업, 공공, 금융기관 등도 마이크로서비스 아키텍처를 검토한다고 한다.
마이크로서비스 아키텍처는 많은 장점을 제공한다. 마이크로서비스 아키텍처는 과거 한몸으로 만들었던 대형 IT시스템 애플리케이션을 목적별로 잘게 쪼개, 각 기능이 독립적으로 동작하게 만든 것이다.
독립적 요소를 조합해 필요한 시스템을 빠르게 만들어내고 유연하게 수정할 수 있게 한다. 소프트웨어를 좀 더 민첩하게 개발, 배포하고, 필요에 따라 수시로 개선하는 게 가능하다. 예를 들어 너무 많은 로그인이 몰렸을 때 로그인 담당 마이크로서비스만 늘리거나 고치면 된다. 전체 시스템 운영을 유지하면서 업데이트와 수정이 가능하다.
하지만 잊지 말아야 할 것이 있다. 아마존 S3는 마이크로서비스 아키텍처의 주요 사례일 뿐이다. 마이크로서비스를 활용해야 세계적으로 성공하는 애플리케이션을 만들 수 있다는 걸 뜻하지 않는다.
시사점은 따로 있다. 시스템 설계 전 목표를 명확히 해야 한다는 것이다.
AWS가 아마존 S3 를 개발하면서 마이크로서비스 아키텍처를 채택한 건 ‘내구성’이란 목표를 세웠기 때문이다. S3는 단일 서비스에 수많은 사용자가 혼재하고, 이용자마다 다른 데이터와 활용 패턴을 가졌다. 스토리지 하드웨어는 매우 빈번하게 장애를 겪는다. S3가 죽어버리면 수많은 고객의 애플리케이션이 데이터를 찾지 못해 작동불능 상태에 빠진다. S3를 만들 때부터 잦은 장애와 패치를 감안하는 게 당연하다.
마이크로서비스 아키텍처를 완벽한 정답으로 받아들이는 기업이 더러 있다. 남들이 좋다고 해서, 무턱대고 유행을 따라 가려는 흐름이 생겨나고 있다. 과거부터 지금까지 크게 문제를 겪지 않았던 애플리케이션도 마이크로서비스 아키텍처로 전환하려는 시도도 벌어진다. 디지털 트랜스포메이션, 4차산업혁명 등의 유행어 속에서 컨테이너 기술, 마이크로서비스 등이 금과옥조로 받아들여지는 탓이다.
마이크로서비스 아키텍처 전문가들은 “목표를 명확히 세우고 필요에 맞는 아키텍처를 선택해야 한다”고 조언한다.
무조건 아키텍처부터 마이크로서비스로 정하고, 그 다음 문제를 고민하는 건 순서를 완전히 뒤바꾼 것이라고 한다.
관련기사
- 신규 서비스 쏟아낸 AWS “깊이가 다르다”2018.12.10
- 아마존닷컴 추천의 비밀, AWS가 풀었다2018.12.10
- 아마존 CTO, 탈 오라클을 말하다2018.12.10
- AWS 서버리스, 모든 개발언어 쓸 수 있다2018.12.10
앞으로 어떤 환경에서 애플리케이션을 운영해야 하고, 어떤 변화를 겪게 되며, 어떤 위험을 감내해야 하는지부터 검토해야 한다.
디지털 트랜스포메이션 때문에 많은 비IT기업이 혼란을 겪고 있다. 중요한 건 목표다. 무엇을 달성할 것인가. IT부서의 목표가 아니다. 비즈니스 관점의 목표다. 혼란에서 탈출하는 건 목표 설정에서 시작된다.