BLOG

[re:Invent 2019] Running Kubernetes Applications On AWS Fargate
작성일: 2019-12-05

* 세션명 : Running Kubernetes Applications On AWS Fargate
* 일자 : 2019/12/04 16:00~17:00
* 장소 : Aria, Level 3 West, Ironwood 5

 

 

AWS Container는 2015년 Amazon ECS를 시작으로 2017년 AWS Fargate, 2018년 Amazon EKS를 거쳐 지금 Amazon EKS와 AWS Fargate 간의 새로운 통합에 이르렀습니다. 이로써 개발자가 인프라에 대해 생각하지 않고 Kubernetes 클러스터에 컨테이너를 배포할 수 있습니다.

Fargate는 AWS 에서 동작하는 컨테이너를 위한 serverless compute platfrom 입니다. Orchestration 시스템에 의해 EKS와 ECS에서 다르게 동작합니다.

이전의 pods를 변경할 필요 없이 적용가능하며, 운영레벨에 바로 적용가능합니다. 또한 실행되고 있는 pods에 대해서만 과금되며 기존 AWS의 네트워킹, 보안과 통합됩니다.

EC2로 Kerbernetes Cluster를 구성했던 과거와 달리 Fargate를 사용하면 Service, Pod가 AWS안에서 구성되고 더는 EC2 Instance를 관리할 필요가 없습니다.

새롭게 추가된 Fargate profile을 통해 Fargate pod를 생성할 수 있습니다.

EC2 Instance를 사용할 때는 하나의 ENI를 공용으로 사용했다면, Fargate에서는 각각의 Pod가 하나의 ENI를 사용합니다. 이에 따라 Security Group을 지정할 때 이것을 고려해야합니다.

로드 밸런서 고려 사항은 ABL 수신은 정상적으로 작동, NBL의 지원의 시작, CLB는 EC2 인스턴스를 대상으로 해야 하므로 작동하지 않는 점입니다. Fargate를 사용하는 EKS의 스토리지 옵션은 ‘Fargate’는 공유할 수 있는 로컬 저장 공간을 제공과 Fargate를 위한 지속적인 스토리지(Persistent storage)는 고객들의 자주 묻는 질문입니다. 이에대해 가능성을 조사하고 있습니다. EKSCTL에 대한 지원은 Fargate 및 EC2 worker 노드를 지원과 Fargate 전용 클러스터를 생성, 이전과 다르지 않은 사용법입니다.

리소스 Limits에 대한 고려에는
1. AWS 계정은 각 지역(Region) 별로 Fargate tasks/pods가 100개로 제한됩니다. 이 제한은 늘릴 수 있습니다.(soft limit)
2. Kubernetes 솔루션은 클러스터당 5000개의 pods으로 제한됩니다.

확장성에 대한 고려에는
1. 각 pod 배포는 먼저 Fargate fleet으로부터 가상 노드를 소스화하기 때문에 단일 개별 pod 시작 시간이 EC2에서보다 길어질 수 있습니다.
2. 클러스터 Autoscaler가 새로운 EC2를 생성할때 생기는 지연 시간을 생각해 볼 때 경우에따라 Fargate 병렬 배포가 빠를 수 있습니다.

가격은 EKS 클러스터 시간당 $0.20 이며, 표준 Fargate 가격은 vCPU와 memory에 의해 달라집니다. 새로운 1.14 클러스터는 지금바로 사용할 수 있으며, EKS Fargate 를 사용할 수 있는 지역은 Virginia(us-east-1), Ohio(us-east-2), Dublin(eu-west-1), Tokyo(ap-northeast-1)가 있습니다.

 

본 세션은 신규 기능에 대해 다양한 관점에서 자세히 설명한 세션이라고 생각됩니다. 인프라에 대한 관리가 없어진 만큼 설정이 간결해지고 많은 고민없이 어플리케이션을 런칭할 수 있는 Kubernetes의 장점을 극대화 해주는 융합이라고 생각됩니다.