[AWS] ECS Fargate, EKS Fargate

gyeol·4일 전

AWS

목록 보기
20/20
post-thumbnail

AWS SAA 자격증을 준비하며 ECS에만 Fargate가 있는 줄 알았는데 EKS에도 있다는 것을 알게됐다. 도대체 이 차이가 무엇일까?

결론부터 말하자면 Fargate는 서비스라기보다 옵션에 가깝다.

EKS? ECS?

먼저 EKS는 AWS 클라우드와 온프레미스 데이터 센터 모두에서 원활하게 쿠버네티스를 실행하는데 사용되는 완전 관리형 쿠버네티스 서비스이다. ECS는 AWS에서 컨테이너화된 애플리케이션을 쉽게 배포, 관리, 확장할 수 있게 하는 컨테이너 서비스이다.

이때 EKS, ECS 모두 실행 환경을 EC2, Fargate 중 선택할 수 있다.

  • EC2 : 직접 관리하는 가상 서버
  • Fargate : AWS가 직접 관리해주는 서버리스 환경

AWS Fargate

먼저 AWS Fargate에 대해 알아보자면, AWS 인프라가 자동으로 관리하며 서버 관리가 필요없는 완전 관리형 컨테이너 실행 환경이다.

  • 서버리스 컨테이너 실행
  • 관리 부담 없음
  • 다양한 워크로드 지원
  • Fargate Spot 인스턴스 사용해 비용 절감 및 고가용성 유지 가능

ECS Fargate

ECS는 앞서 언급했듯 AWS가 직접 만든 오케스트레이션 도구이다. 그렇기에 AWS Fargate와 자주 사용된다.

  • 설정 간단
  • 복잡한 오버헤드없이 컨테이너 바로 실행 가능
  • AWS VPC 네트워킹을 그대로 사용하기에 이해 쉬움
  • 서버리스 환경으로 따로 관리 부담 없음
  • AWS의 다른 서비스와 호환 가능

이러한 특징때문에 빠르게 서비스를 런칭해야 하거나 단순 웹 서비스나 배치 작업에 많이 사용된다.

EKS Fargate

EKS는 쿠버네티스 환경이다. 보통은 EC2 노드를 붙여서 사용하지만 노드 관리가 번거로울 때 Fargate를 사용할 수 있다.

사진을 보면 알 수 있듯이 지속적으로 실행되어야 하는 서버들은 EC2 서버로 돌리고 잠시 실행되는 배치 작업이나 서버 관리가 귀찮은 마이크로 서비스들은 EKS Fargate로 돌아간다. 또한 사진 상단에 보면 EKS Control Plane은 사용자의 VPC가 아닌 AWS가 관리하는 별도의 VPC가 존재함을 볼 수 있다.

주의할 점

  • DaemonSet 사용 불가
    쿠버네티스에서 로그 수집이나 모니터링을 위해 노드마다 하나씩 띄우는 DaemonSet을 사용할 수 없다.

  • Privileged 모드 불가
    보안상의 이유로 privileged 권한이 필요한 컨테이너는 실행할 수 없다.

  • 1 Pod = 1 Node
    하나의 Fargate 인스턴스에서 오직 하나의 Pod만 뜬다.

  • 초기 구동 속도
    Pod을 띄울 때마다 격리된 환경을 새로 만들기에 미리 떠 있는 EC2 노드에 배포하는 것보다 조금 느릴 수 있다.

이러한 제약 사항들 때문에 노드 관리에 리소스를 쓰지 않고 싶을 경우, 배치 작업이나 CI/CD 파이프라인처럼 일시적으로 실행되는 Pod의 경우에 사용된다.

profile
공부 기록 공간 '◡'

0개의 댓글