-
마이크로 서비스란?
잘 정의된 API를 통해 통신하는 독립 서비스로 구성된 애플리케이션
마이크로 서비스 사용 이유?
- 시스템은 개별 장애를 견딜 수 있다.
- 병렬 프로덕션 및 더 빠른 반복 가능
- 필요한 경우에만 확장에 지출
특성
- 자율적 (서로 간섭하지 않는다)
- 전문적
단점
- n/w 가 복잡해 지고 비용이 추가로 들어감
- log tracing 관리를 해야한다.
마이크로서비스의 6원칙
1. 퍼블릭 API에만 의존한다.
- 데이터를 숨긴다
- API를 문서화 한다.
- 버전 관리 전략을 정의
2. 해당 작업에 적합한 도구를 사용한다.
- 다중 언어 코드 지속성(데이터 계층)
- 다중 언어 코드 프레임워크(앱 계층)
3. 서비스를 보호한다.
- 심층 방어(Defense in Depth)
- 인증/권한 부여
4. 에코시스템 내에서 훌륭한 시민이 된다.
- SLA 보유
- 모니터링, 로깅 및 추적
(분산 추적- zipkin, aws x-ray ....)
5. 기술 혁신 이상을 지향한다.
- 목표에 집중하는 소규모 개발팀 선호
6. 모든 것을 자동화 한다.
- DevOps 채택
컨테이너 서비스
컨테이너로 해결 할 수 있는 문제
다양한 환경에서 소프트웨어를 안정적으로 실행
1. 개발자 워크스테이션
2. 프로덕션
3. 테스트 환경
컨테이너의 이점
1. 반복 가능
2. 독립형 실행 환경
3. VM보다 더 빠른 처리 속도
EKS workshop
- https://awskrug.github.io/eks-workshop/
Amazon Elastic Container Service (ECS)
- 컨테이너 오케스트레이션 서비스
- ECR 에 저장해 놓은 이미지를 사용한다.
Amazon Elastic Container Registry (ECR)
- 컨테이너 이미지를 저장한다
AWS Fargate
- 완전 관리형 컨테이너 서비스
- 클러스터 프로비저닝 및 관리
- 런타임 환경 관리
- 규모 조정