2020. 6. 18. 17:15ㆍIT/AWS
원문 : Running Containerized Microservices on AWS
https://d1.awsstatic.com/training-and-certification/docs-devops-pro/running-containerized-microservices-on-aws.pdf
현대화 마이크로서비스 기반의 애플리케이션이 인기를 얻고 있다. 이에 따라, 컨테이너는 민첩하고 확장 가능하며 효율적인 마이크로서비스 아키텍처를 생성하기 위한 구성 요소로 주목받는다. 레거시 시스템 또는 컨테이너 애플리케이션을 고려할 때, 적용할 수 있는 소프트웨어 디자인 패턴이 있다.
마이크로서비스는 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성된다. 이러한 서비스는 소규모의 독립적인 팀이 이용한다. 마이크로서비스 아키텍처는 쉽게 확장하고 개발할 수 있도록 한다. 이를 통해 혁신을 실현하고 새로운 기능을 위한 출시 기간을 단축할 수 있다. 컨테이너는 소프트웨어의 격리 및 패키징을 제공합니다. 배포 속도와 리소스 밀도를 높이기 위해 컨테이너 사용을 고려해야 한다.
Martin Fowler가 제안한 마이크로서비스 아키텍처의 특성은 다음과 같다.
• 서비스를 통한 컴포넌트화
• 비즈니스 기능 중심으로 구성
• 프로젝트가 아닌 제품
• 엔드 포인트 및 덤프 파이프
• 분산 관리
• 분산 데이터 관리
• 인프라 자동화
• 실패를 위한 설계
• 진화론적 디자인
이러한 특성은 마이크로서비스 아키텍처의 작동 방식을 알 수 있게 한다. 이러한 특성을 달성하기 위해 많은 개발 팀은 12 가지 앱 패턴 방법을 채택한다. 12 가지 요소는 클라우드 컴퓨팅에 최적화된 최신 애플리케이션을 구축하기 위한 모범 사례이다. 12 가지 요소는 배포, 확장성, 이식성 및 아키텍처의 4 가지 주요 영역을 포함한다.
1. 코드 베이스 : 개정 관리에서 추적 된 하나의 코드 베이스, 많은 배포
2. 종속성 : 종속성을 명시적으로 선언 및 격리
3. 구성 : 환경에 구성 저장
4. 백업 서비스 : 백업 서비스를 첨부된 리소스로 취급
5. 빌드, 릴리스, 실행 : 엄격하게 별도의 빌드 및 실행 단계
6. 프로세스 : 앱을 하나 이상의 상태 비 저장 프로세스로 실행
7. 포트 바인딩 : 포트 바인딩을 통한 서비스 내보내기
8. 동시성 : 프로세스 모델을 통한 확장
9. 일회용 : 빠른 시작 및 정상적인 종료로 견고성 극대화
10. 개발 / 제품 패리티 : 개발, 스테이징 및 생산을 가능한 한 유사하게 유지
11. 로그 : 로그를 이벤트 스트림으로 취급
12. 관리 프로세스 : 관리 / 관리 작업을 일회성 프로세스로 실행
'IT > AWS' 카테고리의 다른 글
AWS MSA 2. 비즈니스 기능 중심으로 구성(Organized Around Business Capabilities) (0) | 2020.06.23 |
---|---|
AWS MSA 1. 서비스를 통한 컴포넌트화 (Componentization Via Services) (0) | 2020.06.23 |
Amazon Linux 2에서 Apache와 Tomcat 구성(Web, WAS 서버 구축) (0) | 2020.06.03 |
Amazon Kinesis Data Streams, Kinesis Data Firehose 이용하여 로그 데이터 수집/저장 (0) | 2020.05.04 |
AWS Storage gateway를 이용한 EFS와 S3 간 데이터 전송 (0) | 2020.04.23 |