컨테이너 도입, 얼마나 준비되어 있나요?

클라우드 네이티브로 전환하고 IT 조직을 진정으로 현대화하기 위해서는 컨테이너를 도입해야 하며, 이를 위한 최적의 인프라 또한 준비되어 있어야 합니다.

Container Strategy

8분

컨테이너는 클라우드와 불가분의 관계에 있습니다. 많은 기업들이 컨테이너에 주목하며 컨테이너 전략을 빠르게 도입하고 있지만, 플러그 앤드 플레이 방식으로 적용하고 있지는 않습니다. 대규모로 컨테이너 전략을 수행하는 것은 매우 복잡하며, 대부분의 경우 컨테이너 전략을 위해서는 여러가지 작업을 먼저 처리해야 합니다.

컨테이너 및 마이크로서비스 기반 아키텍처는 엔터프라이즈 조직 현대화의 시작점인 차세대 툴 및 기술 패브릭의 핵심 스레드입니다. 이 접근 방식은 기존의 모놀리식 앱 개발을 클라우드, API 기반 서비스, CI/CD 파이프라인 및 스마트 클라우드 네이티브 스토리지에서 지원하는 최신 개발 에코시스템으로 대체하는 것입니다.

그런데 이러한 차세대 툴의 도입이 과연 쉬울까요? 컨테이너 전략이 장기적으로 지속될 수 있도록 하기 위해서는 필요한 기반이 제대로 갖춰져 있는지 점검해봐야 합니다.

기업이 그 어느 때보다 적극적으로 컨테이너를 도입하는 이유

쿠버네티스 커뮤니티 및 소프트웨어는 빠르게 움직이고 있습니다. 그러나 일반적으로 기업의 IT는 이와 동일한 속도로 움직이지 않기 때문에, 클라우드 네이티브 기술 및 방법론을 채택하고 효과적으로 사용하는 데에는 기술적, 문화적 과제가 대두됩니다.

The Rising Wave of Stateful Container Applications in the Enterprise

컨테이너는 여러 가지 이유로 각광을 받았던 데브옵스(DevOps) 테스트 시나리오 이상으로 매우 유망(영문자료)합니다. 당연히 기업도 컨테이너를 도입하기 원합니다. 캐피털 원(Capital One), 테슬라(Tesla) 및 인텔(Intel)과 같은 거대 기업은 컨테이너로의 전환을 이루었으며, 일부 기업은 고유의 컨테이너 오케스트레이션 툴을 구축(영문자료)하기도 했습니다. 그 이유는 무엇일까요?

컨테이너의 핵심은 효율성과 민첩성입니다. 이러한 소규모 개별 환경은 자체 시스템이 아닌 운영 체제(OS) 위에 있습니다. 따라서 매우 가볍고(모놀리스와 반대로) 여러 플랫폼에 걸쳐 쉽게 배치할 수 있습니다. 가상머신(VM)보다 설치 공간이 작고, 공유 및 이동이 가능하며, 순식간에 배치 및 삭제할 수 있습니다. 하이브리드로 전환하려는 경우, 컨테이너는 클라우드 네이티브 전략을 채택하면서 전환을 실현하는 가장 효율적인 방법 중 하나입니다.

그러나 기존의 레거시 인프라는 컨테이너를 최대한 활용하는 데 방해가 될 수 있습니다. 미션 크리티컬한 레거시 워크로드를 위한 컨테이너 전략을 시작할 경우, 다음 사항을 고려하여 컨테이너로 전환할 준비가 되었는지 반드시 확인해야 합니다.

컨테이너 도입을 위한 IT 지원이 충분한가요?

도커 및 쿠버네티스와 같은 기술의 경우 전문성이 부족하면 앱을 프로덕션 환경으로 전환하는 데 어려움을 겪을 수 있습니다. 쿠버네티스는 대규모 오케스트레이션에 유용한 툴이지만, 쿠버네티스가 모든 작업을 수행할 수는 없습니다.

IT 팀이 필요한 기본 인프라를 통해 쿠버네티스를 지원할 수 있도록 준비되어 있고 정보를 제공받는지 확인해야 합니다. 특히, 스테이트풀(stateful) 워크로드의 경우 숙련된 IT 아키텍트의 전문 지식을 활용하여 완전한 복원성을 확보하고, 인프라 풋프린트를 최적화하며, 용량 계획과 백업 및 복원 방법을 구현해야 합니다. 또한, 데브옵스 팀과 IT 보안 팀의 긴밀한 협력을 통해 컨테이너를 처음부터 안전하게 유지할 수 있도록 해야 합니다.

