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 인스턴스가 계속 실행되어 Auto Scaling 그룹이 이 인스턴스를 다시 시작하지 않는다고 가정합니다.

Amazon EC2 인스턴스 장애

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