티스토리 뷰

목차



    "테크씬 - 핵심 요약 후 시작합니다."

      • Kubernetes는 컨테이너화된(Containerized) 애플리케이션의 배포/확장 및 관리를 자동화하는 오픈 소스 플랫폼
        (별명은 K8s랍니다. 너무 길어서 이렇게 쓰는 것 같습니다^^)
      • Kubernetes를 사용하면 (1) 애플리케이션 관리/개선 편의성, (2) 민첩성 향상, (3) 이전성 제고의 이점을 획득 가능
      • AWS EKS는 간편한 설정, 통합 보안 기능, 확장성 확보 및 비용 효율성 제고 등 특장점을 통해 Kubernetes 클러스터를 더 쉽게 실행/관리할 수 있도록 도와주는 Amazon의 서비스임(돈을 지불하지만, 훨씬 쉽게 관리)

     


     

    오늘도 테크씬입니다! Kubernetes(쿠버네티스)는 테크 업계에서 빠르게 유명세를 타고 있죠. 이는 컨테이너화된 앱의 배포/확장/관리를 자동화하는 강력하고 유연한 오픈 소스 플랫폼입니다. 수많은 기업과 조직이 빅데이터 컴퓨팅의 요구 사항을 충족하기 위해 Kubernetes로 전환하는 것은 당연한 일이 되고 있죠.

    쿠버네티스 컨트리뷰터 서밋 사진
    쿠버네티스 컨트리뷰터들의 커뮤니티는 상당한 규모라는 사실을 아시나요?

    하지만 Kubernetes란 정확히 무엇이며 어떻게 작동할까요? 다른 클라우드 네이티브 기술과 어떻게 다르며, 전 세계 조직의 주요 사용 사례에는 어떤 것이 있을까요? 

     

    이번 포스팅에서는 Kubernetes의 세계에 대해 자세히 알아보고 기업 혹은 조직에서 애플리케이션을 개발/배포하는 방식을 어떻게 변화시키고 있는지 살펴보겠습니다. 또한 AWS(Amazon Web Service)의 관리형 Kubernetes 서비스인 AWS EKS에 대해 자세히 살펴보고, 이를 통해 Kubernetes 클러스터를 더 쉽게 실행하고 관리할 수 있는 방법에 대해서도 살펴봅니다.

     

     

     

    Kubernetes 이해하기

    - Kubernetes란? 어떻게 작동하나?

    * Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 플랫폼입니다. 최초에는 Google에서 개발했으며, 이후 대규모 커뮤니티가 성장하면서 Globally 널리 채택된 Open Source 프로젝트로 발돋움하였죠!

    * 핵심은 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 클러스터 관리 시스템이라는 점인데요. Kubernetes는 선언적 구성(Declarative Configuration) 모델을 사용하여 개발자가 애플리케이션의 원하는 상태를 지정하면 나머지는 시스템이 알아서 처리합니다.

    (참고) 선언적 구성은 특정 상태를 달성하는 방법을 하나하나 지정해 주는 방식이 아니라, 구성 파일(YAML, JSON으로 작성)을 사용해서 Pod, Service, Volume과 같은 리소스의 '원하는 상태'를 선언하는 것을 의미. 그리하여 쿠버네티스 시스템은 선언한 리소스의 상태가 실제 상태가 일치하는지 확인하게 됨. 즉, 수행 방법을 지정하는 방식이 아니라, 원하는 방식을 지정하는 방식임

    - Kubernetes의 주요 기능 및 구성 요소

    쿠버네티스의 아키텍처 요약도
    쿠버네티스의 아키텍처 요약도 (출처: https://commons.wikimedia.org/wiki/File:Kubernetes.png)

    * 파드(Pod): 하나 이상의 컨테이너를 나타내는 Kubernetes에서 배포 가능한 가장 작은 단위

    * 리플리케이션 컨트롤러(Replication Controller): 지정된 수의 파드 Copy가 지정된 시간에 실행되는지 확인

    * 서비스: 파드 세트를 네트워크 서비스로 노출하는 방법을 의미

    * 컨피그맵 / 시크릿(ConfigMaps and Secret): Configuration 데이터와 Secret을 파드와 별개로 저장하여 구성을 더 쉽게 관리하고 업데이트하도록 도움

    * 볼륨: 컨테이너를 위한 영구적 저장소(Persistent storage)

     

     

     

    Kubernetes의 장점 3가지!

    Kubernetes는 컨테이너화된 애플리케이션의 배포/확장/관리를 자동화하기 위한 오픈 소스 플랫폼으로, 많은 기업에서 채택하고 있습니다. 또한, 인기도 급상승하고 있죠. Kubernetes를 적극적으로 사용함으로써 얻을 수 있는 장점 3가지를 알아보죠.

     

    1. 앱 관리/개선:

    Kubernetes는 컨테이너를 배포, 확장 및 모니터링하기 위한 '중앙 집중식 관리 시스템'을 제공하죠. Kubernetes를 통해 기업과 조직은 Rolling Update(롤링식 업데이트), Self-Healing(자가 복구) 및 Scaling(확장성)과 같은 일반적인 작업을 자동화하여 대규모 애플리케이션을 더 쉽게 관리할 수 있게 합니다. 이를 통해 기업은 애플리케이션 관리 프로세스를 개선하고 Downtime의 위험을 줄일 수 있습니다.

    2. Agility(민첩성) 향상:

    기업은 Kubernetes를 통해 새로운 애플리케이션과 서비스를 빠르고 쉽게 배포하고 기존 애플리케이션을 확장할 수 있습니다. 이를 통해 기업은 변화하는 환경에 신속하게 대응하고 빠르게 변화하는 시장의 트렌드에 발맞출 수 있죠! 또한, 롤링 업데이트를 지원하므로 팀이 다운타임 없이 안전하고 효율적으로 애플리케이션을 업데이트할 수 있습니다.

    3. Portability(이전성) 제고:

    Kubernetes는 클라우드의 환경과 유형에 제한되지 않습니다. Kubernetes를 기반으로 구축된 애플리케이션은 모든 Cloud service 또는 On-Premise 환경에서 배포/실행할 수 있습니다. 따라서 조직은 필요에 따라 AWS, GCP 등 여러 솔루션 간 변경이 가능하죠.

     

    또는, 자체 데이터센터와 클라우드 간에 애플리케이션을 이전할 수도 있습니다. 이러한 이전성(Portablility)은 조직이 다양한 클라우드 제공업체의 솔루션 중 가장 적합한 옵션을 고를 수 있도록 도와주며, 특정 공급업체에 의존하지 않도록 보장하죠!

     

     

     

    그렇다면 AWS EKS는 뭐지?

    - AWS EKS? Kubernetes와 어떤 관련이 있나?

    * AWS EKS(Elastic Kubernetes Service)는 Amazon의 관리형 Kubernetes 서비스에요! Kubernetes 클러스터를 더 쉽게 실행하고 관리할 수 있게 해 줍니다. AWS EKS를 사용하면 기본 인프라나 클러스터 관리에 대해 걱정할 필요 없이 몇 번의 클릭만으로 Kubernetes 클러스터를 시작/관리할 수 있다는 점에서 매우 강점이 있죠.

    클라우드 기반 분산 컴퓨팅 사진
    저도 실무를 보면서 쿠버네티스 기반 빠르게 확장 가능한 분산 컴퓨팅을 누리고 있답니다.

    - AWS EKS 사용의 주요 기능 및 이점

    a) 간편한 설정: 클릭 몇 번으로 클러스터를 시작하고, 애플리케이션 배포할 수 있음

    b) 통합 보안: AWS는 미사용 데이터 및 전송 데이터의 암호화와 등의 '통합 보안 기능'을 제공함

    c) 확장성: 애플리케이션 요구사항의 변화하여도 Cluster를 자동으로 확장 가능

    d) 관리형 컨트롤 플레인: AWS가 컨트롤 플레인을 관리하기에 User는 애플리케이션에만 집중 가능함

    e) 비용 효율성: 장기 약정 없이 사용한 리소스에 대해서만 비용을 지불하기에 유연함

     

     

     

    Kubernetes와 AWS EKS의 글로벌 활용 사례

    다양한 문제를 해결하기 위해, 전 세계적으로 Kubernetes와 AWS EKS가 도입되고 있죠.

    * E-Commerce(이커머스):

    eBay는 대규모 전자상거래 애플리케이션의 배포/확장을 관리하기 위해 Kubernetes를 도입하여, 증가하는 수요에 보조를 맞추고 고객이 애플리케이션을 이슈 없이 사용할 수 있도록 활용하고 있습니다.

    * Health Care(헬스케어):

    Philips는 '클라우드 기반 의료 플랫폼'을 구축하고 배포하는 데 AWS EKS를 사용하여, 기업의 서비스를 더 빠르게 시장에 출시하고 환자에게 더 접근하기 쉬운 고품질 의료 서비스를 제공할 수 있게 되었습니다.

    * Gmae(게임):

    Activision Blizzard는 게임 애플리케이션의 배포와 확장을 관리하기 위해, AWS EKS를 사용하여 증가하는 사용자의 수요에 매우 탄력적으로 대응할 수 있었고, 365일, 24시간 가동되는 게임 플레이 경험을 제공 중

     

     

     

    정리하며…

    쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 데 전 세계적으로 가장 인기 있고 널리 사용되는 플랫폼 중 하나로 빠르게 자리 잡았습니다. IT 인프라를 최신화하거나 서비스 제공 프로세스를 개선하거는 것을 위해서 Kubernetes는 지속하여 활용될 것이죠.

     

    제가 근무하고 있는 회사도 AWS에서 출시한 EKS를 데이터 분석 프로세스에 도입하여 활용하고 있는데요. Computing resource가 많이 필요할 때는 EKS로 빠르게 제공하고, 덜 필요할 때는 빠르게 Container를 꺼버림으로써 탄력적으로 리소스 관리를 하고 있습니다. 우리 독자님들도 Kubernetes 검토를 고려해 보시고 업무 효율이 좋아졌다면 댓글로 공유해 주시면 참 좋겠네요. 오늘도 테크씬이었습니다! ^^

     

     

     

     

     

    [관련 포스팅]

    2023.01.31 - [데이터] - 빅데이터 처리: Apache Spark로 혁신에 날개를 달다.

     

    빅데이터 처리: Apache Spark로 혁신에 날개를 달다.

    Big Data 처리는 많은 글로벌 기업 운영에서 핵심점인 요소로 대두했습니다. 그러나 전통적인 기술을 활용해서 대규모 데이터를 운영하는 경우도 사실 비일비재한 현실입니다.. 오늘은 Apache Spark

    techscene.tistory.com

    2023.02.02 - [데이터] - 클라우드 컴퓨팅의 미스터리를 풀다: SaaS, IaaS 및 PaaS 완벽 정리

     

    클라우드 컴퓨팅의 미스터리를 풀다: SaaS, IaaS 및 PaaS 완벽 정리

    오늘날 빠르게 변화하는 Digital World에서 클라우드 컴퓨팅은 모든 규모의 기업에 필수적인 도구가 되었습니다. 클라우드는 기업이 운영을 개선하고 효율성을 높이며 비용을 절감하는 데 도움이

    techscene.tistory.com

    2023.02.04 - [AI/Machine Learning] - ML Ops 궁극 가이드: MLOps 및 DevOps의 개념과 차이점 이해

     

    ML Ops 궁극 가이드: MLOps 및 DevOps의 개념과 차이점 이해

    오늘날의 빠르게 진행되는 비즈니스 환경에서 머신러닝(ML, Machine Learning)은 조직의 운영 및 의사 결정 방식을 변화시키면서 게임 체인저가 되었습니다. 그러나 특히 조직이 기존 소프트웨어 개

    techscene.tistory.com

     

    반응형