마이크로서비스란?
잘 정의된 API를 통해 통신하는 독립 서비스로 구성된 애플리케이션
모놀리식 애플리케이션 : 여러 가지의 서비스가 하나의 애플리케이션에 동작, 급증하는 트래픽에 대응하기 어려움
마이크로서비스 애플리케이션 : 따로따로 서비스를 쪼갬
서비스를 쪼개는 기준?
동작을 하는 데 최적화된 서비스 하나, 나눔 포인트는 fail point, 장애가 났을 때 다른 서비스에도 장애 영향을 주는 지
될 수 있으면 하나의 서비스에 장애가 날 수 있도록 하는 것
하나의 기능들을 별도로 쪼갬
마이크로서비스의 특성
- 자율적 : 하나의 서비스가 장애 나면 하나의 문제만 발생하는 유연함
- 전문적 : 여러 개의 서비스가 네트워크 처럼 엮여있기 때문에 복잡도가 올라감
컨테이너 서비스
- 반복 가능
- 독립형 실행 환경
- VM보다 더 빠른 처리 속도
컨테이너는 어떤 문제를 해결할 수 있습니까?
다양한 환경에서 소프트웨어를 안정적으로 실행, 이식성이 높음
Amazon ECS
- 컨테이너 실행을 조정함
- 컨테이너를 실행하는 노드 플릿을 유지 관리하고 확장
- 인프라 구축의 복잡성을 제거
- AutoScaling을 구성해서 ECS의 사용 가능한 EC2 인스턴스 수를 자동으로 조정할 수 있음
ECS 네트워크 지원
1) 브릿지
2) Amazon VPC 네트워크
AWS Fargate
완전 관리형 컨테이너 서비스
- 클러스터 프로비저닝 및 관리
- 실행 시간 호나경 관리
- 규모 조정
- AWS Fargate에서 EKS 및 ECS 실행 가능
서버리스 환경 구현
AWS Lambda
- 완전 관리형 컴퓨팅 서비스
- 상태 비저장 코드 실행
- Node.js, Java, Python, C#, Go, Ruby 지원
- 일정에서 또는 이벤트에 대한 응답으로 코드 실행
- 엣지에서 실행 가능
- 실행규칙 15분 내에 실행 가능
서버리스 컴퓨팅의 이점
- 구성이 아니라 애플리케이션에 집중함
- 요청 시에만 컴퓨팅 리소스 사용
- 마이크로 서비스 아키텍처 구축
AWS Lambda가 처리하는 작업:
- 서버
- 용량 요구
- 배포
- 조정 및 내결함성
- OS 또는 언어 업데이트
- 지표 및 로깅
AWS Lambda를 사용하면 할 수 있는 작업 :
- 자체 코드 사용 가능(네이티브 라이브러리를 포함)
- 코드를 병렬로 실행
- 백엔드, 이벤트 핸들러 및 데이터 처리 시스템 생성
- 유휴 리소스에 대해 비용을 지불할 필요가 없음!
Amazon API Gateway
- 엔드포인트 노출 방지
- DDoS 및 명령어 주입 공격으로부터 보호
- 다양한 버전과 단계의 API를 호스팅 및 사용
- 개발자에게 API 키를 생성하여 배포
- 프라이빗 VPC와의 엔드포인트 통합
Lambda 또는 API Gateway 작업이 필요한 경우
- 병렬
- 연속
- 재시도
- 분기
AWS Step Functions
- 시각적 워크플로를 사용한 마이크로 서비스 조정
- 애플리케이션 기능을 단계별로 실행할 수 있음
- 각 단계를 자동으로 트리거하고 추적함
- 단계가 실패한 경우 단순 오류를 파악하여 로깅을 제공
'Cloud > Amazon Cloud' 카테고리의 다른 글
RTO/RPO 및 백업 복구 설정 (1) | 2024.10.21 |
---|---|
[workshop] Three Tier Web Application Architecture (0) | 2024.09.12 |
[ECR] Amazon ECR이란? (0) | 2024.03.05 |
[ELB] ALB와 NLB 차이 (0) | 2024.02.26 |
[ELB] Elastic Load Balancer(ELB) 로드 밸런서란? (2) | 2024.02.26 |