면접관 : 단일 클라우드 환경에서, ECS가 아닌 EKS를 사용하셨네요.
ECS가 비용도 없고, 관리도 편할텐데 어떤 이유로 EKS를 선택하셨을까요?
💡 개념 정리
1. EKS (Elastic Kubernetes Service)
쿠버네티스 기반의 컨테이너 오케스트레이션 서비스. 유연성, 확장성, 이식성 및 커뮤니티 지원이 강점이지만, 설정 및 관리 복잡성이 높고 AWS의 쿠버네티스 관리 비용 (시간당 $0.1, 월 $73)이 부과됨.
2. ECS (Elastic Container Service)
AWS 자체 컨테이너 오케스트레이션 서비스. 관리 편의성, 비용 효율성이 장점. AWS 서비스와의 통합이 용이하지만, 쿠버네티스에 비해 유연성, 이식성이 떨어짐. 클러스터 구성 비용은 없음.
🍼 왕초보
ECS와 EKS를 사용해봤는데, EKS가 좀 더 익숙하고 사용하기 편해서 EKS를 선택했습니다. 그리고 주변에서도 EKS를 많이 사용한다고 해서 저도 그렇게 사용하게 되었습니다.
가능한 추가 질문
1. EKS가 정확히 어떤 점에서 더 익숙하고 편하다고 느끼셨나요?
2. 주변에서 많이 사용한다는 것이 기술 스택 선택에 있어 중요한 기준이 될 수 있을까요?
🐣 초보
ECS가 비용과 관리 측면에서 이점이 있다는 점은 알고 있습니다. 하지만 제가 프로젝트를 진행할 당시 쿠버네티스 생태계의 다양한 도구들을 활용하고 싶었고, 확장성과 유연성 측면에서 EKS가 더 유리하다고 판단했습니다. 예를 들어, 서비스 메시나 CI/CD 파이프라인 연동에 EKS가 더 용이하다고 생각했습니다.
서비스 메시: MSA에서 MS 간 통신을 안정적이고 효율적으로 관리하기 위한 인프라 계층. 각 서비스 옆에 프록시를 배포하여, 이 프록시들이 서비스 간의 모든 네트워크 트래픽을 가로채고 처리합니다. (예시 : Istio, Linkerd)
CI/CD 파이프라인: 소프트웨어 개발부터 배포까지의 전 과정을 자동화한 일련의 단계와 프로세스 (예시: Jenkins, GitLab CI/CD, GitHub Actions, AWS CodePipeline)
가능한 추가 질문
1. 쿠버네티스 생태계의 어떤 도구들을 활용하고 싶으셨는지 구체적으로 설명해주실 수 있나요?
2. ECS 환경에서도 확장성이나 유연성을 확보할 수 있는 방법들이 있는데, 이에 대해서는 고려해보셨나요?
🥉 하수
ECS와 EKS의 장단점을 모두 고려했습니다. 단일 클라우드 환경이더라도 향후 멀티 클라우드 전략을 고려하거나, 온프레미스 환경과의 하이브리드 클라우드 구성 가능성을 열어두기 위해 쿠버네티스 기반인 EKS를 선택했습니다. 또한, 쿠버네티스 커뮤니티의 활발한 지원과 풍부한 자료를 통해 문제 해결이 용이하다는 점도 장점이라고 생각했습니다. 관리 측면에서는 EKS가 ECS보다 복잡하지만, 장기적인 관점에서 얻을 수 있는 이점이 더 크다고 판단했습니다.
가능한 추가 질문
1. ECS가 하이브리드 클라우드 구성 시 어려움이 있나요?
2. 멀티 클라우드나 하이브리드 클라우드 전략을 구체적으로 어떻게 고려하셨는지 설명해주실 수 있나요?
2. EKS의 관리 복잡성을 해결하기 위해 어떤 노력을 하셨나요?
🥈 중수
단일 클라우드 환경에서 ECS의 비용 효율성과 관리 편의성은 분명한 장점입니다. 하지만 저희 팀은 MSA를 기반으로 서비스를 개발하고 있었고, 각 마이크로서비스 간의 유연한 배포 및 관리가 중요했습니다. EKS는 쿠버네티스의 강력한 스케줄링 및 롤링 업데이트 기능, 그리고 Istio와 같은 서비스 메시와의 통합 용이성 덕분에 MSA 환경에 더 적합하다고 판단했습니다. 또한, 개발 및 운영 팀의 쿠버네티스 스킬셋 강화와 이직 시에도 유리한 기술 스택이라는 점도 고려했습니다. 초기 설정 비용과 관리의 복잡성은 있었지만, 장기적인 아키텍처 관점에서 EKS가 더 나은 선택이었습니다.
롤링 업데이트: 실행 중인 애플리케이션의 다운타임(서비스 중단 시간)을 최소화하면서 새로운 버전으로 업데이트하는 배포 전략입니다. 모든 인스턴스를 한 번에 교체하는 것이 아니라, 기존 버전의 인스턴스를 하나씩 또는 소그룹으로 새 버전의 인스턴스로 점진적으로 교체해 나가는 방식
가능한 추가 질문
1. EKS의 스케줄링 및 롤링 업데이트 기능이 ECS의 기능과 비교하여 어떤 구체적인 이점이 있나요?
2. 개발 및 운영 팀의 EKS 스킬셋 강화를 위해 어떤 노력을 기울이셨나요?
🥇 고수
면접관님 말씀처럼 단일 클라우드 환경에서 ECS는 비용 효율성과 관리 편의성 면에서 분명한 장점이 있습니다. 하지만 저희는 아키텍처의 미래 확장성, 팀의 역량, 그리고 장기적인 기술 부채 관리를 종합적으로 고려하여 EKS를 선택했습니다.
가장 큰 이유는 쿠버네티스 생태계의 풍부한 기능과 유연한 확장성을 활용하고 싶었기 때문입니다. MSA 환경에서 복잡한 서비스 간의 유연한 배포와 관리가 필요했고, EKS는 강력한 스케줄링 및 롤링 업데이트 기능 외에도 Istio 같은 서비스 메시와의 통합, CRD를 활용한 맞춤형 오케스트레이션이 용이했습니다.
또한, 저희 팀은 이미 쿠버네티스에 대한 경험과 숙련된 인력을 보유하고 있었기에, EKS 도입 시 학습 곡선을 줄이고 효율적인 개발 및 운영 환경을 빠르게 구축할 수 있었습니다. 장기적으로는 특정 클라우드 벤더에 대한 종속성을 줄이고 멀티 클라우드 전략 가능성을 열어두는 측면에서도 EKS가 더 나은 선택이라고 판단했습니다.
CRD (Custom Resorce Definition): K8s의 핵심 기능 중 하나로, 쿠버네티스 API를 확장하여 사용자가 직접 새로운 리소스 유형을 정의할 수 있게 해주는 기능
CRD를 활용한 맞춤형 오케스트레이션: CRD를 사용하여 정의한 사용자 정의 리소스의 상태를 감시하고, 이 상태를 원하는 목표 상태로 만들기 위해 자동화된 로직(컨트롤러 또는 오퍼레이터)을 구현 (예시: 데이터베이스 오퍼레이터, 메시징 큐 오퍼레이터 등)
가능한 추가 질문
1. EKS 도입 후 예상치 못했던 관리상의 어려움은 없었는지, 있었다면 어떻게 해결하셨는지 궁금합니다.
2. CRD를 활용한 유연한 확장을 구체적으로 어떤 부분에 적용하셨는지 사례를 들어 설명해주실 수 있나요?
3. EKS 선택 시 '아키텍처의 미래 확장성'을 강조하셨는데, 구체적으로 어떤 시나리오에서 ECS 대비 EKS가 더 유리한 확장성을 제공한다고 보시나요?
4. 팀의 쿠버네티스 숙련도라는 점이 EKS 선택의 주요 이유 중 하나라고 하셨는데, 만약 팀에 쿠버네티스 경험이 전혀 없었다면 어떤 선택을 고려하셨을까요?
🧙 고인물
네, 면접관님 말씀처럼 ECS는 단일 클라우드 환경에서 비용과 관리 편의성 면에서 매우 효율적인 서비스입니다. 하지만 저희는 비즈니스 목표와 팀의 기술 전략을 기반으로 EKS가 더 적합하다고 판단했습니다.
첫째, 저희 팀은 이미 쿠버네티스 운영 경험과 전문성을 축적하고 있었습니다. 이는 EKS 도입 시 기존 지식 자산을 활용하여 빠른 시간 안에 안정적인 DevOps 파이프라인을 구축하고 생산성을 높이는 데 크게 기여했습니다. 새로운 도구 학습에 드는 비용과 시간을 절약할 수 있었죠.
둘째, 아키텍처의 미래 확장성과 벤더 중립성을 중요하게 보았습니다. 현재는 단일 클라우드지만, 장기적으로 하이브리드 또는 멀티 클라우드 전환 가능성을 염두에 두었고, 쿠버네티스는 클라우드 벤더 중립적인 표준으로서 이러한 전략 달성에 필수적이라고 생각했습니다. 또한, CNCF 생태계의 다양한 프로젝트들과의 연동을 통해 복잡한 마이크로서비스 아키텍처를 효율적으로 관리하고 확장할 수 있다는 점이 큰 장점이었습니다.
결론적으로, EKS는 초기 복잡성이 따르지만, 팀의 숙련도, 비즈니스 성장에 따른 유연한 아키텍처 확장, 그리고 장기적인 기술 부채 관점에서 볼 때 훨씬 더 전략적인 선택이었습니다.
가능한 추가 질문
1. EKS 운영 과정에서 발생했던 가장 큰 기술적 도전 과제는 무엇이었으며, 이를 어떻게 극복하셨는지 구체적인 사례를 들어 설명해주실 수 있을까요?
2. ECS와 EKS를 동시에 고려하는 상황에서, EKS의 어떤 점이 비용 및 관리의 초기 부담을 상회하는 가치를 제공한다고 판단하게 되었는지, 측정 가능한 지표나 논리적인 근거를 제시해주실 수 있을까요?
3. EKS 선택의 주요 이유로 '벤더 중립성'을 언급하셨습니다. 실제 프로젝트에서 이 벤더 중립성이 어떤 구체적인 이점을 가져다주었는지, 혹은 향후 어떤 이점으로 작용할 것이라고 기대하시나요?
4. 팀의 전문성 축적이 EKS 도입의 생산성 향상에 기여했다고 하셨는데, 이러한 전문성을 어떻게 유지하고 발전시키셨는지 궁금합니다.
👏
자, 이렇게 쿠버네티스와 클라우드 관련 면접에서 나올 수 있는 질문과 답변 그리고 추가 질문에 대해 다뤄봤습니다!
저도 실무를 하면서 궁금했던 사항인데, 이번에 정리하게 된 것 같네요 🤗
평비의 이 평범한 글이 여러분에게 비범한 도움이 되셨으면 좋겠습니다 👍
'기술 면접 준비' 카테고리의 다른 글
Reactive Programming과 Spring WebFlux - 기술 면접 준비 (4) | 2025.06.09 |
---|---|
AWS와 컨테이너 (ECR, EC2, Fargate, ECS, EKS) - 기술 면접 준비 (6) | 2025.06.05 |
동기/비동기와 블로킹/논블로킹 - 기술 면접 준비 (1) | 2025.05.26 |
동시성과 병렬성 - 기술 면접 준비 (0) | 2025.05.23 |
트랜잭션 락 - 기술 면접 준비 (1) | 2025.05.18 |