SlideShare a Scribd company logo
1 of 30
Cloud Studying
Micro Service Architecture
김도형 류영수 유효균 이영수 장경주
발표 이영수
SWMaestro 7기 미래기술스터딩
Micro Service Architecture
MSA란
• 서비스를 기능별로 작게 쪼개는 서버 아키텍쳐의 디자인 패턴
• 하나의 서비스는 한가지 일에 초점을 맞춤
• API로 다른 서비스와 연계
장단점
• 빠른 복구
• Scaling
• 서비스 확장 용이
• 대규모 장애 확률 감소
• 협업 용이
• 복잡함
• 트렌젝션 관리 어려움
• 다중 테스트
• 소규모 장애 확률 증가
MSA의 구현 방법을 알아보자
목표
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
• 서비스 애플리케이션은 수십, 수백여개의 서비스들로 구성
• 각 서비스는 적절한 CPU, memory, I/O 리소스를 제공받아야
하고 배포는 빠르고 효율적이어야 함
배포 방법
1. 서버마다 전체 서비스를 띄움
2. 서비스를 VM위에 띄움
3. 서비스를 Container위에 띄움
서비스 이미지 개발
Deploy service per Server
장점
• 배포속도, 서비스 시작속도 빠름
단점
• CPU, 메모리를 한 서비스 인스턴스가 모두 사용하는 문제
User
Service
Trip
Service
Payment
Service
Server 1
192.168.0.1
User
Service
Trip
Service
Payment
Service
Server 2
192.168.0.2
Deploy service in VM
장점
• 서비스별로 고정된 자원을 사용
• 클라우드 인프라 기능 활용 가능
단점
• 자원 사용 비 효율적 (VM자체의 자원 낭비)
• VM 관리의 어려움
Service 1
VM
Service 1
VM
Service 1
VM
Service 1
VM image
Deploy service in Container
Docker 등의 Container 기술을 활용하여 서비스를 개발
Service 1
Container
Service 1
image
장점
• VM의 장점을 거의 포함
• VM보다 가벼움
단점
• 인프라는 VM보다 비 성숙함
Service 1
Container
Service 1
Container
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
클라이언트에서 각 서비스에 요청을 따로 보내야 하는가?
많은 요청은 비 효율적이며 클라이언트 코드가 복잡해짐
API Gateway
Inter-process
Communication
API Gateway
• 내부 시스템 아키텍쳐를 캡슐화해서
클라이언트에 적합한 API를 제공
• 비동기, 논블로킹 I/O를 지원하는 플랫폼으로 개발
• Netty, Vertx, Node.js, Nginx, etc..
• 통신 규격 다양화 (내/외부용 효율적인 방법 선택)
• Auto-scaling, ip-address 변경에 대응
• 서비스 오류 핸들링 ex) Netflix Hystrix
Inter-process Communication
• 서비스-클라이언트, 서비스-서비스간 통신 구현
• 비동기적(message-based) / 동기적(request) 구현방법 선택
• HTTP REST / Thrift 프로토콜
• 서비스 오류 핸들링
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
인스턴스들은 Auto-Scaling, 장애 등으로 인해 IP주소 등이 변화
Service Discovery
하나의 서비스는 가상화되어 여러 인스턴스로 실행됨
어떤 인스턴스에 접속해야 하는가?
Discovery Pattern
Service 1
Instance A
Service 1
Instance B
Service 1
Instance C
10.4.3.1:6001
10.4.3.7:6002
10.4.3.9:6003
Service Registry
각 서비스는 Service Registry에 자신의 상태를 전달
Service Registry는 가용한 인스턴스의 목록을 갖고있음
Discovery Pattern
Client-side
Discovery Pattern
Server-side
Discovery Pattern
Client-side Discovery Pattern
Client
1
2
Client-side Discovery Pattern
• 클라이언트에서 Service Registry를 통해
가용한 인스턴스 목록을 받아옴
• 클라이언트에서 가용한 인스턴스에 직접 연결
장점
• 지능적인 클라이언트 개발 가능
단점
• 클라이언트 코드 복잡, 로직 복잡
Server-side Discovery Pattern
Client
Server-side Discovery Pattern
• Load Balancer가 존재
• 클라이언트에서 요청을 보내면 Load Balancer가 Service Registry
와 연동하여 요청을 적절한 서비스 인스턴스로 전달
장점
• Discovery의 세부적인 부분이 클라이언트로부터 분리됨
단점
• 서버측 시스템(Load Balancer)이 안정적이어야 함
ex) AWS Elastic Load Balancer
추가: Third-party Registration Pattern
Instance A
Instance B
Instance C
Service
Registry
Service
Registry
Instance A Registrar
Health check
1. 기능별로 서비스 어플리케이션 구분
2. 서비스 이미지 개발
3. 클라이언트에서 필요한 서비스 선택
4. 인스턴스 선택 / 관리
구현 과정
• Nginx consul, Netflix Eureka 등의 오픈소스 활용
• AWS Lambda API등 이용
활용할 수 있는 것
• https://www.nginx.com/blog/introduction-to-microservices
• http://readme.skplanet.com/?p=10700
• http://www.slideshare.net/andrewdohyunjung/msa-43702981
참고 자료

