AWS 기반 MSA 서비스(4)

KangMinSoo·2021년 10월 17일
0

AWS기반 MSA 서비스

목록 보기
4/4

4) AWS 기반 MSA

AWS 기반 마이크로 서비스 패턴

기존 Monolith앱의 단점

  • 앱 확장성의 어려움
  • 장기 개발 사이클의 어려움
  • 특정 모듈 장애시의 운영 어려움, 신규 기능 추가의 어려움

다양한 마이크로 서비스 구조 진화

  • 마이크로서비스 아키텍처는 자유롭게 만들 수 있다.
  • EC2를 이용해서 서버에 올린다거나, ECS container를 이용해 Docker처럼 올리거나, Lambda를 이용해서 AWS의 다양한 서비스API를 사용하거나, LambdaBlueprints를 이용해서 다양한 외부 서비스 API를 이용해서 개발할 수 있다.

AWS 기반 마이크로서비스 아키텍처 모범 사례

  • API 기반 서비스 인터페이스 및 하위 호환성 유지
  • lambda버전, API gateway의 stage기능, stages변수를 조합하여 API의 버전을 다르게 배포할 수 있다.(테스트용 등)
  • 모든 워크로드를 퍼블릭 클라우드에서 운영하는 거의 최초의 대형 서비스 업체 넷플릭스

반대로 MSA를 시도했다가 모놀리식으로 다시 돌아온 반대 사례.

데이터 스타트업 세그먼트(Segment)
결국, MSA와 MA방식 중 어떤 아키텍쳐가 적합한지 고려한 후에 선택해야할 것으로 보인다.

출처 : CCTV뉴스(http://www.cctvnews.co.kr)

마이크로서비스를 제공하기 위한 핵심적인 기술은 바로 컨테이너 기술

컨테이너는 손쉬운 확장과 구성 독립적인 실행 환경과 빠른 기동 속도 등으로 인해 마이크로서비스 아키텍처를 설계하는데 필수적인 요소로 자리잡았다. 대표적인 컨테이너 기술이 바로 도커.

Amazon ECS (EC2 Container Service)

Amazon ECS는 확장성이 뛰어난 Container Management Platform으로 수천 개의 인스턴스를 기동하고 관리할 수 있으며, 인프라 구축의 복잡성을 간결하게 만들었다.

특히 확장성 있는 관리를 위한 컨테이너 서비스를 제공하며, 컨테이너 이미지 저장소로 Amazon Elastic Container Registry (ECR)을 제공한다.

서버리스 컴퓨팅

  1. AWS Lambda
  2. AWS API Gateway

AWS Lambda

AWS의 대표적인 서버리스 컴퓨팅 서비스인 Lambda는 완전 관리형 컴퓨팅 서비스로 상태 비저장 코드를 실행한다.
대체로 1회성 용도의 프로그램인 주기적인 Job을 처리하는 Scheduler 역할로 사용하거나, Amazon S3 버킷 또는 DynamoDB 테이블의 데이터 변경, 또는 엣지 로케이션의 CDN에서 Lambda 형태로 처리하곤 한다.
다만 제한사항으로 최대 15분 길이로 지침을 실행할수 있으며, 15분이 넘어가는 서비스는 컨테이너 기반 또는 EC2 기반으로 구성해야 한다.
서버리스 컴퓨팅을 적용하면 애플리케이션 개발에 보다 집중할 수 있고 요청 시에만 컴퓨팅 리소스를 사용하여 비용 효율적인 시스템이라고 볼 수 있으며 특히 마이크로서비스 아키텍처와 같이 세분화 된 서비스에 보다 적합하다.

AWS API Gateway

API Gateway는 마이크로서비스를 정의하는 API를 처리하는 핵심 Component로 단일 접점 역할을 담당하여 외부로 엔드포인트 노출을 차단할 수 있다.

API 서비스의 핵심과 답게 다양한 기능을 제공하며 주요 기능은 다음과 같다.

  • 개발자에게 API 키를 생성하여 배포
  • CIDR을 활용하여 API에 대한 액세스 승인
  • 프라이빗과 통합, Lambda와 통합 기능 지원
  • 엔트포인트 노출 방지 역할
  • DDoS 및 명령어 주입 공격으로부터 보호
  • API Gateway 캐시 기능 제공

참조
https://wooaoe.tistory.com/57(MSA와 MA)
https://www.youtube.com/watch?v=UsWrvBaQOA4 (MSA)
https://www.youtube.com/watch?v=IH7mUwunzlo (클라우드 컴퓨팅)
https://velog.io/@rssungjae/%ED%9B%84%EA%B8%B0%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98MSA (AWS기반 MSA)
https://waspro.tistory.com/495 (AWS기반 MSA서비스)

profile
주니어 개발자의 벨로그

0개의 댓글