AWS에서 Saga 패턴이란 무엇입니까?

Awseseo Saga Paeteon Ilan Mueos Ibnikka



애플리케이션은 분산 아키텍처 및 마이크로서비스로 마이그레이션되고 있습니다. 데이터 유지 및 복잡한 트랜잭션 관리에 문제가 발생합니다. Saga 패턴은 효과적인 솔루션을 제공합니다. Amazon Web Services(AWS)는 Saga 패턴을 간단하게 구현할 수 있는 다양한 도구와 서비스를 제공합니다. 분산 응용 프로그램 전체에서 원활한 트랜잭션 관리를 보장합니다.

이 기사에서는 saga 패턴이 무엇인지, 해당 구성 요소, 지원되는 AWS 서비스 및 이점에 대해 설명합니다.







AWS에서 Saga 패턴이란 무엇입니까?

Saga 패턴은 비즈니스 프로세스를 생성하기 위해 상호 작용하는 다른 서비스 간에 트랜잭션을 분산하는 데 도움이 되는 마이크로 서비스 아키텍처의 설계 기술입니다. 여러 마이크로 서비스에서 하나의 트랜잭션을 실행하면 데이터 일관성 문제 및 시스템 오류와 같은 몇 가지 어려움이 발생할 수 있습니다.



Saga 패턴은 분산 트랜잭션을 “사가 스텝스” . 각 '사가 스텝' 마이크로 서비스와 관련된 하나의 작업을 나타냅니다. 하나 이상인 경우 “사가 스텝스” 실패하면 응용 프로그램 상태를 복원하기 위해 필요한 조치가 즉시 취해집니다. saga 패턴의 작동을 이해하려면 아래 이미지를 참조하십시오.







주요 구성 요소에 대해 알아보십시오.

AWS에서 Saga 패턴의 구성 요소는 무엇입니까?

완전한 마이크로서비스 솔루션에는 분산 아키텍처의 여러 서비스가 필요합니다. saga 패턴에는 다음과 같은 몇 가지 주요 구성 요소가 있습니다.



  • 사가 스텝
  • 사가 오케스트레이터
  • 보상

이러한 구성 요소에 대해 간략하게 설명하겠습니다.

사가 스텝

Saga 단계는 부정적인 부작용이 없는 분산 트랜잭션의 일부로 수행되는 마이크로 서비스 작업 또는 작업입니다. 여러 번 반복되며 반복 실행으로 인한 부작용이 발생하지 않습니다.

사가 오케스트레이터

사가 오케스트레이터의 주요 책임은 사가 완료의 각 단계를 성공적으로 관리하고 모니터링하는 것입니다. 적절한 조치를 취하면 분산 트랜잭션을 시작합니다. 또한 단계가 실패하면 보상을 제공합니다.

보상

saga 프로세스 중에 오류가 발생하면 오케스트레이터는 이전 단계에서 도입된 수정 사항을 다시 변경하기 위해 신속하고 결정적인 조치를 취합니다. 이렇게 하면 오류가 발생한 경우에도 시스템이 주문을 유지할 수 있습니다.

이들은 사가 패턴의 주요 구성 요소였습니다. saga 패턴을 지원하는 AWS 서비스에 대해 알아보겠습니다.

AWS에서 지원되는 Services Saga 패턴은 무엇입니까?

Saga 패턴을 따르는 Amazon에서 제공하는 서비스는 다음과 같습니다.

  • AWS 단계 기능
  • AWS 람다
  • 아마존 다이나모DB
  • 아마존 SNS와 SQS
  • 아마존 API 게이트웨이
  • AWS CDK
  • AWS SAM

AWS 단계 기능

Amazon Web Services Step Functions는 복잡한 상태 머신(saga 패턴)을 나타내는 상태 머신을 개발자에게 제공하여 워크플로 및 마이크로서비스 관리를 용이하게 하도록 설계된 완전 관리형 서비스입니다. 개발자는 Step Functions를 사용하는 동시에 이를 효과적으로 오케스트레이션하여 분산 트랜잭션을 설계할 수 있습니다.

AWS 람다

Amazon Web Services의 Lambda 서버리스 컴퓨터 서비스를 통해 개발자는 서버를 직접 관리하지 않고도 코드를 실행할 수 있습니다. 루트 수준에서 각 단계를 나타내는 Lambda 함수를 생성하여 saga 패턴을 가능하게 합니다. 단계를 표현하기 위해 Lambda 함수를 사용하는 개발자는 Lambdas를 통해 개별 saga 단계를 나타낼 때 효과적으로 활용할 수 있습니다.

