BLOG

[re:Invent 2019] Enabling Application-First Thinking With Amazon ECS Capacity Providers
작성일: 2019-12-05

* 세션명 :Enabling Application-First Thinking With Amazon ECS Capacity Providers
* 일자 : 2019/12/04 12:15~13:15
* 장소 : Aria, Level 1 West, Bristlecone 7 Green

 

 

AWS Fargate와 같은 서버리스 기술이 점점 인기를 끌면서 Infrastructure를 프로비저닝 해야할 필요성이 완전히 사라지기 때문에 고객은 애플리케이션에 집중할 수 있게 됩니다. 이 세션에서는 Amazon ECS Capacity Providers 를 이용한 Application-First 개발을 알아봅니다.

AWS Container service는 아래와 같이 2종류의 Container Orchestration 서비스와 Compute Engine을 가지고 있습니다. 또한 이번 re:Invent 키노트를 통해 EKS를 위한 Fargate도 발표되었습니다.

아래의 자료는 컨테이너를 사용하는 어플리케이션이 얼마나 늘었는지, 그 중 AWS에서 서비스되는 어플리케이션이 얼마나 되는지를 보여줍니다.

기존의 ECS는 시작 유형을 사용하여 Task에서 EC2를 사용하는지 Fargate를 사용하는지를 제어하고 배치 제약 조건 및 배치 전략을 사용하여 Task를 수행 할 위치를 제어할 수 있었습니다. 그러나 이미 프로비전되어 사용가능한 리소스만을 Task를 실행하는데 사용할 수 있었으며 그렇지 않으면 Task를 실행하는데 실패합니다. 이렇게 어플리케이션을 실행하기전 미리 Infrastructure를 프로비저닝 해야하는 것을 Infrastructure-First라고 합니다.

Application-First 방식은 어플리케이션이 주도권을 갖고 인프라스트럭쳐는 어플리케이션으로부터 요청을 응답합니다.

Amazon ECS Capacity Providers를 활용하여 이러한 Application-First 방식을 사용할 수 있습니다. Capacity Provider를 통해 어플리케이션이 필요한 리소스를 정의하고 생성함으로써 Infrastructure가 갖춰지지 않더라도 Capacity Provider에 의해서 필요한 Instance가 생성되고 Task가 실행되고 해당 Instance에 위치하게 됩니다.

 

serverless가 가지는 이점에 대해서 알 수있어서 좋았고 AWS의 Container Service들이 앞으로 어떻게 발전해 나갈지 엿볼 수 있는 세션이었습니다. AWS의 Container Orchestration이 발전하는 과정을 볼 수 있어서 좋았습니다. 하지만, Capacity Provider를 사용하면서 기존의 방식보다는 조금 더 간결한 설정이되었지만 아직까지도 ECS를 설정하고 사용하기는 많이 복잡한것 같습니다. ECS가 ELB, ASG, CodePipeline, VPC 등등 많은 서비스들과 관계가 있는 만큼 어느정도 복잡함은 피할 수 없겠지만 조금 더 개선이 필요하다고 생각됩니다.