BLOG

AWS re:Invent 2022 세션 후기 #29 – 쿠버네티스 2
작성일: 2022-12-01
[CON324] Optiminzing Amazon EKS for performance and cost on AWS

연사 : Alex Kestner, Raghav Tripathi

일시: 2022.11.29 14:00 ~ 15:00

장소: MGM Level 1, Boulevard 163, Content Hub

작성자 : 메가존클라우드 Cloud Technology Center 이재정 매니저

 

 

금번 세션의 개요는 하기와 같습니다.

  • EKS 서비스에 대한 기본적인 소개와 k8s 비용 최적화에 대한 challenge
  • kubecost를 통한 리소스 비용 추적
  • AWS Graviton, EC2 Spot을 활용한 비용 최적화
  • Karpenter를 활용한 자동화된 비용 최적화

 

 

현재 고객의 니즈는 크게 아래 4가지로 말할 수 있습니다.

  • 서비스를 시장에 더 빠르게 제공하는 것
  • 비용 절감
  • 고성능, 확장성
  • 보안 및 격리

 

이번 세션에서는 EKS를 사용하는 환경에서 성능, 비용적인 부분에서 어떻게 개선할 수 있는지에 대한 의견을 들어 볼 수 있었습니다.

 

 

EKS cluster의 기본 구조를 살펴보면 아래와 같습니다.

  • AWS에서 관리하는 계정에서 실행되는 Control plane
  • 자체관리형 EC2 노드
  • 프로비저닝 및 수명 주기 관리를 자동화하는 EKS 관리형 노드 그룹
  • 가상머신 그룹을 직접 프로비저닝, 구성, 확장할 필요가 없는 Fargate
  • pod의 총 리소스 요청을 모니터링하고, 노드의 시작/종료, 예약 대기 시간을 결정하여 비용을 줄여주는 Karpenter

 

 

쿠버네티스의 비용 최적화 과제에 대해서는 비용 최적화가 근본적으로 비용과 성능 사이에 tension이 존재하기 때문에 두 가지 목표를 달성하는 것은 어렵습니다.

 

 

Kubernetes cluster를 구성할 때 비용이 발생하는 요인들을 살펴보아야 합니다. Compute 비용이 대략 90% 이상으로 대부분의 비용을 차지하고 있으며, 그 하위로 네트워킹, 스토리지, 3rd 솔루션 등이 있습니다.

 

 

FinOps란, 커뮤니케이션, 비즈니스 협업, 엔지니어링을 강조하는 ‘Finance’와 ‘DevOps’의 합성어입니다. 여러 팀의 협업을 통해 클라우드에 대한 재정적 책임을 부여할 뿐 아니라, 속도, 비용, 성능 등의 균형적 관리에 주안점을 둡니다.

 

FinOps를 사용함에 따라 각 팀에서 어떤 지출 결정을 내리는지에 대한 이유를 명확히 할 수 있습니다.

 

 

비용 최적화를 위해 우선 Kubernetes에서 세분화된 비용 가시성을 확보해야 합니다.

클러스터가 증가함에 따라 각각에 고유한 aws 계정을 할당하는 것은 제한이 있고, 단일 계정으로 관리한다고 하더라도 cluster 별로 EC2 인스턴스 비용을 파악하기는 어려울 수 있습니다.

이 점을 해소하기 위해 Amazon EKS는 기본적으로 클러스터 내 모든 EC2에 비용 할당 태그를 추가합니다.

 

 

또한 AWS와 kubecost가 협력하여 비용 모니터링에 효율성을 얻을 수 있습니다.

많은 조직이 Kubernetes 지출을 모니터링 하지 않고, 월별 추정치만 사용하고 있기 때문에 세분화된 비용 파악이 어려울 수 있습니다.

그러나 Kubecost를 사용하면 pod, node, namespace, label 등을 포함한 Kubernetes 리소스별 세분화된 비용을 확인할 수 있으며, 무료로 제공됩니다.

 

 

대표적으로 Adobe 사가 사용하고 있으며, kubecost와 Kubernetes label을 조합하여 사용하고 있습니다.

 

 

비용 최적화 part 1. AWS Graviton

Graviton3는 2 대비 25% 성능이 향상된 프로세서입니다. 유사한 다른 EC2 인스턴스 대비 60% 에너지 효율적이며, 대표적으로 C7g 인스턴스는 컴퓨팅 집약적인 워크로드에 가격 대비 최고의 성능을 제공합니다.

 

 

Graviton기반 인스턴스를 채택한 대표적인 기업으로 Snapchat등 소셜 미디어 서비스로 유명한 Snap Inc가 있습니다. EKS가 초당 200만 건의 트랜잭션을 처리하는 데 도움이 되었고, 개발 노력의 77%를 줄일 수 있었다고 합니다.

 

 

비용 최적화part2. EC2 Spot

EKS 관리형 노드 그룹을 사용하여 EC2 스팟 인스턴스 생성 및 관리가 가능합니다. 스팟 인스턴스를 사용함으로써 중단 가능한 워크로드에 대해 비용 절감이 가능합니다.

배치 처리, 빅 데이터, 상태 비 저장 API 엔드 포인트와 같은 Kubernetes 클러스터에서 내결함성 애플리케이션을 실행하는 데 매우 적합합니다.

 

 

고객 사례로 디지털 스트리밍 플랫폼사인 airtel 사가 있으며, 스팟 인스턴스를 활용하여 비용의 47%를 절감할 수 있었습니다. 스팟 인스턴스를 사용할 수 없을 때에는 중단에 신속하게 대응하기 위해 이벤트 기반 서비스인 AWS Node Termination Handler를 구현했습니다.

 

 