아마존 다이나모DB

Amazon DynamoDB는 완벽하게 관리되는 AWS의 NoSQL 데이터베이스 서비스입니다. 신뢰할 수 있는 데이터 저장 옵션을 제공합니다. Saga 오케스트레이터는 DynamoDB를 활용하여 진행 중인 분산 트랜잭션을 추적할 수 있습니다.

아마존 SNS와 SQS

마이크로서비스 간에 이벤트 기반 통신을 생성하기 위해 Amazon Simple Notification Service(SNS)와 Simple Queue Service(SQS)가 결합됩니다. Saga 단계는 이러한 서비스를 사용하여 특정 작업을 수행한 후 다른 마이크로 서비스에 메시지를 게시합니다. 그런 다음 이러한 서비스는 완료 상태 및 상태 업데이트에 대해 다른 마이크로 서비스에 알립니다.

아마존 API 게이트웨이

Amazon API Gateway는 API를 생성, 게시 및 관리하기 위한 Amazon의 클라우드 서비스입니다. 이러한 API는 원하는 수준으로 확장할 수 있습니다. 이 서비스는 사용자를 AWS Lambda에 연결합니다. Lambda는 saga 패턴을 따르는 단계 함수에 추가로 연결됩니다.

AWS CDK

AWS Cloud Development Kit(CDK)는 사용자 지정 클라우드 솔루션을 만들고 배포하기 위한 프레임워크이자 도구입니다. 오픈소스 서비스입니다. saga 패턴 아키텍처 및 디자인을 기반으로 구축된 애플리케이션은 이 도구를 사용하여 배포할 수 있습니다.

AWS SAM

AWS 서버리스 애플리케이션 모델은 서버리스 애플리케이션을 생성하는 데 사용됩니다. 이 프레임워크도 오픈 소스입니다. saga 패턴을 사용하는 모든 애플리케이션은 AWS SAM을 사용하여 서버를 프로비저닝하지 않고도 생성할 수 있습니다.

saga 패턴을 지원하는 AWS 서비스가 있었습니다. saga 패턴이 제공하는 이점에 대해 논의해 보겠습니다.

AWS에서 Saga 패턴의 이점은 무엇입니까?

saga 패턴이 제공하는 몇 가지 이점은 다음과 같습니다.

  • 분산 트랜잭션 관리
  • 데이터 일관성
  • 결함 허용
  • 확장성
  • 이점에 대해 자세히 알아보겠습니다.

    분산 트랜잭션 관리

    Saga 패턴은 마이크로서비스 아키텍처에서 분산 트랜잭션을 처리하기 위한 간단하면서도 효율적인 솔루션을 제공합니다. 트랜잭션을 관리 가능한 단계로 나누면 복잡한 워크플로를 간소화하는 데 도움이 됩니다.

    데이터 일관성

    보상 조치는 부분적인 시스템 장애 및 부분적인 트랜잭션에도 불구하고 데이터 일관성을 유지하도록 설계되었습니다. 개발자는 saga 패턴을 사용하여 분산 시스템에서 트랜잭션 결과에 관계없이 평형 상태에 도달할 수 있습니다.

    결함 허용

    Saga 패턴은 각 단계 수준에서 장애를 처리하고 오류를 보상하여 내결함성이 향상된 마이크로 서비스 아키텍처를 제공합니다. 결과적으로 이를 사용하는 시스템은 전체 애플리케이션 성능에 영향을 주지 않고 부분적인 트랜잭션 오류로부터 신속하게 복구할 수 있습니다.

    확장성

    Saga 패턴은 수평적 확장성을 제공하여 시스템이 더 많은 마이크로서비스 인스턴스를 추가하여 증가된 트랜잭션 로드를 처리할 수 있도록 합니다. 이러한 유연성은 변동하는 워크로드를 효과적으로 처리해야 하는 최신 앱에 매우 중요합니다.

    이것은 saga 패턴과 그 구성 요소 및 AWS 서비스에서의 사용에 관한 것입니다.

    결론

    Saga 패턴은 마이크로서비스 아키텍처 내에서 분산 트랜잭션을 처리하기 위한 효과적인 접근 방식을 제공합니다. AWS Step Functions, Lambda, DynamoDB, SNS 및 SQS는 이 패턴을 지원하는 몇 가지 AWS 서비스에 불과합니다. 이 기사에서는 saga 패턴과 작동 방식에 대해 포괄적으로 설명했습니다.