또한, 팀이 컨테이너를 인프라에 원활하게 통합할 수 있는 역량을 갖추고 있는지 확인하고, 컨테이너 배치 전략 및 프로세스를 지속적으로 개선 및 조정할 수 있는 대역폭이 있는지 점검해야 합니다. VMware 팀처럼 운영 병목 현상을 제거하기 위해 셀프 서비스 플랫폼을 구현할 수도 있습니다.

좋은 소식은 도커 및 쿠버네티스 기술은 수요가 많은 동시에, 현대적인 데브옵스를 위한 필수 기술로도 부각되고 있다는 점입니다.

어떤 앱을 컨테이너화 할 계획인가요?

컨테이너가 모든 종류의 애플리케이션에 항상 적합한 것은 아니었습니다. 비교적 동적인 앱에서는 컨테이너의 장점이 단점으로 작용하기도 했습니다. 설계상 컨테이너는 영구적인 것(또는 스테이트풀)이 아니었습니다. 따라서 컨테이너는 웹 스케일 워크로드 및 테스트 환경과 같은 스테이트리스 시나리오에 더 적합했습니다.

하지만 상황이 바뀌고 있습니다. 과거에는 컨테이너에 배치된 워크로드의 20% 미만이 스테이트풀이었지만, 오늘날에는 절반 이상이 스테이트풀입니다. (더 정확히 말하면 스토리지와 결합함으로써 스테이트풀이 됩니다.)

이에 대한 접근 방식은 다양합니다. 도커는 컨테이너에 연결할 수 있는 영구 데이터 볼륨에 대한 지원을 제공하지만, 점점 더 많은 조직들이 쿠버네티스와 같은 컨테이너 오케스트레이터를 통해 CSI 드라이버를 사용하여 스테이트풀 컨테이너를 배치하고 있습니다. 퓨어스토리지와 같은 스토리지 공급업체는 스테이트풀 애플리케이션에 대한 스토리지 제공을 간소화하는 네이티브 쿠버네티스 통합(영문자료)을 개발했습니다. 이를 통해 컨테이너를 사용하여 기존의 3 티어 스테이트풀 웹 앱을 자신 있게 배치할 수 있습니다.

앱 환경을 면밀히 살펴보고 컨테이너를 사용하여 최적화 및 개선할 수 있는 워크로드를 파악해 보세요. 그런 다음, 컨테이너가 온-디맨드 영구 스토리지를 사용하고 파일 시스템 및 오브젝트, 블록 및 소프트웨어 정의 스토리지와 인터페이스를 통해 원활하게 상호작용할 수 있도록 지원하는 스토리지 기능 및 통합을 갖추고 있는지 확인하세요.

컨테이너 영구 스토리지에 대한 다양한 접근 방식의 장단점을 평가해보세요.

데이터 스토리지가 충분한가요?

컨테이너는 일반적인 소프트웨어 에코시스템이 아닙니다. 이는 컨테이너의 기본 스토리지 또한 일반적인 스토리지일 수 없음을 의미합니다. 이 때 스토리지는 병목 현상 없이 복잡하고 분산된 영구 워크로드의 고유한 요구 사항을 충족해야 합니다.

스테이트리스 컨테이너는 몇 초 만에 가동 및 중지할 수 있습니다. 즉, 언제든 수천 개의 컨테이너를 처리할 수 있습니다. 쿠버네티스 및 기타 오케스트레이터는 이를 대규모로 관리하는 가장 효과적인 방법을 제공합니다. 이 때 스토리지는 이에 맞게 스마트해야 합니다. 반면에 스테이트풀 컨테이너는 수명이 더 길 수 있으며, 컨테이너 환경 외부의 블록 또는 파일 스토리지나 파이프라인의 혼합 등 데이터 요구 사항도 더 클 수 있습니다. 따라서 공유 스토리지 서비스 및 전용 클라우드 네이티브 스토리지가 직접 연결 스토리지(DAS)보다 이러한 워크로드에 더 적합합니다. DAS는 이러한 상황에서 확장 가능하고 예측 가능한 성능을 제공할 수 없기 때문입니다.

