AWS

Amazon ECS

박현국 2024. 10. 26. 15:08
ECS (Elastic Container Service)
  • AWS 에서 컨테이너를 실행하면 ECS 클러스터 즉, ECS 테스크를 실행한다.
  • ECS 클러스터에는 EC2 인스턴스가 들어있다. ( EC2 시작유형으로 ECS 클러스터를 사용할 때는 인프라를 직접 프로비저닝하고 유지해야 한다.)
  • ECS 인스턴스는 특별하게 각각 ECS 에이전트를 실행해야 하는데,
    • ECS 에이전트가 각각의 EC2 인스턴스를 ECS 서비스와 지전된 ECS 클러스터에 등록한다.
    • 이후에 ECS 태스크를 수행하기 시작하면 AWS 가 컨테이너를 시작하거나 멈출 것이다.
    • 즉 새 도커 컨테이너가 생기면 시간에 따라 EC2 인스턴스에 지정된다.
    • ECS 태스크를 시작하거나 멈추면 자동으로 위치가 지정된다.
    • 이것이 바로 EC2 시작 유형이다. (도커 컨테이너는 미리 프로비저닝한 EC2 인스턴스에 위치)

ECS Launch Type (EC2)

 

 

 

 

Fargate Launch Type

  • EC2 와 마찬가지로 AWS 에 도코 컨테이너를 실행하는데, 이번에는 인프라를 프로비저닝하지 않아 관리할 EC2 인스턴스가 없다. 즉, Serverless !!
  • ECS 클러스터가 있을때 ECS 태스크를 정의하는 태스크 정의만 생성하면 필요한 CPU 나 RAM에 따라 ECS 태스크를 AWS 가 대신 실행한다. 
    즉, 새 도커 컨테이너를 실행하면, 어디서 실행되는지 알리지 않고 그냥  실행된다.
  • 작업을 위해 백엔드에 EC2 인스턴스가 생성될 필요도 없다
  • 확장하려면 간단하게 태스크 수만 늘리면 된다. EC2 인스턴스를 관리할 필요가 없다.
  • 즉, Fargate 는 서버리스이므로, EC2 시작 유형보가 관리가 쉽다.

ECS LanchType (Fargate)

 

 

 

IAM Roles for ECS

  • EC2 시작 유형의 예시로 EC2 인스턴스가 도커에 ECS 에이전트를 실행한다고 하자. 
  • EC2 시작 유형을 사용한다면 EC2 인스턴스 프로파일을 생성할 것 인데, ECS 에이전트만이 EC2 인스턴스 프로파일을 사용하며 그 EC2 인스턴스 프로파일을 이용해 API 호출을 할 것이다.
  • 그럼 EC2 인스턴스가 저장된 ECS 서비스가 CloudWatch 로그에 API 호출을 해서 컨테이너 로그를 보내고 ECR 로 부터 도커 이미지를 가져온다. Secrets Manager 나 SSM Parameter Store 에서 민감 데이터를 참고하기도 한다.
  • ECS 태스크는 ECS 태스크 역할을 가지는데, 이는 EC2 와 Fargate 시작 유형에 모두 해당되며, 두 개의 태스크가 있다면, 각자에 특정 역할을 만들 수 있다.
  • 태스크 A는 EC2 태스크 A 역할을 맡고 태스크 B는 EC2 태스크 B 역할을 맡는 것이다.
  • 역할을 다르게 하는 이유는 역할이 각자 다른 ECS 서비스에 연결할 수 있게 하기 때문이다.
  • 이렇게 EC2 인스턴스 프로파일 역할과 ECS 태스크 역할의 차이점이 있다.

 

 

 

 

ECS - Load Balancer Integrations

  • 여러 ECS 태스크들이 실행되며 ECS 클러스터 안에 있는데,
  • HTTP 나 HTTPS 엔드 포인트로 태스크를 활용하기 위해 ALB 를 앞에서 실행하면 모든 사용자가 ALB 및 ECS 태스크에 직접 연결된다.
  • NLB 는 처리량이 매우 많거나 높은 성능이 요구될 때만 권장한다. -> AWS Private Link 와 사용할때 권장
  • ELB 는 사용 가능하지만 권장하지 않는다. (고급 기능이 없을 뿐더러 Fargate 에 연결할 수 없기 때문이다.)
  • 반면 ALB 는 Fargate 와도 사용할 수 있다.

'AWS' 카테고리의 다른 글

Amazon Lambda  (1) 2024.10.28
Amazon ECR 와 EKS  (0) 2024.10.28
AWS MQ  (0) 2024.10.25
AWS Kinesis 란?  (0) 2024.10.25
Amazon SQS  (0) 2024.10.24