[AWS] Computing: ECS
Amazon EC2 Container Service
Amazon ECS
는 클러스터에서 컨테이너를 효율적으로 관리할 수 있도록 도와주는 컨테이너 관리 서비스이다. ECS는 클러스터에 컨테이너 기반 어플리케이션에 대한 배포, 스케일링, 스케쥴링 등의 기능을 담당한다.
Containers and images
AWS ECS를 사용하기 위해서는 먼저, 컨테이너 이미지로 빌드된 어플리케이션이 필요하다.
컨테이너
는 네임스페이스로 격리된 런타임 환경을 갖는 프로세스로, 컨테이너 이미지를 통해 생성된다. 컨테이너 이미지
는 프로세스를 실행하기 위한 환경의 스냅샷으로 프로세스를 실행하기 위한 코드, 의존성, 명령어 등이 정의되어 있다.
Task Definition
AWS ECS가 컨테이너를 배포하기 위해서는 Task definition
를 필요로 한다. Task definition
는 어플리케이션을 구성하는 컨테이너들의 설정을 json 포맷으로 정의한 파일을 의미한다.
아래의 예시는 ECS에서 Fargate
로 NGINX 웹 서버를 배포하기 위한 Task definition을 정의한 결과이다.
{
"family": "webserver",
"containerDefinitions": [
{
"name": "web",
"image": "nginx",
"memory": "100",
"cpu": "99"
},
],
"requiresCompatibilities": [
"FARGATE"
],
"networkMode": "awsvpc",
"memory": "512",
"cpu": "256",
}
Task and scheduling
Task
는 앞서 정의한 task definition에 의해 실행된 어플리케이션에 해당한다. AWS ECS에서는 task definition을 선언한 후, ECS 클러스터에서 실행할 task definition의 갯수를 선언하는 방식으로 task를 생성한다.
Cluster
AWS ECS 클러스터는 생성된 태스크들의 논리적 집합에 해당한다. 클러스터는 태스크를 실행하기 위한 물리적 EC2 인스턴스 혹은, 서버리스 환경을 지원하는 Fargate로 구성된다.
Cluster agent
클러스터 에이전트는 ECS 클러스터 인스턴스에서 실행되는 데몬으로, 진행중인 태스크에 대한 정보와 리소스 사용량을 모니터링하고 태스크를 실행/중지 하는 런타임 매니저에 해당한다.
ECS는 도커 컨테이너를 기반으로 어플리케이션을 배포하기 때문에 컨테이너 환경에서 동작한다. 따라서, 컨테이너 배포를 위해 스팟 인스턴스를 적극 활용하여 비용을 절감할 수 있다. 일반적으로 스팟 인스턴스는 on-demand 인스턴스보다 약 50~90% 저렴하다. 단, 스팟 인스턴스는 입찰 방식으로 리소스가 할당되기 때문에 낮은 입찰가를 제시한 경우, 어플리케이션이 불시에 중단될 수 있다는 점을 유의하여야 한다.
EC2 Console
은 스팟 집합을 사용하여 스팟 인스턴스를 배포한다. 스팟 집합은 최적의 가격을 계산하여 입찰을 시도하고 컨테이너 어플리케이션 운영 필요한 목표 용량(vCPU)을 유지한다.
Amazon EC2 Container Registry
Amazon EC2 Container Registry
(ECR)는 AWS에서 제공하는 Private Container Registry
로 개발자가 도커 컨테이너 이미지를 저장, 관리 배포할 수 있도록 하는 저장소이다. Amazon ECR
은 Amazon ECS
와 통합 관리시 유용하게 활용될 수 있다. 또한, AWS Identity and Access Management(IAM)
과 통합함으로써 각 레포지토리에 대한 접근 권한을 효과적으로 제어할 수 있다. Amazon ECR
은 선수금이나 약정이 없이, 네트워크 비용에 대한 요금만을 지불하는 과금정책을 갖고 있다.
Author And Source
이 문제에 관하여([AWS] Computing: ECS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@koo8624/AWS-백서-Computing-ECS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)