ㅁAWS Fargate: AWS에서 제공하는 서버리스(Serverless) 컨테이너 실행 서비스
사용자가 직접 EC2 인스턴스를 프로비저닝하거나 관리할 필요 없이 컨테이너를 실행할 수 있는 환경을 제공한다
즉, 인프라 관리 없이 컨테이너를 실행할 수 있는 방식으로, Amazon ECS(Elastic Container Service) 및 Amazon EKS(Elastic Kubernetes Service)와 함께 사용할 수 있다
(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는 강력한 선택지가 될 수 있다!
'클라우드 > AWS' 카테고리의 다른 글
[AWS] Storage - EFS, EBS (0) | 2025.03.07 |
---|---|
[AWS] Amazon ECR(Elastic Container Registry)이 궁금해요(feat.도커) (0) | 2025.03.07 |
[AWS] IAM(Identity and Access Management): 롤 플레이 (0) | 2025.03.06 |
[AWS] Amazon EKS가 궁금해요(feat.쿠버네티스) (0) | 2025.03.06 |
[AWS] ELB(Elastic Load Balancer)란? (1) | 2025.03.06 |