DevOps BootCamp/AWS

Amazon ECS/ECR

cloudmaster 2023. 4. 19. 15:48

 마이크로서비스 아키텍쳐 이해

 > 하나의 애플리케이션을 작은 서비스(독립된 서비스)로 쪼개는 것

 > 개발 방법론 ,데이터 스토리지, 개발 파이프라인 등 별도로 구축 > 다른 마이크로 서비스와 무관, 독립

 > 통신? 표준화된 인터페이스 -> restful API

 

마이크로서비스 아키텍쳐의 이점

 > 빠른 개발 속도 : 개발 언어 선택 자유로움, 서비스 팀의 역량만으로 가능

 > 빠른 배포 속도 및 병렬 배포 : 각 마이크로서비스간 독립된 배포 파이프라인(CI/CD)

 > DevOps팀과 통합된 운영 : 서비스에 대한 Ownership

 > 확장성, 가용성 : 마이크로서비스 특성에 맞는 확장성/가용성 설계

 > 비즈니스 도메인과 밀접하게 연결 : Lean Cycle(빠르게 비지니스 요건 충족)

 

마이크로서비스 아키텍쳐 공통 구성 요소

 > 모든 서비스들에 적용되는 공통 요소들:

  서비스 등록 및 제거

  서비스 검색 및 가용성 관리

  서비스 메타데이터 관리

  서비스 버전 관리

  서비스 별 cache 관리

 

 > 빠르고 효율적인 배포 환경 관리

 > 자동화된 관리 및 모니터링

 

모든 마이크로 서비스는

 : 탄력적(다른 서비스와 무관한 스케일 업/ 스케일 다운)

 : 단위 리소스의 장애를 견디어야 함

 : 통일된 API 인터페이스를 가져야 함

 : 작게 유지되어야 함

 : 다른 서비스들과는 독립적

 

도커 컨테이너

 : 작게 유지되고,

 : 빠르게 배포되며,

 : 스케일 업/다운이 쉽고 빠르며,

 : 인프라스트럭쳐에 대한 종속성이 없음

 

마이크로서비스

 : 작게 유지되어야 함

 : 빠르게 병렬로 배포되며,

 : 스케일 업/다운이 쉽고 빨라야 함

 : 서비스간의 종속성이 없어야 함

 

도커를 마이크로서비스에 적용시 고려사항

 1. 도커 컨테이너에 대한 오케스트레이션

 2. 마이크로서비스를 사용하기 위한 배포 파이프라인 구성

 3. 마이크로서비스에 대한 서비스 Discovery 방법

 4. 마이크로서비스에 대한 모니터링(가용성, 성능관리)

 

도커 컨테이너 오케스트레이션:

 > 스케줄링, 자원 사용량 모니터링 및 자원 분배, Auto Scaling, Load Balancing, 이미지 레파지토리 관리

 

ECS(EC2 Container Service)

 > 별도의 어플리케이션이 필요 없는 컨테이너 운영 매니지드 서비스

 : 모든 규모의 컨테이너 관리

 : 유연한 컨테이너 배치 기능

 : AWS에서 플랫폼으로 통합

 

구성 요소

 > 클러스터 : EC2 인스터스의 함대

 > 클러스터 관리 엔진 : 클러스터 리소스 및 작업 상태 관리

 > 작업 정의 : 작업에 대한 컨테이너 및 환경 정의

 > 스케줄러 : 클러스터 상태를 고려한 작업 배치

 > 작업 : 인스턴스에서 실행되는 실제 컨테이너 작업

 > 에이전트 : EC2 인스턴스 및 매니저와 통신

 

구성 요소: 서비스

 

1. 작업 정의와 작업 개수를 기반으로 클러스터 내 서비스 생성

2. 설정한 작업 개수로 컨테이너 이상 시 자동 복구

3. Elastic Load Balancing을 통한 컨테이너 부하 분산 설정 기능

4. Auto Scaling 설정 가능

 

클러스터 제약조건: CPU, 메모리 및 포트 등

커스텀 제약조건 : 특정 AMI, 위치, 인스턴스 타입, 사용자가 정의한 속성

배치 전략: 배치 전략을 충족하는 인스턴스 식별(하나의 인터턴스에 똑같은 컨테이너 x)

필터 적용: 배치 할 최종 컨테이너 인스턴스 선택

 

binpacking > 자원을 최대한 아껴씀, 압축

spread > AZ는 펼침, 가용성 극대화

Affinity > 특정한 테스크는 특정한 인스턴스로

Distinct instance > 인스턴스 별로 서로 떨어져서 운영

 

Amazon ECS: 모니터링 로깅-ECS 메트릭

디멘션 > 메트릭이 수집되는 단위

 

Service Discovery 구성 요소

Metadata store > RDS

Health Check > Lamda

Registry > Route 53

써드파티

 

 

  

 

 

 

 

'DevOps BootCamp > AWS' 카테고리의 다른 글

도메인 연결과 CDN 및 HTTPS 적용  (0) 2023.04.19
Route 53  (0) 2023.04.18
CloudFront  (0) 2023.04.18
Elastic Load Balancing  (0) 2023.04.18
Auto Scaling Group  (0) 2023.04.18