비용 최적화 part 3. Karpenter

Karpenter는 Kubernetes cluster 오토 스케일러로, 오픈소스 입니다. Karpenter가 클러스터에 설치되면 pod의 전체 리소스 요청을 모니터링하고, 새로운 노드의 시작/종료 결정을 통해 인프라에 대한 비용을 절감할 수 있습니다.

 

 

대표적인 고객 사례로, 여행 플랫폼인 Expedia Group이 있습니다. Expedia는 Karpenter를 사용하여 EC2 spot 인스턴스를 관리했고, 이를 통해 비용을 절감하고 운영 오버헤드를 줄일 수 있었습니다.

 

세션 내용을 요약하자면, Kubecost를 활용해 EKS 내 리소스에 대한 세분화된 비용 추적이 가능하며, Karpenter, EC2 spot, Graviton 프로세서 등을 활용하여 인프라에 대한 비용 절감이 가능합니다. 또한 워크로드에 따라 적절한 방법을 도입하고, FinOps를 통해 체계적인 비용 프로세스를 구축한다면 cost optimizing에 큰 도움이 될 것이라고 생각합니다.

 

 

👉본 세션 내용 관련하여 추가 문의나 요청 사항이 있으시다면? 우측 링크로 이동하셔서 편하게 의견을 남겨주세요! https://www.megazone.com/contact/

 

👉 다른 세션 후기글이 궁금하시다면? 아래 링크를 통해 확인해 주세요!

🔷Keynote Report #1. Day1 Monday Night Live with Peter DeSantis 확인하기

🔷Keynote Report #2. Day2 Adam Selipsky Keynote 확인하기

🔷Keynote Report #3. Day3 Swami Sivasubramanian Keynote 확인하기

🔷Keynote Report #4. Day4 Dr.Werner Vogels Keynote 확인하기

 

✅1. 데이터 보호 세션 후기 확인하기

✅2. 마이그레이션 세션 후기 확인하기

✅3. 현대화 (Modernization)세션 후기 확인하기

✅4. SAP 세션 후기 확인하기

✅5. 쿠버네티스 세션 후기 확인하기

✅6. 마이그레이션2 세션 후기 확인하기

✅7. 분석 세션 후기 확인하기

✅8. AI/ML 세션 후기 확인하기

✅9. AI/ML 2 세션 후기 확인하기

✅10. 현대화 (Modernization) 2 세션 후기 확인하기

✅11. 현대화 (Modernization) 3 세션 후기 확인하기

✅12. Data Lakes 세션 후기 확인하기

✅13. 네트워킹 세션 후기 확인하기

✅14. 마이그레이션3 세션 후기 확인하기

✅15.비용 최적화 세션 후기 확인하기

✅16. 보안 세션 후기 확인하기

✅17. SAP 2 세션 후기 확인하기

✅18. 마이그레이션4 세션 후기 확인하기

✅19. DevOps 세션 후기 확인하기

✅20. 신규업데이트 세션 후기 확인하기

✅21. 스토리지 세션 후기 확인하기

✅22. Amazon 세션 후기 확인하기

✅23. 신규업데이트2 후기 확인하기

✅24. 거버넌스 후기 확인하기

✅25. 거버넌스2 후기 확인하기

✅26. DevOps 2 후기 확인하기

✅27. AI/ML 3 세션 후기 확인하기

✅28. 분석2 세션 후기 확인하기

✅29. 쿠버네티스2 세션 후기 확인하기

✅30. 분석 3 세션 후기 확인하기

✅31. 서버리스 컴퓨팅 세션 후기 확인하기

✅32. 신규 업데이트 3 세션 후기 확인하기

✅33. 신규 업데이트 4 세션 후기 확인하기

✅34. 보안 2 세션 후기 확인하기

✅35. 분석 4 세션 후기 확인하기

✅36. 모니터링 세션 후기 확인하기

✅37. AI/ML 4 세션 후기 확인하기

✅38. 운영 세션 후기 확인하기

✅39. 운영 2 세션 후기 확인하기

✅40. 데이터베이스 세션 후기 확인하기

✅41. 데이터베이스 2 세션 후기 확인하기

✅42. 보안 3 세션 후기 확인하기

✅43. SaaS 세션 후기 확인하기

✅44. 컴퓨팅 세션 후기 확인하기

✅45. 신규 업데이트 : AWS SnapStart 세션 후기 확인하기

✅46. 신규 업데이트 : 네트워크 최적화 인스턴스와 최신 Amazon EC2 네트워킹 세션 후기 확인하기

✅47. 아키텍처 세션 후기 확인하기

✅48. SAP 3 세션 후기 확인하기

✅49. 고객사례 세션 후기

✅50. SAP 4 세션 후기 확인하기

✅51. 데이터베이스, 마이그레이션 세션 후기 확인하기

✅52. 보안 4 세션 후기 확인하기

✅53. 보안 규정 세션 후기 확인하기

✅54. 데이터베이스 3 세션 후기 확인하기

✅55. 신규 업데이트 5 세션 후기 확인하기

✅56 .DevOps 3 세션 후기 확인하기

✅57. 분석 5 세션 후기 확인하기

✅58. AI/ML 5 세션 후기 확인하기

✅59. DevOps 4 세션 후기 확인하기

✅60. 신규업데이트 6 세션 후기 확인하기

✅61. 분석 6 세션 후기 확인하기

✅62. 데이터 보호 세션 후기 확인하기

✅63. AI/ML 6 세션 후기 확인하기

✅64. DevOps 5 세션 후기 확인하기

✅65. 신규업데이트 7 세션 후기 확인하기

✅66. 신규 업데이트 8 세션 후기 확인하기