Service 2개를 생성하고 싶은데 각 서비스를 할당할 Cluster가 하나씩 존재해야한다. 즉, Cluster에 인스턴스 2개를 할당하면 서비스 2개가 할당이 된다. 그러나 인스턴스가 1개이면 Service를 2개 생성한다해도 한 개밖에 생성이 되지 않는다.
그럼 잘 생각해보자. Codedeploy로 배포할 때 새로운 버전에 Service가 생성되면서 4개 였다가 새로운 버전만 남고 전 버전은 삭제된다. 근데 그럼 서비스가 어느 시간때에 4개가 실행되어야한다. 즉, ECS Cluster에 Instance도 4개여야한다는 뜻이다. 중요!!!
Fargate 유형과 EC2 Instance Type에 차이점은 또 있다. 어떤 차이점이냐? Fargate 같은 경우는 Container를 실행할 때 필요한 CPU와 Memory를 지정해야합니다. 그러나 EC2 Type은 인스턴스가 실행되고 그 안에 Container를 실행하는 것 이기 떄문에 따로 지정 안해줘도 됨!!
매우 중요한 부분이다!!! 꼭 작업 정의를 생성할 때에는 호스트 포트는 0으로 매핑하도록 한다! 이유는? 이제 동적으로 포트를 매핑하는 것이기때문에 CI/ CD를 통해서 다시 배포하더라도 동적으로 포트를 매핑하도록 ECS 서비스는 적용한다.
동적 매핑 포트는 (49153~65535 및 32768~61000)이기 때문에 해당 ECS Service SG에도 이것을 고려해서 인바운드를 열어주어야한다.
따로 솔루션은 정리하지 않겠다. 왜냐? Fargate 유형이 많이 사용되기도 하고 둘이 생성과정은 차이점이 크지 않기 때문이다. 즉, 생성 부분에서 유형 차이이고 Instance Type 지정 등에 차이밖에 없어서 정리하는 시간은 불필요하다고 느껴졌다.
만약 사용자가 container insights 활성화하고 싶다면 하시면 됩니다! container insights는 사용해 컨테이너화된 애플리케이션 및 마이크로서비스의 지표 및 로그를 수집하고 집계하며 요약할 수 있습니다