마이크로서비스 아키텍쳐 이해
> 하나의 애플리케이션을 작은 서비스(독립된 서비스)로 쪼개는 것
> 개발 방법론 ,데이터 스토리지, 개발 파이프라인 등 별도로 구축 > 다른 마이크로 서비스와 무관, 독립
> 통신? 표준화된 인터페이스 -> 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 |