본문 바로가기
클라우드/AWS

[AWS] Fargate: 서버리스 컨테이너 실행 서비스

by 클레어몬트 2025. 3. 7.

ㅁAWS Fargate: AWS에서 제공하는 서버리스(Serverless) 컨테이너 실행 서비스

 

사용자가 직접 EC2 인스턴스를 프로비저닝하거나 관리할 필요 없이 컨테이너를 실행할 수 있는 환경을 제공한다

 

즉, 인프라 관리 없이 컨테이너를 실행할 수 있는 방식으로, Amazon ECS(Elastic Container Service)Amazon EKS(Elastic Kubernetes Service)와 함께 사용할 수 있다

AWS EKS에서 Fargate 프로파일을 관리하는 대시보드

 

(Fargate의 주요 특징)

- 서버리스 환경에서 컨테이너 실행

  • EC2 인스턴스를 프로비저닝하거나 유지보수할 필요 없이 컨테이너 실행
  • 애플리케이션 라이프사이클과 인프라 라이프사이클이 동일 (같이 생성되고, 같이 종료됨)

- MicroVM(Firecracker) 기반 실행

  • AWS Fargate는 Firecracker 기반의 MicroVM(Micro Virtual Machine)을 사용하여 컨테이너를 격리 및 실행
  • 빠른 부팅 속도와 경량화된 가상 머신 환경 제공

- EKS 및 ECS 지원

  • ECS(Elastic Container Service): AWS에서 직접 관리하는 컨테이너 오케스트레이션 서비스
  • EKS(Elastic Kubernetes Service): Kubernetes 환경에서 Fargate를 사용할 수 있도록 지원
  • Fargate Profile을 사용하여 특정 namespace 또는 label을 기반으로 실행 가능

- 자동 확장 및 비용 최적화

  • 사용자가 직접 인프라를 관리하지 않아도, 필요할 때 컨테이너 인스턴스를 자동으로 확장
  • 사용한 리소스에 대해서만 요금이 청구되는 Pay-as-you-go 모델 적용

(Fargate와 전통적인 VM 비교)

 

MicroVM을 사용한 Fargate의 장점

  • 경량화된 가상 환경으로 인한 빠른 실행 속도
  • 불필요한 OS 프로세스를 제거하여 성능 최적화
  • 컨테이너 실행에 최적화된 환경 제공

 

Fargate 장점

  • 서버리스(Serverless) 환경 → 인프라 관리 불필요
  • 빠른 확장 및 배포 → 트래픽 증가 시 자동 확장
  • 보안 격리 → 각 컨테이너가 개별적인 MicroVM에서 실행됨
  • 비용 최적화 → 사용한 리소스에 대해서만 요금 부과

➖ Fargate 단점

  • EC2 대비 비용이 상대적으로 높음
  • 커스텀 네트워크 설정이 제한적
  • GPU 지원 미제공 (현재 EC2 기반 실행 필요)

Fargate 사용 예시

📌 ECS에서 Fargate 실행

{
  "cluster": "my-ecs-cluster",
  "launchType": "FARGATE",
  "taskDefinition": "my-task:1",
  "networkConfiguration": {
    "awsvpcConfiguration": {
      "subnets": ["subnet-12345678"],
      "securityGroups": ["sg-12345678"],
      "assignPublicIp": "ENABLED"
    }
  }
}
  • launchType: "FARGATE" → EC2가 아닌 Fargate에서 실행
  • 네트워크 설정(awsvpcConfiguration)을 통해 컨테이너가 실행될 서브넷과 보안 그룹(SG) 지정

📌 EKS에서 Fargate 실행 (Fargate Profile)

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: my-eks-cluster
  region: ap-northeast-2

fargateProfiles:
  - name: my-fargate-profile
    selectors:
      - namespace: my-app
  • Fargate Profile을 사용하여 특정 네임스페이스(my-app)에서 실행되는 파드를 자동으로 Fargate에서 실행

Fargate vs EC2 – 어떤 것을 선택해야 할까?

(i) Fargate를 사용해야 하는 경우

  • EC2를 관리하지 않고 빠르게 컨테이너를 실행하고 싶은 경우
  • 트래픽 변화에 따라 자동으로 확장 및 축소가 필요한 경우
  • 서버 운영이 아닌 애플리케이션 코드에 집중하고 싶은 경우

(ii) EC2 기반 컨테이너 실행을 사용하는 경우

  • 지속적으로 실행되는 애플리케이션으로 장기적인 비용 절감이 필요한 경우
  • GPU 또는 특정 네트워크 설정이 필요한 경우
  • 대량의 트래픽을 처리하는 서비스로 고성능 컨테이너 실행이 필요한 경우


 

 

[정리]

AWS Fargate는 EC2 인스턴스를 직접 관리할 필요 없이 컨테이너를 실행할 수 있는 서버리스(Container-as-a-Service) 환경을 제공한다

 

Fargate는 컨테이너 배포 및 운영을 단순화하고, 인프라 관리 없이 애플리케이션 개발에 집중할 수 있도록 돕는다.
ECS와 EKS 환경에서 손쉽게 통합되어 사용할 수 있으며, Firecracker 기반의 MicroVM을 활용하여 보안성과 성능을 최적화한다.
비용 모델과 사용 목적을 고려하여, EC2 기반 컨테이너 실행과 비교하여 적절한 방식을 선택하는 것이 중요하다.

 

🚀 클라우드 네이티브 환경에서 컨테이너 기반 애플리케이션을 구축할 때, Fargate는 강력한 선택지가 될 수 있다!