Amazon Kinesis Data Streams의 복원력 - Amazon Kinesis Data Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Kinesis Data Streams의 복원력

AWS 글로벌 인프라는 AWS 리전 및 가용 영역을 기반으로 구축됩니다. AWS 리전은 지연 시간이 짧고 처리량이 높으며 중복성이 높은 네트워킹과 연결된 물리적으로 분리되고 격리된 여러 가용 영역을 제공합니다. 가용 영역을 사용하면 중단 없이 가용 영역 간에 자동으로 장애 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 복수 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.

AWS 리전 및 가용 영역에 대한 자세한 내용은 AWS 글로벌 인프라를 참조하세요.

AWS 글로벌 인프라 외에도 Kinesis Data Streams는 데이터 복원력 및 백업 요구 사항을 지원하는 데 도움이 되는 몇 가지 기능을 제공합니다.

Amazon Kinesis Data Streams의 재해 복구

Amazon Kinesis Data Streams 애플리케이션을 사용하여 스트림의 데이터를 처리할 때 다음 수준의 장애가 발생할 수 있습니다.

  • 레코드 프로세서가 실패할 수 있습니다.

  • 작업자 또는 작업자를 인스턴스화한 애플리케이션 인스턴스가 실패할 수 있습니다.

  • 애플리케이션 인스턴스를 1개 이상 호스팅하는 EC2 인스턴스가 실패할 수 있습니다.

레코드 프로세서 장애

작업자는 Java ExecutorService 작업을 사용하여 레코드 프로세서 메서드를 호출합니다. 작업이 실패하면 작업자가 레코드 프로세서에서 처리하던 샤드를 제어하게 됩니다. 작업자는 새로운 레코드 프로세서 작업을 시작하여 해당 샤드를 처리합니다. 자세한 내용은 읽기 스로틀링 단원을 참조하십시오.

작업자 또는 애플리케이션 장애

워커 또는 Amazon Kinesis Data Streams 애플리케이션의 인스턴스가 실패하면 상황을 감지하고 처리해야 합니다. 예를 들어, Worker.run 메서드에서 예외가 발생하면 이를 파악하고 처리해야 합니다.

애플리케이션 자체가 실패하면 이를 감지하고 애플리케이션을 다시 시작해야 합니다. 애플리케이션이 시작되면 새 작업자를 인스턴스화하고, 처리할 샤드가 자동으로 할당된 새 레코드 프로세서를 인스턴스화합니다. 장애가 발생하기 전에 이 레코드 프로세서가 처리한 것과 동일한 샤드이거나 이 프로세서에 처음 할당된 샤드일 수 있습니다.

작업자 또는 애플리케이션에 장애가 발생했지만 장애가 감지되지 않고, 다른 EC2 인스턴스에서 실행 중인 애플리케이션의 다른 인스턴스가 있는 경우 이러한 다른 인스턴스의 작업자가 장애를 처리합니다. 이러한 작업자는 실패한 작업자가 더 이상 처리하지 않는 샤드를 처리하기 위해 추가 레코드 프로세서를 만듭니다. 따라서 이 다른 EC2 인스턴스의 로드가 증가합니다.

여기서 설명하는 시나리오에서는 워커 또는 애플리케이션이 실패해도 호스팅 EC2 인스턴스가 계속 실행되어 오토 스케일링이 이 인스턴스를 다시 시작하지 않는다고 가정합니다.

Amazon EC2 인스턴스 장애

오토 스케일링의 애플리케이션을 위해 EC2 인스턴스를 실행하는 것이 좋습니다. 그러면 EC2 인스턴스 중 하나가 실패할 경우 오토 스케일링이 자동으로 새 인스턴스를 시작하여 이를 대체합니다. 시작 시 Amazon Kinesis Data Streams 애플리케이션을 시작하도록 인스턴스를 구성해야 합니다.