공개

ECS

sangwoon 2022. 2. 23. 20:42

오케스트레이션: 수십 개에서 수백개의 도커 컨테이너나 인스턴스를 어디에서 어떤 컨테이너가 실행되고 어떤 문제점이 있는지 모니터링하고 관리할 수 있는 도구를 컨테이너 오케스트레이션이라고한다

ECS

우리가 알아볼 ECS는 바로 AWS에서 제공하는 오케스트레이션 서비스이다.

 

 - container 통합 서비스

 - Docker,window container 지원

 - 빠른 배포

 - vpc내에서 container 의 보안 관리

 - kubernetes 와 유서함 하지만 차별점이 있음

 - 차별점은 ECS는 AWS IAM,Route53,vpc연동이 가능하다

 

ECS를 돌리는 방법들

1)EC2 Instances

 

2)AWS Fargates(Serverless compute Engine For Containers)

 

 

ECS의 구성들

 

1.클러스터

2.작업

3.작업 정의

4.서비스

5.컨테이너 인스턴스

 

하나씩 살펴보도록 하자

 

컨테이너: 프로세스처럼 사용하는 느낌인데 애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어서 배포하는 것이다.

 

1.클러스터

ECS의 가장 기본적인 단위는 클러스터이다. 클러스터는 도커 컨테이너를 실행할 수 있는 가상의 공간으로 이해하면된다.

클러스터는 프로젝트나 컨테이너의 성격에 따라서 나눠질 수 있습니다. '프로젝트 lim'의 컨테이너들은 lim 클러스터에서만 실행되고 프로젝트 kim의 컨테이너들은 kim 의 클러스터에만 실행되는 입니다. ECS 클러스터는 기본적으로 EC2 와 같은 컴퓨팅 자원을 기본적으로 포함하지 않은 논리적인 단위입니다. 따라서 컴퓨팅 자원이 없는 빈 클러스터를 만드는 것도 가능하다. 그리고 EC2에 ecs-client라는 서비스를 실행해서 특정 클러스터에 연결할 수 있다. 이렇게 연결된 ec2 인스턴스를 컨테이너 인스턴스라고 부릅니다. ecs-client는 컨테이너 인스턴스의 자원을 모니터링 및 관리하고, 클러스터로 요청된 컨테이너들을 적절하게 실행하는 역할을 합니다.

 

-클러스터 간단 정리-

더보기

클러스터는 도커 컨테이너를 실행할 수 있는 가상의 공간이자 자리이다. 만약 본인이 1프로젝트 컨테이너를 실행하면 1프로젝트에 클러스터에서만 실행이 되는 것이다. 그래서 이것은 논리적인 단위이다. ec2에서 ecs-client라는 서비스를 실행해서 특정 클러스터를 연결하면 그 ec2를 컨테이너 인스턴스라고 부르기도 한다.

 

2. 작업

ECS에서 컨테이너를 실행하는 최소 단위는 작업이다. 클러스터 상에서 동작하는 1개 혹은 1개 이상의 컨테이너들을 지칭한다. 만약 노드 서버를 위한 도커 컨테이너와 데이터베이스를 위한 도커 컨테이너가 필요하다면 각각 개별 작업으로 정의할 수도, 하나의 작업으로 정의 할 수도 있습니다. 같은 하나의 작업으로 묶여 있다면 서로 네트워크 통신을 할 수 있습니다

 

-작업 간단 정리-

더보기

클러스터 상에서 동작하는 1개의 컨테이너의 경우나 하나의 작업을 통해 2개의 컨테이너가 묶여있는 경우에 이것들을 지칭하는 것을 작업이라고 한다

 

3.작업 정의

도커 컨테이너를 실행하기 위한 도면과 같습니다. 컨테이너의 이미지, CPU/메모리 리소스 할당 설정,포트 매핑 볼륨 설정같은 것들이 포함되며, 기존 도커 명령에서 가능했던 대부분 옵션이 설정이 가능하다작업 정의를 바탕으로 작업, 즉 도커 컨테이너들을 실행할 수 있다

 

-작업 정의 간단 정리-

더보기

컨테이너 만들기 전에 선택하는 옵션이다

 

4.서비스

작업을 하나의 오케스트레이션 단위로 묶은 것을 서비스라고 한다. 작업은 일반적으로 작업 개수로 정의하지만 , 서비스는 로드 밸런서와 오토 스케일링을 연결하여 애플리케이션 단위로 조절할 수 있다.

 

-서비스 간단 정리-

더보기

그냥 ECS서비스를 뜻하는 것이다 그래서 AWS 리소스들과도 연동이 가능한 것이다

 

5.컨테이너 인스턴스

 

ECS는 컨테이너 배포를 EC2 인스턴스 기반에 올리도록 설계되어 있습니다. 작업 정의대로의 작업(컨테이너를 동작시킬 컴퓨터)을 지칭합니다. 하지만 파에이트 서비스는 컨테이너 인스턴스를 사용자가 직업 설정하거나 만들어 줄 필요 없이 AWS에서 직접 관리해주기 때문에 컨테이너 인스턴스를 필요로 하지 않습니다

 

-컨테이너 인스턴스 간단 정리- 

더보기

위에서 말한 클러스터 인스턴스와 비슷한 개념인 것같다 그냥 작업을 연결해줄 ec2를 지정하는 것이다

 

그러면 인스턴스를 필요로 하지 않는 파게이트에 대해 알아보자!!

 

파게이트

결국 ECS를 생성하기 위한 한 종류이다

파게이트는 AWS의 매니지드 컨테이너 오케스트레이션 서비스인 ECS와 EKS를 기반으로 작동하는 서비스입니다. 특징은 도커 컨테이너를 EC2 인스턴스 없이 독립적으로 실행할 수 있게 합니다. 또한 ec2 보다 컴퓨팅 성능을 더 세세하게 선택할 수 있으며, 태스크 단위에서 IAM 롤이나 네트워크 인터페이스를 부여하는 것도 가능합니다. 하지만 비용이 ec2보다는 비싸다는 단점이 있다

 

--파게이트--

더보기

EC2의 도움 없이 컨테이너를 실행시킬 수 있고 ec2보다 더 세세하게 성능을 선택할 수 있으며 IAM 롤이나 네트워크 인터페이스를 부여하는 것도 가능하다