DevOps/AWS
Docker Containers Management on AWS - Amazon ECS
KSN
2024. 1. 15. 19:01
- Amazon ECS(Elastic Container Service)
- Amazon이 소유하고 있는 컨테이너 플랫폼
- AWS에서 컨테이너를 실행하면 ECS 클러스터에 ECS Tasks를 실행하게 된다.
1. Amazon ECS - EC2 Launch Type
EC2 Launch Type을 사용하면 EC2 인스턴스가 ECS 클러스터 안에 들어있을 것이다.
*EC2 Launch Type으로 EC2 Cluster를 사용할 때는 반드시 인프라를 직접 프로비저닝 하고 유지해야 한다.
- EC2 인스턴스는 반드시 각각 ECS Agent를 실행해야 한다.
- 그럼 ECS Agent가 각각의 EC2 인스턴스를 ECS 서비스와 정된 ECS 클러스터에 등록한다.
- 이후 ECS Tasks를 수행하기 시작하면 AWS가 컨테이너를 시작하거나 멈추게 될 것이다.
2. Amazon ECS - Fargate Launch Type
- Fargate Launch Type도 마찬가지로 AWS에 도커 컨테이너를 실행하지만, 인프라를 프로비저닝 하지 않아 관리해야 할 EC2 인스턴스가 없다.
- 서버를 관리하지 않는 Severless타입이다. * 서버가 없다는 의미는 아니다.
- Fargate 유형은 ECS 클러스터가 있을 때, ECS Task를 정의하 Task Definition만 생성하면 필요한 CPU나 RAM에 따라 ECS Task를 AWS가 대신 실행한다.
- 즉, 새 도커 컨테이너를 실행하면 어디서 실행되는지 알리지 않고 그냥 실행이되고, 작업을 위해 백엔드에 EC2 인스턴스가 생성될 필요도 없다.
- 스케일(확장)을 하기 위해서는 간단하게 Task 수만 늘리면 된다. ->즉, EC2 인스턴스를 관리할 필요가 없다.