AWS EKS로 Kubernetes를 사용해보자

김철기·2022년 6월 14일
1

Kubernetes

목록 보기
1/5

안녕하세요. Gameeye에서 deeplol.gg 서비스를 개발 중인 김철기입니다.
클라우드 서버 인프라 구축, 백엔드 개발, 딥러닝 모델 연구를 담당하고 있습니다.

목차

MSA

  • MSA란?
  • MSA를 채택하려는 이유

쿠버네티스

  • 쿠버네티스란?
  • 쿠버네티스를 사용하는 이유

환경 구축

  • AWS EKS를 이용하여 환경 구축하기

MSA

MSA란?

기존에 사용하던 전통적인 개발 방법을 모놀리틱(Monolithic) 아키텍처라고 합니다. 모놀리틱 아키텍처는 전체 어플리케이션이 하나로 되어 있는 것이 특징입니다.
MSA란 마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 하나의 어플리케이션을 상호 독립적인 최소 구성 요소로 분할하는 방법으로 모놀리틱 아키텍처와 반대되는 개념입니다.

MSA를 채택하려는 이유
MSA를 채택하는 것으로 얻을 수 있는 이점이 있습니다.

  • 서비스가 독립적이기 때문에 특정 서비스에 문제가 발생하더라도 전체 서비스가 다운되지 않는다.
  • 개발자들에게 업무를 분배하기 용이하고 각자 원하는 언어와 DB로 작업할 수 있다.
  • 기존 서비스에 영향을 주지 않고 서비스를 확장시킬 수 있다.

위의 이점들을 고려해보았을 때 MSA를 채택하는 것으로 서비스 개발과 운영 효율이 크게 높아질 것으로 기대되어 채택하려고 합니다.

쿠버네티스

쿠버네티스란

쿠버네티스는 도커(Docker)같은 컨테이너를 관리하는 컨테이너 오케스트레이션입니다. 컨테이너 오케스트레이션은 서버 클러스터에 컨테이너를 배포합니다. 쿠버네티스는 단순한 컨테이너 플랫폼이 아닌 마이크로 서비스, 클라우드 플랫폼을 지향하고 컨테이너로 이루어진 것들을 쉽게 관리할 수 있도록 도와줍니다. 서버리스, CI/CD, DB, 웹서버, 머신러닝 등 다양한 기능이 플랫폼 위에서 동작할 수 있습니다.

쿠버네티스를 사용하는 이유
MSA를 채택하는데 있어서 이점만 살펴보았습니다. 하지만 MSA를 사용할때 발생할 수 있는 문제점도 있습니다. 가장 쉽게 생각해볼 수 있는 문제점은 여러 개의 마이크로 서비스를 운영 배포, 관리하는 문제입니다.
쿠버네티스는 컨테이너를 쉽게 관리할 수 있는 아주 많은 기능을 갖추었습니다. 대표적으로 아래 기능들이 있습니다.

  • 장애가 발생한 컨테이너를 자동으로 복구 해준다.
  • 컨테이너 버전관리가 용이하다.
  • 여러 개의 컨테이너를 한번에 배포, 삭제할 수 있다.
  • 로드밸런싱, 롤링 업데이트 등 동일한 서비스의 여러 컨테이너를 운영할 수 있는 기능이 있다.

따라서 서비스를 컨테이너로 구성하여 쿠버네티스로 관리하려고 합니다.
(아직 서비스에 적용하지는 못했습니다. 충분한 연구 후 적용하려고 합니다.🧐)

환경 구축

기존에 익숙하게 사용하던 AWS 기반 환경을 사용하려고 합니다.
AWS에서 제공하는 EKS를 사용하면 손쉽게 쿠버네티스를 구축할 수 있습니다.
예전에 kubeflow를 사용해보기 위해 작성해둔 포스팅과 내용이 동일하여 해당 포스팅 링크를 첨부하겠습니다.
AWS EKS로 쿠버네티스 구축하기

마무리

MSA와 쿠버네티스에 대해서 알아보고 쿠버네티스 환경까지 구축해보았습니다. 꽤 많이 한것 같지만 이제 시작입니다🤜
이제 서비스를 도커 이미지로 배포해보고 도커 이미지를 쿠버네티스로 서비스도 해보고 route53과 연결해 도메인관리도 해보고 CI/CD도 해보고... 갈길이 멉니다.
앞으로 시리즈로 잘 정리해서 포스팅을 보는 누구든 쉽게 쿠버네티스로 서비스가 가능하도록 해보겠습니다.
부족한글 읽어주셔서 감사합니다. 혹시 포스팅에 잘못된 내용이나 궁금한 부분이 있으시면 댓글남겨주세요!

참고

https://medium.com/finda-tech/finda-msa%EB%A5%BC-%EC%9C%84%ED%95%9C-kubernetes-%EC%84%B8%ED%8C%85%EA%B3%BC-ci-cd-pipeline-%EA%B5%AC%EC%84%B1-%EA%B7%B8%EB%A6%AC%EA%B3%A0-monitoring-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95-1-783bf49af15b
http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/
https://subicura.com/2019/05/19/kubernetes-basic-1.html

profile
Deepveloper, deeplol.gg, fleaman.shop

0개의 댓글