원문 출처: https://www.nttdocomo.co.jp/corporate/technology/rd/technical_journal/bn/vol29_1/003.html
docomo는 10년 이상 전부터 퍼블릭 클라우드를 사용하여 다양한 서비스를 제공하고 있다. 퍼블릭 클라우드를 활용함에 있어서, CCoE가 중심이 되어 보다 효율적이고 적절하게 활용이 이루어질 수 있도록 활동해오고 있다. 이 글에서는, 그들의 활동과 docomo에 있어서 퍼블릭 클라우드 이용 체제를 최근 클라우드 개발 트렌드와 맞추어 소개한다.
기업이나 조직에 있어서 퍼블릭 클라우드의 이용이 급속하게 증가하고 있으며, "클라우드 퍼스트"라는 단어로 대표되는 것처럼 퍼블릭 클라우드를 활용한 사업 전개가 일반적인 일이 되어가고 있다. 동시에 많은 기업이나 조직에 있어서 온프레미스에는 없는 퍼블릭 클라우드의 신속성과 유연성을 제대로 활용하여 자사의 비즈니스를 전개, 또는 변혁해 나아갈 필요성이 대두되고 있다. 그러나, 퍼블릭 클라우드의 활용에 있어서는 종래의 온프레미스 형태의 IT 시스템을 구축 또는 운영하는 것과 다른 사고방식이 요구되는 경우가 많고, 원활한 도입이나 활용이 어려운 기업이나 조직도 적지 않다.
일반적으로 퍼블릭 클라우드의 이용에 있어서, 도입 시의 서비스 검증, 보안 대책, 이용 정책 설정, 사내 이용 체제 확립, 스킬 취득, 인재 육성, 빠르게 변화하는 클라우드의 정보 수집이나 노하우 전개 등 많은 과제에 대응해나가야 한다. 퍼블릭 클라우드를 제대로 활용하기 위해서는 기존부터 있던 온프레미스 형태의 IT 시스템의 사고방식과의 다른 점을 인식하고, 변화가 빠른 퍼블릭 클라우드에 적극적으로 따라가는 것이 중요해진다.
docomo에서도 10년이 넘는 기간동안 수많은 서비스에서 퍼블릭 클라우드를 활용하고 있다. 그것을 통해, 앞에서 말한 것과 같은 과제를 마주하고, 더욱 효율적이고 적절하게 퍼블릭 클라우드를 활용하기 위한 활동을 계속 해왔다. 이 글에서는 docomo에서 실시해온 글들의 활동이나 docomo에 있어서 퍼블릭 클라우드 이용 체제를 소개한다.
2020년 12월 시점에서의 docomo에 있어서 퍼블릭 클라우드의 이용 상황을 설명한다.
docomo에서는 2009년 경에 연구 개발/검증 목적으로 퍼블릭 클라우드의 이용을 시작했다. 그 후, 이용 범위를 확대하여 2012년부터 대규모 상용 서비스에 퍼블릭 클라우드를 도입했다. 이용 개시 시점부터 매년 이용량은 증가하여, 2020년 12월 시점에서는 900개 이상의 AWS 어카운트, 250개 이상의 GCP 프로젝트, 50개 이상의 Azure 구독을 각각 운영하고 있다.
docomo에 있어서 퍼블릭 클라우드의 활용 범위는 다양하다. 예를 들어, 웹 서비스, 모바일 애플리케이션의 백엔드 시스템, 데이터 분석 인프라, 기계 학습, 사내 시스템 등 다양한 분야에서 퍼블릭 클라우드를 활용하고 있다.
docomo는 다음 그림1처럼, 퍼블릭 클라우드를 효율적으로 활용할 수 있도록 고려한 이용 체제를 갖추고 있다.
docomo의 퍼블릭 클라우드 이용에서 가장 특징적인 점은 명확한 CCoE(Cloud Center of Excellence)가 존재하는 것이다. CCoE란 퍼블릭 클라우드에 관한 다양한 전문지식을 가진 팀으로서, docomo에서는 CCoE를 중심으로 퍼블릭 클라우드 활용을 전개하고 있다.
CCoE: 기업에 있어서 클라우드 활용을 성공시키기 위해, 베스트 프랙티스 확립이나 필요한 제도, 서버넌스 등을 작성하여 사내에 전파해나가기 위한 전속 팀
docomo의 퍼블릭 클라우드 이용 체제에 있어서 중심적인 역할을 담당하고 있는 CCoE의 상세한 활동 내용에 대해 설명한다.
퍼블릭 클라우드 이용 시의 지원은 CCoE의 중요한 역할이다. 사내 프로젝트에서 CCoE는 퍼블릭 클라우드 상의 시스템을 구축할 때의 시스템 설계 지원이나 검토, 보안 요건을 충족하기 위한 효율적인 대책 방법의 제시 등을 수행한다.
특히 퍼블릭 클라우드에서는 최초 설계가 이후 비용이나 시스템 운영 사업에 큰 영향을 끼치기 때문에 중요하며, 시스템 설계 시에 지원을 하는 경우가 많다.
또한, 시스템 운영을 시작하고 시스템의 이용자가 증가하면 필연적으로 비용이 증가한다. 이 때, 비용 최적화를 수행하기 위해 비용이 많이 발생하는 원인이나 설계 재검토 등의 지원도 실시하고 있다.
일반적으로 퍼블릭 클라우드는 유연한 이용이 가능한 반면 서비스 수나 구입 옵션의 확대에 따라 비용 지불이나 회계 처리 등이 번잡해지기 쉽고, 프로젝트가 늘어날 때 가동하는 컴퓨팅 자원이 크게 증가하는 경우가 있다. 여기서 docomo는 CCoE가 일원적으로 클라우드 사업자와 계약을 하여 일괄로 각 프로젝트에 대한 지불을 총괄하여 처리하는 것으로 각 프로젝트의 부담을 줄이고 있다.
또한 퍼블릭 클라우드 사업자에 따라서는 이용량이 많아질수록 가격이 낮아지는 볼륨 디스카운트 옵션이 있는 경우가 있다. 지불을 한 번에 수행하는 것으로, 볼륨이 확보되기 때문에 사내 전체의 이용료가 일부 절약되는 효과도 있다.
퍼블릭 클라우드는 빠르게 진화하고, 최신 정보를 지속적으로 따라가는 활동을 프로젝트 업무를 맡고 있는 각 프로젝트의 멤버가 하기에는 어려운 경우가 있다. 이 때문에 최신 정보 취득도 CCoE에서 솔선하여 실시하고 있다. 예를 들어, 퍼블릭 클라우드에 관한 기술적인 이벤트에 적극적으로 참가하여 정보 수집이나 발표를 진행하고 있다. 또한 알게된 정보는 노하우로서 가이드라인에 반영하거나, 직접 검증을 하여 사내 프로젝트 멤버에 전파할 수 있도록 하고 있다.
각 프로젝트가 퍼블릭 클라우드를 효율적으로 활용할 수 있도록 다양한 지원 툴을 개발하고, 사내에 전파하고 있다.
클라우드에서는 사업 전개 속도를 향상시킬 수 있는 다양한 기능이 제공되고 있지만, 한편으로는 잘못 사용하면 클라우드의 장애에 따르는 서비스 정지나 설정 오류에 의한 보안 사고를 일으킬 가능성도 있다. 이 때문에, 이용자에게는 올바르게 클라우드를 이용하기 위한 기술 지식이 필요하지만 이용자의 지식 레벨은 각기 다르기 때문에 회사로서는 사원 전체의 기술 지식 수준을 높이는 것이 과제가 된다.
이를 위해 CCoE는 docomo 시점에서의 클라우드 이용 방법을 기재한 가이드라인을 작성하고 있다. 이 가이드라인에 따라, 가령 지식이 많지 않는 이용자라도, 알아둬야 할 최소한의 지식을 단시간에 습득할 수 있게 된다. 가이드라인은 AWS, GCP, Azure에 대응하고 있다. 여기서는 AWS를 대상으로 작성한 가이드라인 일람을 표1로, 가이드라인의 일부 사례를 그림 2로 나타냈다.
No | 종류 | 내용 |
---|---|---|
1 | 클라우드 개발 가이드라인 | 클라우드를 사용하는 경우의 사고방식이나 작법, 개발 플로우에 있어서의 각 단계에서 고려·실시해야 할 지침을 기재, 특히 설계·보안 등은 중점적으로 망라해, 잘못된 사용법을 억제한다. |
2 | 보안 디자인 패턴 | 클라우드를 이용한 시스템을 구축함에 있어서, 보안의 고려 누출을 억제하고 ISO/IEC27017에 따른 요건을 미리 준비함으로써 ISO 관리책에 대한 준거성을 높이고 있다. AWS를 사용하여 시스템을 구축할 때 필요한 보안 요구 사항 열거한다. |
3 | 보안 템플릿 | 보안 디자인 패턴을 고려한 네트워크 구성이나 네트워크 필터링 기능, 기본 기능을 제공하는 인스턴스군 등을 생성하는 AWS CloudFormation 템플릿을 기재, 보안 대책을 용이하게 실시한다. |
4 | IAM 디자인 패턴 | AWS 계정 사용 패턴에 맞게 docomo 사내 IAM 정책 설계 베스트 프랙티스를 기재한다. |
5 | 인시던트 대응 가이드라인 | AWS를 이용하는 인터넷에 공개된 서비스 제공 시스템이나 사내 시스템 등에서 사이버 공격 등의 인시던트가 발생한 경우의 대응에 대해 실제로 발생한 사례를 포함하여 기재한다. |
6 | 비용 최적화 지침 | AWS 비용을 관리하는 사람을 위한 비용 파악, 분석 방법, 비용 절감 및 최적화 방법을 기재한다. |
7 | 시스템 마이그레이션 지침 | 온 프레미스에서 AWS로의 마이그레이션 기회를 원활하게 수행하기 위해 이전 마이그레이션 사례에서 얻은 지식 등을 기반으로 마이그레이션시 포인트가되는 점과 주의해야 할 점을 설명한다. |
8 | 공통 인프라화 가이드라인 | 여러 계정/복수 시스템을 운영하기 시작하면, 운영을 표준화하거나, 운영 시스템을 공통화함으로써 효율화를 도모하면 유효한 경우가 있기 때문에, 클라우드의 특성을 이용함으로써 운영의 효율화를 부드럽게 진행하는 방법을 기재한다. |
9 | 컨테이너 가이드라인 | 컨테이너를 서비스 개발/운영에 도입하려고 하는 사람을 위해서, 각 프로젝트에서 효과적, 안전하게 컨테이너 활용을 실천 받는 것을 목적으로, 어떤 툴을 어떻게 이용하는 것이 좋은가 기재한다. |
10 | 서버리스 가이드라인 | AWS상에서 서버리스 시스템을 개발·운영할 때, 어떻게 도입을 진행시켜 나가야 할지, 어떤 서비스를 어떻게 이용하는 것이 좋은지, 각 프로젝트에서 효율적이고 효과적 서버리스를 활용하는 방법을 설명한다. |
11 | DevOps 가이드라인 | DevOps의 사고방식을 서비스 개발/운영에 도입하려고 하는 사람을 위해서, 어떤 툴을 어떻게 이용하는 것이 좋은지, 각 프로젝트에서 효율적이고 효과적으로 DevOps를 실천 받는 것을 목적으로 한 가이드라인이다. |
또한, 가이드라인 중 하나인 보안 디자인 패턴에서는 클라우드를 사용하여 시스템을 구축할 때 보안을 고려할 수 있도록 정보 보안팀의 보안 체크 항목에 따른 요건(ISO/IEC27017 등)과 클라우드 환경에 있어서의 요건, AWS를 이용한 시스템 구축을 진행할 경우의 요구 사항과 AWS가 제공하는 기능이나 서비스를 함께 기록하여, 보안 체크 항목을 준수할 수 있도록 하고 있다. 시스템 구축 담당자는 보안 체크 항목을 충족시키기 위해 하나 하나 검증할 필요가 없고, 보안 디자인 패턴을 참조하면서 시스템 구축을 실시하면, 자연스럽게 보안 체크 항목을 충족할 수 있게 된다. 보안 디자인 패턴의 일부 예시를 그림3으로 나타냈다.
퍼블릭 클라우드에서 새로운 기능이 추가되거나 업데이트가 되는 속도가 빠르기 때문에, 이러한 지원 툴도 빈번하게 업데이트 될 필요가 있다. 이 때문에, CCoE에서는 이러한 툴 개발에 있어서도 애자일 개발을 도입하여, 빈번한 기능 추가나 업데이트에 따라갈 수 있도록 하고 있다.
여기서는 docomo의 최신 개발 현장으로부터 서버리스 기술을 적용한 최신 개발 사례를 설명한다.
클라우드 세계에서는 지금까지 별개였던 개발과 운영을 분리하지 않고, 이들을 통합하여 생산성을 높이는 소위 말하는 DevOps의 흐름과 함께, 기존의 가상 머신에서 컨테이너 이용을 전제로 한 설계 방식이 보급되었다. 컨테이너화는 개발이나 릴리즈 사이클을 가속시키는 것에는 성공했지만, 기존에 가상 머신을 운영하던 것과 마찬가지로 운영 모니터링이나, 보안을 위한 보수 작업은 필요하다. 컨테이너화 흐름이 진행되는 한편, AWS를 시작으로 퍼블릭 클라우드 사업자는 미들웨어부터 서버의 운영 관리까지를 포함하는 일련의 매니지드 서비스를 "서버리스" 기술로써 이미 제공하기 시작하고 있다. 이는 컨테이너화와는 다른 축으로 발전하고 있는 클라우드 인프라 기술이며 개발자나 운영 관리자는 서버의 존재를 의식하지 않고 인프라의 운영 관리를 모두 클라우드 사업자에게 맡기고, 더 많은 리소스를 비즈니스 로직 개발에 집중할 수 있게 한다.
docomo가 2020년 6월에 릴리즈한 docomo 오픈 이노베이션 클라우드의 포탈 사이트는 아래와 같은 React 기반의 일반적인 웹 애플리케이션 시스템이다. (그림4)
docomo 오픈 이노베이션 클라우드의 개발 시작부터 최초 릴리즈까지의 기간은 4개월, 그리고 운영/보수 인원은 최소한으로 줄인다는 제약이 있었다. 이에, 가능한 한 서버 관리를 AWS에 오프로드하기 위해 AWS Lambda 등을 이용한 서버리스 아키텍처를 전면적으로 채용하여 개발을 진행했다. 그 결과, 개발 기간을 대폭 단축하여 단기간에 릴리즈할 수 있었다.
이 글을 쓰는 시점을 기준으로 운영 개시한 지 1년, 네트워크나 서버 등 인프라르 기인으로 한 장애는 0 건이었다. 가용성에 있어서 서버리스에서는 이중화나 Fault Tolerance가 사전에 빌트인되어있는 혜택을 받고 있다. 운영/보수 인원은 2~3명으로 당초 목표를 달성했다. 이후, 유저 접속 증가에 따른 Scalability 확보가 필요한 국면에서도 서버리스라면 자동으로 대응이 가능하다. 요금도 사용한 만큼만 지불하는 방식이기 때문에 본 프로젝트에서는 비용을 크게 절감할 수 있었다.
이 글에서는 docomo에서의 퍼블릭 클라우드 활용과 CCoE가 하는 역할에 대해 설명했다. 퍼블릭 클라우드 이용은 앞으로도 증가할 것으로 예상되는 가운데, 이를 제대로 이용하고 비즈니스를 성공으로 이끄는 것이 중요하다. 그 때문에 CCoE는 앞으로도 각 프로젝트가 퍼블릭 클라우드를 최대한으로 활용할 수 있도록 지원의 범위를 넓혀가고 싶다.
또한, 서버리스 등 최신 기술을 상용 서비스에 신속하게 도입하는 것은 차세대 이노베이션으로의 도전이기도 하다. 이러한 마인드를 키워나가면서 앞으로도 docomo 사내에서의 개발 효율화를 촉진하고 성공 사례를 늘려가고 싶다고 생각하고 있다.