인사이트
데브옵스 엔지니어 전망은?ㅣ카카오 데이터 센터 화재와 금융권 조직 개편으로 보는 DevOps
2022년 10월 27일
지난 10월 15일, 16일 카카오의 시스템이 작동 중이던 데이터 센터에 화재가 발생하여 주말 간 카카오와 연동된 서비스 이용이 제한된 사건이 일어났습니다. 이 사건으로 각종 서비스 및 애플리케이션이 우리의 삶에 얼마나 밀착해있는지 새삼 느낄 수 있었는데요.
카카오톡(메신저)부터 카카오T(택시,네비게이션), 카카오페이(결제), 카카오쇼핑(쇼핑) 등 일상과 밀접한 이슈였기 때문에 꼭 개발자나 엔지니어가 아니더라도 서버와 데이터베이스, 재해복구 시스템에 대한 관심을 가지는 계기가 되기도 했습니다.
오늘은 데이터 화재와 관련하여 함께 이슈가 되고 있는 클라우드, 데브옵스 엔지니어의 전망과 데브옵스 분야에서의 고가용성 서비스에 대해 정리했습니다.
중단된 서비스가 언제 복구되는지, 다른 문제는 없는지, 다른 서비스는 괜찮은지 찾다 보면 마이크로서비스 구조(MSA:Microservice Architecture), 재해복구(DR:Disaster Recovery), 고가용성(HA:High Availability) 과 같은 용어들을 만나게 됩니다. 위 개념은 오류나 위기 상황에서 민첩하게 시스템을 보호하고, 회복시키는 것을 통해서 무중단 서비스를 운영하기 위한 지침들을 설명합니다. 이러한 조치는 채팅, 게임, 중고 거래, 음식 배달 등 어떠한 서비스 도메인을 가졌는지와 상관없이, 대부분의 현대 애플리케이션 서비스에서 필수로 요구되는 사항입니다.
이는 오늘날 클라우드, 데브옵스(DevOps) 개념이 떠오르는 이유와도 맞닿아 있는데요. 데브옵스란 개발과 운영의 합성어로 개발부터 배포까지의 과정을 운영 측면에서 바라보고 속도를 높이는 접근방식을 의미합니다. 많은 기업이 안정화된 서비스 제공을 위해 데브옵스 및 보안 팀을 구성해 각종 서비스 장애 및 위기를 방지하고 있습니다.
최근 금융권에서도 고객의 요구에 빠르게 대응하고 안정적인 금융서비스 제공을 위해서 데브옵스 엔지니어들을 많이 채용하고 있습니다. 특히 제1금융권이라 불리는 대형은행에서 DevOps 중심의 개발조직을 구축하는 움직임을 보이고 있는데요.
금융권이 DevOps 조직을 지향하는 이유는 무엇일까요? 최근 금융권이 필요로 하는 요구사항은 “문제상황에 빠르게 대응하는 안정적인 서비스 운영”인데요. 이러한 요구사항을 충족하기 위한 기술인 고가용성 확보를 위한 분산처리, 변경 사항을 빠르게 적용하기 위한 자동화 구축 등의 기술을 수행하는 것이 바로 데브옵스 엔지니어이기 때문에 조직 개편과 함께 데브옵스 엔지니어 채용이 증가하고 있습니다.
그렇다면 데브옵스를 이해하기 위해 알아두면 좋을 개념 및 기술을 구체적으로 알아볼까요?
클라우드 환경에서 인프라를 관리하는 데브옵스 영역에서는 “실패를 위한 설계”를 굉장히 강조합니다. 대표적인 클라우드 서비스 제공업체(CSP : Cloud Service Provider)인 아마존의 AWS, 마이크로소프트의 Azure, 구글의 GCP(Google Cloud Platform) 등 어떤 서비스를 사용해서 인프라를 구축하더라도 실패와 오류는 불가피하고 100% 가동을 상정한 시스템은 위기에 처할 수밖에 없기 때문이죠.
MSA(Microservices Architecture)라고 불리는 마이크로서비스 아키텍처는 하나로 합쳐진 큰 서비스가 아니라, 각각의 기능을 담당하는 작은 서비스들이 합쳐져서 하나의 서비스 구조를 형성하도록 하는 것을 말합니다. 이렇게 되면 하나의 서비스에 문제가 생겨도 피해가 연쇄적으로 퍼져나가는 것을 막을 수 있습니다.
가용성*이라는 단어는 인프라 엔지니어가 아니라면 생소한 용어일 수 있습니다. “고가용성이 필요하다”라는 말은 가용성 높은 설계가 필요하다는 말인데요. 이 가용성은 쉽게 설명하자면 이 시스템이 얼마나 정상 작동 가능한지를 나타내는 것이라고 할 수 있습니다. 어떤 상황에서도 시스템을 사용할 수 없는 시간이 아주 짧고 대부분 정상적으로 사용 가능하다면 가용성이 높은 시스템이라고 평가할 수 있습니다.
가용성(可用性, Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다. 가동률과 비슷한 의미이다.
데브옵스 엔지니어가 되기 위해 배우는 많은 개념은 대부분 가용성 확보를 목표로 하고 있습니다. 위에서 말한 마이크로서비스 아키텍처(MSA)나 재해복구(DR)를 포함해서, 현 상황이나 문제지점을 파악하기 위한 모니터링과, 서버에 과부하가 걸리지 않도록 서버를 늘리거나 트래픽을 분산시키는 로드밸런생, 오토스케일링, 스케일아웃 등이 결과적으로 가용성을 확보하기 위해 사용되는 액션들입니다.
이러한 조치 중 하나가 멀티 AZ 구성입니다. AZ는 Availability Zone의 약자로 하나의 리전(Region)으로 묶이지만, 개별적으로 존재하는 데이터센터를 말합니다. 이러한 AZ는 네트워크로 연결되어 마치 같은 장소에 있는 것처럼 높은 처리량과 지연시간이 짧은 네트워킹을 제공하지만, 실제로는 정전, 낙뢰, 토네이도, 지진, 화재 등의 문제 상황에서 한 번에 영향을 받지 않기 위해 수 km 떨어져서 구성됩니다. (AWS 기준)
유저의 요청을 처리하는 서버를 이렇게 각각 분리된 AZ 내부에 구성하게 되면 트래픽을 분산시켜 서버의 부담을 덜어주는 효과가 있습니다. 또한 하나의 고성능 서버를 유지하는 것보다, 성능이 비교적 낮은 서버를 여러 대 사용하는 것이 일반적인 경우 비용 절감 면에서도 더 효율적입니다.
또한 문제 상황 발생 시 문제가 된 서버에서는 요청 처리를 중단하고, 정상 작동 중인 서버가 요청을 처리하도록 함으로써 서비스 중단이 없는 무중단 서비스를 제공할 수 있게 합니다.
하지만 50 대 50으로 분산된 시스템에서 문제가 발생해서 100%의 트래픽을 하나의 데이터 센터가 감당하게 될 때, 대응해야 하는 서버마저 함께 다운되는 경우가 발생할 수 있습니다. 앞에서도 말씀드렸듯이 100% 가동을 상정한 시스템은 위기에 처할 수밖에 없기 때문인데요.
이러한 문제가 발생할 수 있기 때문에 여러 인프라 설계 관련자들이나 AWS의 경우, best practice로 3중 구조를 구성하여 보다 안전한 서비스를 제공하는 것을 권장하고 있습니다.
코드스테이츠 데브옵스 부트캠프에서는 위에서 자세히 살펴본 Multi-AZ 전략과 함께 앞서 이야기한 MSA, DR 등, 가용성을 높여 무중단 서비스를 제공하기 위한 여러 개념을 학습하고, 스프린트와 팀 프로젝트를 통해 실제 구현하는 과정을 거치게 됩니다. 클라우드 기술의 성장과 더불어 관련 리소스들을 설계하고 구현하는 데브옵스 기술들은, 금융권을 포함한 모든 기업의 서비스가 추구하는 방향과 일치하고 있기 때문에 데브옵스 관련 엔지니어들의 수요가 더욱 증가하는 추세입니다.
모든 서비스가 원하는 민첩하게 대응하는 애플리케이션을 위한 설계를 공부하고 싶다면 코드스테이츠 데브옵스 부트캠프를 추천해 드립니다. 채용시장 흐름에 맞춘 클라우드 엔지니어링 과정으로 모니터링 시스템 구현과 마이크로서비스 설계, 자동화 역량을 배워가실 수 있어요.
글 이정훈 Educational Software Engineer (DevOps)
편집 김수민 Growth Manager (DevOps)
💻️ 데브옵스 엔지니어 커리어의 시작,
DevOps 부트캠프가 더 궁금하다면?
목록 보기
추천글