미래는 하이브리드 클라우드를 지원하고, 자동화되고 컨테이너를 인식하며, 확장성이 뛰어나고, 다양한 플랫폼에 걸쳐 여러 워크로드에 대해 풍부한 데이터 서비스를 제공하는 스토리지에 달려 있습니다. 이는 기업이 새롭게 떠오르는 애플리케이션 배치 기술 및 접근 방식을 활용하는 시대에 적합합니다.

Containerizing Key Business Workloads: Evaluating the Approaches to Meet Persistent Storage Demands in Containers, IDC

레거시 스토리지 인프라는 이러한 요구 사항을 충족할 수 없습니다. 따라서 VM, 컨테이너, 멀티 클라우드 또는 온-프레미스 등 환경을 통합할 뿐만 아니라 이를 간소화하는 엔터프라이즈급 스토리지 솔루션을 보유하는 것이 중요합니다.

컨테이너 워크로드를 위한 스토리지를 선택할 때 다음을 확인해 보세요.

  • 엔터프라이즈급인지 여부. 미션 크리티컬한 스테이트풀 애플리케이션을 컨테이너화할 때, 고객은 기존 티어 1 앱에 사용하는 것과 동일한 성능 및 가용성을 원합니다. 풍부한 데이터 서비스가 포함된 올플래시 솔루션은 엔터프라이즈 수준의 안정성, 복원성 및 보안을 제공할 수 있습니다.
  • 다양한 플랫폼에 대한 통합 지원을 제공하는지 여부. 통합 인터페이스를 통해 익숙한 방법으로 간단하게 데이터를 관리할 수 있으며, 데브옵스 및 개발자 친화적인 환경을 제공합니다.
  • 자동화를 제공하는지 여부. 마이크로서비스 기반 환경은 빠르게 확장할 수 있으며, 고객은 이를 관리하는 데 도움이 되는 빠르고 자동화된 프로비저닝을 원합니다. 영구 스토리지의 셀프 서비스를 제공하기 위한 컨테이너 배치 및 스토리지 요구 사항 충족을 자동화하는 솔루션을 찾아보세요.
  • 파일 및 블록 스토리지를 모두 지원하는지 여부. 소프트웨어 정의 스토리지, 특수 어플라이언스 또는 블록 스토리지 등 스토리지 에코시스템이 컨테이너별 스토리지 제품을 제공 할 수 있는지 확인해야합니다. 특히 블록 스토리지는 컨테이너의 내구성과 성능 모두에 도움이 될 수 있습니다.
  • 클라우드 네이티브 설계를 제공하는지 여부. 또한 하이브리드 환경 전반에 걸쳐 일관되게 스토리지를 활용할 수 있는 유연성을 제공해야 합니다. 컨테이너의 장점은 다양한 조건에서 실행할 수 있다는 것입니다. 고객은 일관된 데이터 서비스와의 기본 호환성, API 및 서비스형 소비를 제공할 수 있는 스토리지 솔루션을 원합니다.
  • 표준화된 통합이 있는지 여부. 솔루션은 컨테이너 런타임 엔진, 자동화 툴 그리고 도커 및 쿠버네티스와 같은 오케스트레이션 시스템과 통합되어야 합니다. 플랫폼 네이티브 플러그인은 스테이트풀 컨테이너 앱을 위한 효과적인 해결 방법인 것으로 입증되고 있습니다.

Tip: 손쉽게 컨테이너로 전환하고 싶으신가요? 퓨어스토리지의 포트웍스는 완전히 통합된 쿠버네티스 데이터 서비스 플랫폼을 제공해 쿠버네티스 워크로드에 대한 영구 스토리지, 데이터 보호 및 자동화된 용량 관리를 쉽게 구현할 수 있습니다.

팀이 컨테이너를 어떻게 효과적으로 관리하고 오케스트레이션 할 수 있을까요?

 

컨테이너 스토리지를 효율적으로 관리하고 “컨테이너 스프롤”을 방지할 수 있도록 준비해야 합니다. 가동 및 중지가 매우 간단하기 때문에 언제든 수천 개의 컨테이너를 확보하는 것은 어렵지 않은 일입니다. 그때그때 상황을 살펴 가능한 한 자동화를 활용하는 것이 중요합니다.

