티스토리 뷰

목차



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

    • 클라우드 환경에서 쿠버네티스와 Amazon EKS는 애플리케이션을 효율적으로 관리하는 중요한 역할을 함. 이들은 마치 클라우드 환경의 지휘자처럼 작동하며, 이를 보조하는 두 가지 중요한 도구는 LoadBalancer와 AutoScaling임
    • LoadBalancer는 트래픽을 여러 서버에 분산하여 부하를 줄이고, 사용자에게 안정적인 서비스를 제공함. AutoScaling은 서비스의 요청이 많을 때는 서버를 추가로 배치하고, 요청이 줄어들면 서버를 줄여 비용 효율을 챙김. 이 두 기능은 쿠버네티스와 EKS에서 각각 다양한 방식으로 구현됨
    • 이 두 기능은 함께 사용될 때 서비스의 안정성과 효율성을 높임. LoadBalancer는 트래픽을 여러 서버에 분산하며, AutoScaling은 필요에 따라 서버를 추가하거나 줄여 리소스를 절약함

     

     


    안녕하세요, 테크씬입니다! 클라우드 환경에 대해 약간이라도 이해가 있다면, 쿠버네티스와 Amazon EKS에 대한 언급은 피할 수 없다는 점 알고 계시죠? ^^ 이들은 마치 우리의 클라우드 환경을 조율하는 지휘자와 같죠. 이들은 클라우드 환경의 애플리케이션을 매우 효율적으로 관리하는데요! 오늘은 쿠버네티스와 EKS를 보조하는 두 강력한 도구, LoadBalancer와 AutoScaling에 대해 알아보려 합니다.

     


    1. 쿠버네티스에서의 LoadBalancer 이해하기

    LoadBalancer는 트래픽을 적절히 분산시킵니다. 즉, 이는 마치 시내에서 교통정리를 위해 힘써주시는 교통경찰의 역할을 하죠! 클라우드 트래픽의 교통량을 분산시키고, 장애 발생 시 빠르게 대응하여 효율성을 높입니다. 쿠버네티스에서 LoadBalancer는 다음과 같은 역할을 합니다.

    source: https://easoncao.com/

    • 작동 원리: LoadBalancer는 들어오는 요청(Request)을 여러 서버에 분산시키는 역할을 합니다. 이는 서버 부하를 줄이고, 사용자에게 안정적인 서비스를 제공합니다.
    • 쿠버네티스 통합: 쿠버네티스는 이 LoadBalancer를 서비스 유형 중 하나로 통합하고 있습니다. 이를 통해 사용자는 서비스를 쉽게 확장하고 분산시킬 수 있습니다.
    • 활용 예시: 구글은 이 LoadBalancer를 통해 초당 수백만의 트래픽 요청도 효율적으로 처리하고 있죠.

    * 쿠버네티스와 EKS가 궁금하시다면 포스팅 하단의 이전 포스팅을 참고하세요^^!

     

     

     

    2. EKS에서의 LoadBalancer 사용하기

    Amazon EKS에서 LoadBalancer를 활용해 jobs 혹은 tasks를 효율적으로 분산하는 것이 가능합니다. 이는 마치 한 바구니에 담긴 사과를 어른, 아이, 노인 등에게 합리적으로 분배하는 것과 비슷하죠^^. EKS의 LoadBalancer는 이렇게 서비스의 부하를 분산시키고, 높은 트래픽을 적절히 분배하여 사용자들에게 안정적인 서비스를 제공합니다.

    • 설정 방법: LoadBalancer를 설정하는 것은 AWS 콘솔에서 몇 번의 클릭이나 CLI를 통해 간단한 명령만으로 가능합니다. 서비스의 LoadBalancer 유형을 지정하고, 필요한 파라미터(예: 서브넷, 보안 그룹 등)를 설정하면 됩니다.
      * CLI(Command Line Interface)는 사용자가 키보드를 통해 컴퓨터에 명령을 내릴 수 있는 방법을 뜻함
    • 장점: EKS의 LoadBalancer는 트래픽을 여러 노드에 분산시키므로, 하나의 노드에서 문제가 발생해도 서비스는 계속 작동합니다. 즉, 높은 가용성과 내구성을 제공합니다.
    • 활용 예시: Pinterest는 로드 밸런서 기능을 활용하여 전 세계의 사용자들에게 완결성 높은 서비스 경험을 제공하고 있습니다. 실제로 Pinterest는 수억 명의 사용자를 가진 전 세계적인 플랫폼으로, 그들의 트래픽을 EKS의 LoadBalancer를 통해 효율적으로 관리되고 있죠.

     

     

    3. 쿠버네티스와 EKS에서의 AutoScaling 이해하기

    AutoScaling은 마치 매우 유연하게 Request 작업에 따라 자기 자신의(Computing Server) 크기를 조절할 수 있습니다. 서비스의 규모를 자동으로 늘리거나 줄이는 이 기능은 쿠버네티스와 EKS에서 중요한 역할을 합니다.

    이는 마치 심장이 우리가 운동을 할 때 더 빠르게 뛰고, 휴식을 취할 때는 더 느리게 뛰는 것과 유사합니다. 이처럼 AutoScaling도 서비스에 요청이 많을 때는 서버를 추가로 배치하여 더 많은 요청을 분산하여 처리하고, 요청이 줄어들면 서버를 줄임으로써 비용 효율을 챙기죠.

    오토스케일링
    Source: https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/100-scaling/200-cluster-scaling

    • 작동 원리
      : AutoScaling은 트래픽이 증가하면 자동으로 서버를 추가하고, 트래픽이 감소하면 서버를 줄입니다.
    • 쿠버네티스와 EKS에서의 적용
      : 쿠버네티스의 경우 Horizontal Pod Autoscaler, EKS의 경우 KEDA나 AWS Auto Scaling 그룹 등을 활용해 AutoScaling을 구현할 수 있습니다.
      * KEDA(Kubernetes Event-Driven Autoscaling)는 이벤트(데이터)가 언제 들어오는지를 파악하고, 그에 따라 서비스를 확장하거나 축소하는 역할을 합니다. 즉, 오케스트라를 지휘하는 지휘자의 역할을 합니다.
    • 활용 예시
      : 쿠버네티스는 Spotify에서 AutoScaling을 활용하여 사용자들에게 안정적인 서비스를 제공하고 있습니다.



    4. LoadBalancer와 AutoScaling의 시너지

    이제 LoadBalancer와 AutoScaling의 강력한 시너지에 대해 말씀드릴게요. 이 두 기능은 함께 사용될 때 완전히 새로운 역동성을 발휘합니다. 이들은 마치 영화 속 히어로들이 협업하는 것처럼, 한쪽은 트래픽을 관리하며 다른 한쪽은 필요에 따라 리소스를 확장하고 축소합니다. 매우 다이내믹하게 말이죠!

    • 상호 작용 방식: 
      LoadBalancer는 들어오는 트래픽을 여러 서버 간에 균등하게 분산시킵니다. 이는 각 서버의 부하를 줄이고 전체 시스템의 성능을 개선하는데 중요합니다. 그런데 트래픽이 폭증하면서 서버에 부하가 많아지면 어떻게 될까요? 이때 AutoScaling이 작동합니다. AutoScaling은 트래픽이 증가함에 따라 자동으로 서버 수를 늘려 전체 시스템의 부하를 줄입니다. 반대로 트래픽이 감소하면 AutoScaling은 서버 수를 줄여 리소스를 절약합니다.
    • 실무 활용 예시
      : 실제 비즈니스 환경에서 이런 시나리오는 흔히 일어납니다. 가장 대표적인 예로는 Black Friday나 Cyber Monday 같은 대규모 세일 이벤트를 들 수 있습니다. 이런 이벤트 기간에는 수많은 사용자가 웹사이트를 방문하여 트래픽이 급증합니다. 이때 LoadBalancer와 AutoScaling이 함께 작동하면 웹사이트는 안정적으로 운영되고 사용자 경험도 유지할 수 있습니다. 이들 기능을 잘 활용하는 회사 중 하나가 Amazon입니다. Amazon은 대규모 세일 이벤트 기간에도 웹사이트가 안정적으로 운영되도록 이 두 기능을 활용하고 있습니다.
    • 장점
      : 이 두 기능을 함께 사용하면 서비스의 안정성과 효율성이 높아집니다(또한, 돈을 아낄 수 있어요^^;). 사용자는 서비스가 항상 사용 가능하다는 것을 보장받으며, 기업은 리소스를 효과적으로 관리할 수 있습니다. 따라서, LoadBalancer와 AutoScaling은 쿠버네티스와 EKS에서 필수적인 기능이며, 이들을 잘 활용하는 것이 중요합니다.



    마치며...

    쿠버네티스와 EKS에서 LoadBalancer와 AutoScaling은 우리가 적극적으로 활용하고 있는 클라우드 서비스를 더욱 효율적으로 만드는 데 중요한 도구입니다. 이들을 잘 이해하고 활용하면, 우리가 활용하고 있는 환경, 시스템, 나아가 솔루션을 더욱 효과적으로 통제할 수 있을 것입니다! 오늘도 테크신이었습니다. 감사합니다!

     


     

    [관련 포스팅]

    2023.02.12 - [데이터] - 쿠버네티스 및 EKS : 유연한 클라우드 컴퓨팅 세계

     

    쿠버네티스 및 EKS : 유연한 클라우드 컴퓨팅 세계

    "테크씬 - 핵심 요약 후 시작합니다." Kubernetes는 컨테이너화된(Containerized) 애플리케이션의 배포/확장 및 관리를 자동화하는 오픈 소스 플랫폼 (별명은 K8s랍니다. 너무 길어서 이렇게 쓰는 것 같습

    techscene.tistory.com

    2023.02.23 - [데이터] - 클라우드 전쟁 : AWS, GCP, Azure

     

    클라우드 전쟁 : AWS, GCP, Azure

    "테크씬 - 핵심 요약 후 시작합니다." AWS, GCP, Azure는 각각 고유의 기능과 서비스를 제공하는 Top-Tier 클라우드 컴퓨팅 플랫폼임 AWS는 애플리케이션을 지원하기 위한 다양한 서비스와 도구가 필요

    techscene.tistory.com

     

     

     

     
     
    반응형