마이크로서비스 아키텍처(MSA)
AWS 기반 마이크로서비스 아키텍처 패턴
AWS 기반 마이크로서비스 아키텍처 모범 사례
소감
MSA란?
MicroService Architecture
작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스단위, 기능단위로 구성된 프레임워크, 아키텍처
MSA특징
각각 자체 프로세스에서 실행
HTTP기반 API로 통신
자동화된 배포머신을 통해 독립배포
중앙 집중식 관리는 최소화
서로 다른 프로그래밍 언어로 개발 가능
서로 다른 데이터 저장 기술을 사용 가능
MSA장점
서비스 별 개별 배포가 가능하다.
배포시의 전체서비스의 중단이 없다.
특정 서비스, 기능의 확장성이 용이하다.
장애가 발생할 경우, 전체 서비스에 영향을 끼치는 부분이 적다.
MSA단점
기능단위의 시스템이 많아져, 인터페이스의 수가 늘어나게되어 오류 발생확인이 어렵다.
서비스가 분리되어 있기 때문에 테스트와 트랜잭션이 복잡하다.
데이터가 여러 서비스에 분산되어있기때문에 관리가 어렵다.
클라우드 시스템인 Azure는 개발 관리도구인 Azure DevOps Services나 Azure Portal등을 이용해서 이러한 단점을 극복하려한다.
lambda버전, API gateway의 stage기능, stages변수를 조합하여 API의 버전을 다르게 배포할 수 있다.(테스트용 등)
워크로드별 최적의 개발 환경구성
Polyglot접근 방식을 통한 서비스 아키텍처 선택
API 외부적인 요소 모니터링
Latency, RPS, Error rate
API 내부적인 요소 모니터링
CloudWatch, OS, Application
실시간 로그 대시보드 구성
CloudWatch로그를 Elasticsearch로
데이터 리포팅 및 시각화
S3에 있는 데이터를 Redshift에 넣어 QuickSight, 데이터를 가지고 BI처리화 하여 시각화
기능별 조직에서 자율성 높은 책임 조직으로
AWS의 각종 DevOps자동화 도구
2017년도 강연이였기때문에 현재는 더 좋은 서비스들이 있을 것이다. 하나하나 파악하려고 하면 더 공부를 해야겠다는 생각이 들었다.
그리고 무엇보다 MSA의 개념파악 및 AWS의 활용도를 느끼는데 아주 좋은 강연이였다. 나도 어서 AWS관련해서 서비스 구축하는 일을 하고싶은 동기부여가 크게 됬다.