More Related Content

What's hot

[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법Amazon Web Services Korea
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐Terry Cho
 
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션  - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션  - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
 
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive [2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive Amazon Web Services Korea
 
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...Amazon Web Services Korea
 
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon Web Services Korea
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집Amazon Web Services Korea
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론Terry Cho
 
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...Amazon Web Services Korea
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기YongSung Yoon
 
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)ChanMin Park
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017Amazon Web Services Korea
 

What's hot (20)

[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
[AWS Builders] AWS 스토리지 서비스 소개 및 사용 방법
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션  - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션  - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
대용량 트래픽을 처리하는 최적의 서버리스 애플리케이션 - 안효빈, 구성완 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive [2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
[2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive
 
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
 
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...
AWS Amplify를 통한 손쉬운 모바일 애플리케이션 개발하기 - 김필중 솔루션즈 아키텍트, AWS :: AWS Summit Seoul ...
 
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
AWS IoT 기반 사물 인터넷 아키텍처 구현하기 - AWS Summit Seoul 2017
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
AWS 네트워크 보안을 위한 계층별 보안 구성 모범 사례 – 조이정, AWS 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
 
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
서버리스 기반의 프론트엔드 서버 구축(Serverless frontend web server)
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
 

Similar to 마이크로 서비스 아키텍쳐 소개 및 구현 방법

Microservices
Microservices Microservices
Microservices 영기 김
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureYoonsung Jung
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservicesSeong-Bok Lee
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureHEECHEOL YANG
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...OpenStack Korea Community
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐Terry Cho
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문Seong-Bok Lee
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROBSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROIn Chul Shin
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
F5 프로그래밍 기능
F5 프로그래밍 기능F5 프로그래밍 기능
F5 프로그래밍 기능itian-f5
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)Terry Cho
 
마이크로서비스 개요
마이크로서비스 개요마이크로서비스 개요
마이크로서비스 개요Younghun Yun
 

Similar to 마이크로 서비스 아키텍쳐 소개 및 구현 방법 (20)

Microservices
Microservices Microservices
Microservices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PROBSP 사례중심발표 베스핀글로벌_신인철_SA PRO
BSP 사례중심발표 베스핀글로벌_신인철_SA PRO
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
F5 프로그래밍 기능
F5 프로그래밍 기능F5 프로그래밍 기능
F5 프로그래밍 기능
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)
 
마이크로서비스 개요
마이크로서비스 개요마이크로서비스 개요
마이크로서비스 개요
 

마이크로 서비스 아키텍쳐 소개 및 구현 방법

  • 1. Cloud Studying Micro Service Architecture 김도형 류영수 유효균 이영수 장경주 발표 이영수 SWMaestro 7기 미래기술스터딩
  • 3. MSA란 • 서비스를 기능별로 작게 쪼개는 서버 아키텍쳐의 디자인 패턴 • 하나의 서비스는 한가지 일에 초점을 맞춤 • API로 다른 서비스와 연계
  • 4. 장단점 • 빠른 복구 • Scaling • 서비스 확장 용이 • 대규모 장애 확률 감소 • 협업 용이 • 복잡함 • 트렌젝션 관리 어려움 • 다중 테스트 • 소규모 장애 확률 증가
  • 5. MSA의 구현 방법을 알아보자 목표
  • 6. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 7. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 8.
  • 9. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 10. • 서비스 애플리케이션은 수십, 수백여개의 서비스들로 구성 • 각 서비스는 적절한 CPU, memory, I/O 리소스를 제공받아야 하고 배포는 빠르고 효율적이어야 함 배포 방법 1. 서버마다 전체 서비스를 띄움 2. 서비스를 VM위에 띄움 3. 서비스를 Container위에 띄움 서비스 이미지 개발
  • 11. Deploy service per Server 장점 • 배포속도, 서비스 시작속도 빠름 단점 • CPU, 메모리를 한 서비스 인스턴스가 모두 사용하는 문제 User Service Trip Service Payment Service Server 1 192.168.0.1 User Service Trip Service Payment Service Server 2 192.168.0.2
  • 12. Deploy service in VM 장점 • 서비스별로 고정된 자원을 사용 • 클라우드 인프라 기능 활용 가능 단점 • 자원 사용 비 효율적 (VM자체의 자원 낭비) • VM 관리의 어려움 Service 1 VM Service 1 VM Service 1 VM Service 1 VM image
  • 13. Deploy service in Container Docker 등의 Container 기술을 활용하여 서비스를 개발 Service 1 Container Service 1 image 장점 • VM의 장점을 거의 포함 • VM보다 가벼움 단점 • 인프라는 VM보다 비 성숙함 Service 1 Container Service 1 Container
  • 14. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 15. 클라이언트에서 각 서비스에 요청을 따로 보내야 하는가? 많은 요청은 비 효율적이며 클라이언트 코드가 복잡해짐
  • 17. API Gateway • 내부 시스템 아키텍쳐를 캡슐화해서 클라이언트에 적합한 API를 제공 • 비동기, 논블로킹 I/O를 지원하는 플랫폼으로 개발 • Netty, Vertx, Node.js, Nginx, etc.. • 통신 규격 다양화 (내/외부용 효율적인 방법 선택) • Auto-scaling, ip-address 변경에 대응 • 서비스 오류 핸들링 ex) Netflix Hystrix
  • 18. Inter-process Communication • 서비스-클라이언트, 서비스-서비스간 통신 구현 • 비동기적(message-based) / 동기적(request) 구현방법 선택 • HTTP REST / Thrift 프로토콜 • 서비스 오류 핸들링
  • 19. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 20. 인스턴스들은 Auto-Scaling, 장애 등으로 인해 IP주소 등이 변화 Service Discovery 하나의 서비스는 가상화되어 여러 인스턴스로 실행됨 어떤 인스턴스에 접속해야 하는가?
  • 21. Discovery Pattern Service 1 Instance A Service 1 Instance B Service 1 Instance C 10.4.3.1:6001 10.4.3.7:6002 10.4.3.9:6003 Service Registry 각 서비스는 Service Registry에 자신의 상태를 전달 Service Registry는 가용한 인스턴스의 목록을 갖고있음
  • 24. Client-side Discovery Pattern • 클라이언트에서 Service Registry를 통해 가용한 인스턴스 목록을 받아옴 • 클라이언트에서 가용한 인스턴스에 직접 연결 장점 • 지능적인 클라이언트 개발 가능 단점 • 클라이언트 코드 복잡, 로직 복잡
  • 26. Server-side Discovery Pattern • Load Balancer가 존재 • 클라이언트에서 요청을 보내면 Load Balancer가 Service Registry 와 연동하여 요청을 적절한 서비스 인스턴스로 전달 장점 • Discovery의 세부적인 부분이 클라이언트로부터 분리됨 단점 • 서버측 시스템(Load Balancer)이 안정적이어야 함 ex) AWS Elastic Load Balancer
  • 27. 추가: Third-party Registration Pattern Instance A Instance B Instance C Service Registry Service Registry Instance A Registrar Health check
  • 28. 1. 기능별로 서비스 어플리케이션 구분 2. 서비스 이미지 개발 3. 클라이언트에서 필요한 서비스 선택 4. 인스턴스 선택 / 관리 구현 과정
  • 29. • Nginx consul, Netflix Eureka 등의 오픈소스 활용 • AWS Lambda API등 이용 활용할 수 있는 것
  • 30. • https://www.nginx.com/blog/introduction-to-microservices • http://readme.skplanet.com/?p=10700 • http://www.slideshare.net/andrewdohyunjung/msa-43702981 참고 자료