쿠버네티스는 기업의 대규모 컨테이너의 진정한 핵심입니다. 쿠버네티스와 같은 오케스트레이터를 스토리지 솔루션과 통합하면 컨테이너를 빠르고 쉽게 관리, 배치, 삭제, 복구 및 프로비저닝할 수 있습니다. 퓨어 서비스 오케스트레이터(Pure Service Orchestrator™)와 같은 툴은 스토리지를 쿠버네티스 오케스트레이션 환경과 원활하게 통합할 수 있습니다. 그리고 데이터에 대한 추상화된 컨트롤 플레인의 역할을 하여 온-디맨드 방식으로 컨테이너의 영구 스토리지를 자동화할 수 있습니다.

대규모로 컨테이너화된 앱의 보안 문제를 어떻게 해결할까요?

보안은 컨테이너 전략을 시작하는 많은 조직에게 가장 큰 관심사입니다. 400명의 IT 전문가를 대상으로 한 설문 조사에서 34%가 컨테이너 전략에서 보안 문제가 충분히 해결되지 않았다고 답했습니다. 스택에 새로운 기술을 추가할 때, 흔히 새로운 보안 고려 사항에 직면하게 됩니다. 컨테이너는 설계상 구성 요소를 분리하고 “최소 권한” 원칙을 적용함으로써 애플리케이션의 보안을 강화합니다. 하지만 대규모 “권한 확대” 공격을 방지하려면 추가 조치를 취해야 합니다.

하나의 스토리지 옵션인 컨테이너 네이티브 스토리지는 대부분의 경우 검증이 미흡해서 비즈니스 크리티컬 앱을 실행할 수 없습니다. 이는 당연하며, 기업의 보안 문제 중 일부는 실제로 컨테이너에 의해 증폭될 수도 있습니다.

리스크를 최소화하는 데 도움이 되는 몇 가지 모범 사례 및 전술을 소개하고자 합니다. 중요한 점은 사후가 아니라 초기 설계 단계부터 이러한 전술이 구현되어야 한다는 것입니다.

  • 컨테이너 보안이 데브옵스 팀과 IT 보안팀의 공동 책임이라는 것을 확실히 해야 합니다.
  • 쿠버네티스 인식(Kubernetes-aware) 재해복구 및 백업을 사용하여 컨테이너화된 앱을 보호해야 합니다(영문자료). 스토리지 단계에서 시작하면 데이터가 어디에 있든지 데이터를 보호하기 위해 많은 일을 할 수 있습니다. 기존 비즈니스 크리티컬 워크로드를 컨테이너화할 때 암호화, 백업 및 복구 방법이 충분히 준비되어 있는지 확인해야 합니다.
  • 컨테이너 고유의 설계 원칙에 충실해야 합니다. 가능한 경우 컨테이너 앱이 “권한 없음” 액세스 수준에서 실행되도록 구성합니다. 민감한 데이터를 추가로 보호하는 또 다른 방법은 데이터를 컨테이너 외부에 보관하고 API를 통한 액세스를 선택하는 것입니다.
  • 고급 로그 분석 기능을 갖춘 퓨어1(Pure1)과 같은 실시간 모니터링 솔루션을 구현하면 공격에 대해 더 효과적인 포렌식 조사를 실행할 수 있습니다. 이는 컨테이너의 수명이 짧아 공격을 추적하기 어려울 때 데이터를 면밀히 관찰하는 데 도움이 됩니다.

멀티 클라우드 및 하이브리드 클라우드로 전환하고 IT 조직을 진정으로 현대화 하려면 컨테이너도 도입해야 합니다. 그러나 성급히 서두르는 것은 어리석은 일입니다. 기존 환경, 인프라 또는 스토리지 기능으로 인해 컨테이너화 된 워크로드로 빠르게 전환하기 어렵다면, 한 걸음 뒤로 물러서서 필요한 사항을 확보했는지 먼저 확인하세요. 스택을 무너뜨리지 않으면서 컨테이너의 장점을 활용할 수 있는 방식으로 컨테이너를 도입하는 것이 현명한 방법입니다.


  1. https://www.carbonblack.com/blog/making-container-deployment-and-analysis-self-service-for-development/
  2. https://www.sdxcentral.com/industry/career/digital-transformation/2020-most-in-demand-it-skills-to-know/#:~:text=Kubernetes%20was%20named%20as%20a,use%20containers%20orchestrated%20by%20Kubernetes.
  3. https://diamanti.com/wp-content/uploads/2020/06/451Research-TheRisingWaveofStatefulContainer.pdf
  4. https://www.stackrox.com/kubernetes-adoption-security-and-market-share-for-containers/
  5. https://www.purestorage.com/resources/type-a/containerizing-business-workloads.html