AWS Fargate 서비스에 대해서 알아보기

AWS Fargate 서비스란?

AWS Fargate는 컨테이너 실행을 위한 서버리스 컴퓨팅 엔진입니다. 즉, 서버를 직접 프로비저닝하거나 관리하지 않고도 컨테이너를 실행할 수 있는 서비스입니다. Fargate는 Amazon ECS(AWS의 자체 컨테이너 오케스트레이션 서비스) 또는 Amazon EKS(Kubernetes 기반)와 함께 사용할 수 있습니다.

📌 주요 특징

항목설명
서버리스EC2 인스턴스를 직접 생성하거나 관리하지 않아도 컨테이너가 실행됨
자동 리소스 관리CPU와 메모리 할당량만 설정하면 나머지는 Fargate가 자동 처리
컨테이너 단위 과금실제 컨테이너 실행 시간과 리소스(CPU/메모리) 사용량 기준으로 요금 부과
보안 격리각 작업(Task)은 자체 가상화된 환경에서 실행되어 보안성이 높음
ECS / EKS 연동Amazon ECS 또는 EKS에서 선택 가능 (Fargate launch type 또는 profile 설정)

🧩 Fargate가 유용한 경우

  • 인프라 관리 부담 없이 빠르게 컨테이너 기반 애플리케이션을 배포하고 싶은 경우
  • 사용량이 예측되지 않거나 스케일이 자주 변하는 워크로드
  • 마이크로서비스 아키텍처 기반의 애플리케이션
  • 보안, 네트워크 설정을 세밀하게 분리하고 싶은 경우

🚫 고려할 점

  • 비용: 장기적으로는 EC2 기반의 컨테이너 실행보다 비용이 높을 수 있음
  • 제한 사항: ECS에서 사용할 경우 일부 ECS 기능은 EC2 launch type에서만 제공됨 (예: EFS 마운트 등은 일부 제약 존재)
  • 네트워크 제한: ENI(Elastic Network Interface) 수 제한 때문에 대규모 Task 배포 시 한계가 있음

🔗 왜 ECS 또는 EKS가 필요한가요?

Fargate는 컨테이너를 실행해주는 “컴퓨팅 실행 엔진”일 뿐입니다.
컨테이너를 배포하고 관리하기 위한 컨트롤 플레인(Control Plane)은 별도로 필요하며,
이 역할을 ECS 또는 EKS가 담당합니다.

📌 간단히 비교하면:

항목설명
Fargate컨테이너를 “어디서”, “어떻게” 실행할지 담당 (서버 관리不要)
ECS / EKS컨테이너를 “무엇을”, “언제”, “몇 개” 실행할지 정의하고 관리 (컨트롤 타워 역할)

🔧 구조 예시

  • ECS + Fargate:
    Task Definition에 원하는 컨테이너 이미지, CPU, 메모리 등을 설정
    → Fargate가 이를 실행
  • EKS + Fargate:
    Kubernetes의 Pod를 정의한 YAML 파일을 배포
    → Fargate가 해당 Pod를 실행

✅ 즉, Fargate 사용을 원한다면?

  • ECS 또는 EKS 중 하나를 반드시 선택해야 합니다
  • 단순한 아키텍처나 관리 자동화를 원한다면 ECS가,
  • Kubernetes 익숙하거나 멀티 클라우드 고려 중이면 EKS가 적합합니다