일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준 12761
- 백준
- 몽고디비 렘
- 파이썬
- golang struct
- 고 배열
- flask
- String 함수
- 12761 돌다리
- go
- domain driven develop
- 백준 12761번
- hadoop
- 트리 순회
- http 완벽가이드
- 도메인 주도 개발 시작하기
- 도메인 주도 개발
- http 개념
- MongoDB Realm
- 하둡
- 자바 디자인 패턴
- 12761번 돌다리
- 백준 파이썬
- 자바
- 백준 사이트
- golang
- 우분투
- ddd
- 자바 디자인패턴
- 정렬
- Today
- Total
개발바닥
AWS ECS 본문
AWS ECS(Elastic Container Service)란?
클러스터에서 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 하는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어나다. ECS는 AWS에서 제공하는 매니지드 컨테이너 오케스트레이션 서비스로 컨테이너를 기반으로 서비스를 배포 및 운영하는 기능을 제공한다.
용어 정리!
컨테이너 오케스트레이션이란 컨테이너의 배포,관리,확장,네트워킹을 자동화해주는 도구이다.
ECS 구성
컨테이너 디피니션
ECS 클러스터 도커 이미지를 가져오는 위치, 노출되는 포트, 환경 변수, 작업 정의가 컨테이너를 실행하는 데 사용할 하드/소프트 CPU 제한을 포함하는 컨테이너의 구성이 포함됩니다.
태스크
ECS에서 컨테이너를 실행하는 최소 단위는 태스크이다.
태스크는 하나 이상의 컨테이너로 구성되어 있다.
태스크 디피니션
태스크를 실행하려면 태스크 디피니션이 필요하다.
태스크를 실행할 때 컨테이너 네트워크 모드, 태스크 역할, 도커 이미지, 실행 명령어, CPU 제한, 메모리 제한 등 다수의 설정이 필요하다.
컨테이너 오케스트레이션에서는 컨테이너가 필요에 따라서 자동적으로 실행되거나 종료될 수 있다.
따라서 매번 이러한 설정들을 지정하기보다는, 미리 설정들의 집합을 태스크 디피니션에 정의해놓고 사용한다.
서비스
서비스는 하나의 태스크 디피니션과 연결된다.
서비스는 크게 리플리카 타입과 데몬 타입이 있다.
데몬 타입으로 실행하는 경우 모든 컨테이너 인스턴스에 해당하는 태스크가 하나씩 실행된다.
이 타입은 인스턴스 관리를 위한 용도로 많이 사용된다.
리플리카 타입을 사용하면 실행하려는 태스크의 개수를 지정해야 한다.
서비스는 클러스터에서 이 개수만큼 태스크가 실행되도록 자동적으로 관리해준다.
리플리카 타입은 웹서버를 비롯한 실제 서비스에서 주로 사용된다.
정리하자면, 태스크를 관리하는 단위. 내부적으로 태스크 실행을 위한 스케줄러를 가지고 있으면 서비스의 정의한 대로 태스크들이 실행되는 상태를 유지시키려고 한다. (태스크 개수, 태스크 관리, 태스크 상태 관리 등)
클러스터
ECS의 가장 기본적인 단위는 클러스터이다.
클러스터는 도커 컨테이너를 실행할 수 있는 가상의 공간으로 이해할 수 있다.
클러스터는 프로젝트나 컨테이너의 성격에 따라서 나눠질 수 있다. ( 예를들어 vpc 망이 다르다.)
ECS 클러스터는 기본적으로 EC2와 같은 컴퓨팅 자원을 기본적으로 포함하고 있지 않은 논리적인 단위이다.
따라서 컴퓨팅 자원이 없는 빈 클러스터를 만드는 것도 가능하다.
그리고 EC2에 ecs-client라는 서비스를 실행해서 특정 클러스터에 연결할 수 있다.
이렇게 클러스터에 연결된 EC2 인스턴스를 컨테이너 인스턴스라고 부른다.
ecs-client는 컨테이너 인스턴스의 자원을 모니터링 및 관리하고, 클러스터로 요청된 컨테이너들을 적절하게 실행하는 역할을 합니다.
요약하자면, ECS의 가장 기본적인 단위. 서비스나 태스크가 실행되는 공간을 나누는 논리적인 공간이다.
엘라스틱 컨테이너 레지스트리 (ECR)
AWS ECS에서는 엘라스틱 컨테이너 레지스트리(ECR) 라는 프라이빗 도커 레지스트리 서비스를 제공하고 있다.
도커 레지스트리는 도커 이미지를 저장 및 관리하는 서비스이다.
일반적으로 도커에서 공식적으로 제공하는 도커 허브가 많이 이용된다. 이미지를 비공개적으로 푸시하거나 풀하는 경우에는 도커 허브의 유료 플랜을 이용하거나 직접 도커 레지스트리 서비스를 운용해야한다.
ECR을 사용해서 프라이빗 도커 레지스트리를 대체할 수 있으며, IAM과 조합함으로써 세세한 권한 관리가 가능하다.
즉, AWS에서 제공하는 프라이빗 도커 레지스트리(이미지 저장소)