AWS Glue 스트리밍을 위한 유지 관리 기간
AWS Glue에서는 정기적으로 유지 관리 활동을 수행합니다. 이러한 유지 관리 기간 동안에는 AWS Glue에서 스트리밍 작업을 다시 시작해야 합니다. 유지 관리 기간을 지정하여 작업이 다시 시작되는 시기를 제어할 수 있습니다. 이 섹션에서는 유지 관리 기간과 고려해야 할 특정 동작을 설정할 수 있는 위치를 간략하게 설명합니다.
유지 관리 기간 설정
AWS Glue Studio 또는 API를 사용하여 유지 관리 기간을 설정할 수 있습니다.
AWS Glue Studio에서 유지 관리 기간 설정
AWS Glue 스트리밍 작업의 작업 세부 정보 페이지에서 유지 관리 기간을 지정할 수 있습니다. GMT로 날짜 및 시간을 지정할 수 있습니다. AWS Glue는 지정된 기간에 작업을 다시 시작합니다.
API에서 유지 관리 기간 설정
또는 작업 생성 API에서 유지 관리 기간을 설정할 수 있습니다. 다음은 API를 통해 유지 관리 기간을 구성하는 예제입니다.
aws glue create-job —name jobName —role roleArnForTheJob —command Name=gluestreaming,ScriptLocation=s3-path-to-the-script --maintenance-window="Sun:10"
다음은 예제 명령입니다.
aws glue create-job —name testMaintenance —role arn:aws:iam::012345678901:role/Glue_DefaultRole —command Name=gluestreaming,ScriptLocation=s3://glue-example-test/example.py —maintenance-window="Sun:10
유지 관리 기간 동작
AWS Glue는 작업을 다시 시작할 시기를 결정하기 위해 일련의 단계를 수행합니다.
새 스트리밍 작업이 시작되면 AWS Glue는 먼저 작업 실행과 관련된 제한 시간이 있는지 확인합니다. 제한 시간을 통해 작업 종료 시간을 구성할 수 있습니다. 제한 시간이 7일 미만인 경우 작업이 다시 시작되지 않습니다.
제한 시간이 7일을 초과하면 AWS Glue는 작업에 대해 유지 관리 기간이 구성되어 있는지 확인합니다. 그러면 해당 기간이 선택되고 해당 기간이 작업 실행에 할당됩니다. AWS Glue는 지정된 유지 관리 기간으로부터 3시간 이내에 작업을 다시 시작합니다. 예를 들어, 유지 관리 기간을 GMT 기준 월요일 오전 10시로 설정하면 작업이 GMT 기준 오전 10시에서 오후 1시 사이에 다시 시작됩니다.
유지 관리 기간이 구성되지 않은 경우 AWS Glue는 다시 시작 시간을 작업 실행 시작 시간으로부터 7일 후로 자동 설정합니다. 예를 들어, 2024년 7월 1일 오전 12:00 GMT에 작업을 시작한 후 유지 관리 기간을 지정하지 않은 경우 2024년 7월 8일 오전 12:00 GMT에 작업이 다시 시작되도록 설정됩니다.
참고
스트리밍 작업을 이미 실행 중인 경우 이 변경 사항은 2024년 7월 1일부터 적용됩니다. 6월 30일까지 유지 관리 기간을 구성할 수 있습니다. 7월 1일 이후에는 이 설명서에 따라 시작하는 모든 스트리밍 작업이 다시 시작됩니다. 추가 지원이 필요한 경우 AWS Support에 문의할 수 있습니다.
때때로, 특히 진행 중인 마이크로 배치가 처리되지 않을 때 AWS Glue에서 작업을 다시 시작하지 못할 수 있습니다. 이 경우 작업이 중단되지 않습니다. 이 경우 AWS Glue는 14일 후에 작업을 다시 시작하며, 이때 유지 관리 기간은 적용되지 않습니다.
작업 모니터링
AWS Glue Studio 모니터링 페이지에서 작업을 모니터링할 수 있습니다.
스트리밍 작업의 예상 다음 다시 시작 시간을 보려면 모니터링 페이지의 작업 실행 테이블에 열을 표시합니다.
테이블 오른쪽 상단에서 톱니 아이콘을 클릭합니다.
아래로 스크롤하여 예상 다시 시작 시간 열을 켭니다. UTC 및 로컬 시간 옵션을 모두 사용할 수 있습니다.
그런 다음, 테이블의 열을 볼 수 있습니다.
원래 작업의 상태는 '만료됨'이고 새 작업 인스턴스의 상태는 '실행 중'입니다. 다시 시작된 새 작업 실행의 작업 실행 ID는 초기 작업 실행 ID와 다시 시작 횟수를 나타내는 접두사 'restart_'의 연결로 구성됩니다. 예를 들어 초기 작업 실행 ID가 jr_1234
인 경우 다시 시작된 작업 실행의 첫 번째 다시 시작 시 ID는 jr1234_restart_1
입니다. 두 번째 다시 시작 시 jr1234_restart_2
와 같은 식입니다.
다시 시작이므로 재시도는 영향을 받지 않습니다. 자동 재시도로 인해 실행이 실패하고 새 실행이 시작되면 다시 시작 카운터는 1부터 다시 시작됩니다. 예를 들어 jr_1234_attempt_3_restart_5
에서 실행이 실패하면 자동 재시도 시 jr_id1_attempt_4
의 ID로 새 실행이 시작되고 7일 후에 이 시도가 다시 시작되면 새 실행 ID는 jr_id1_attempt_4_restart_1
입니다.
데이터 손실 처리
유지 관리가 다시 시작되는 동안 AWS Glue 스트리밍은 이전 작업 실행과 다시 시작된 작업 실행 간 데이터 무결성과 일관성을 보장하는 프로세스를 따릅니다. AWS Glue는 작업 다시 시작 사이에서 데이터 무결성과 일관성을 보장하지 않으며, 스트리밍 작업 내에서 중복된 데이터를 처리하기 위해 아키텍처 고려 사항을 사용하는 것이 좋습니다.
유지 관리 다시 시작 조건 감지: AWS Glue 스트리밍은 7일 후 유지 관리 기간에 도달하거나 14일 후 하드 다시 시작이 필요한 경우와 같이 유지 관리 다시 시작을 트리거해야 하는 시기를 나타내는 조건을 모니터링합니다.
정상적인 종료 간접 호출: 유지 관리 다시 시작 조건이 충족되면 AWS Glue 스트리밍은 현재 실행 중인 작업에 대해 정상적인 종료 프로세스를 시작합니다. 이 프로세스는 다음 단계를 포함합니다.
새 데이터 수집 중지: 스트리밍 작업은 입력 소스(예: Kafka 주제, Kinesis 스트림 또는 파일)에서 새 데이터 소비를 중지합니다.
보류 중인 데이터 처리: 작업은 내부 버퍼 또는 대기열에 이미 있는 모든 데이터를 계속 처리합니다.
오프셋 및 체크포인트 커밋: 작업이 외부 시스템(예: Kafka, Kinesis 또는 Amazon S3)에 최신 오프셋 또는 체크포인트를 커밋하여 다시 시작된 작업이 이전 작업이 중단된 위치에서 선택할 수 있도록 합니다.
작업 다시 시작: 정상적인 종료 프로세스가 완료되면 AWS Glue 스트리밍은 보존된 상태 및 체크포인트를 사용하여 작업을 다시 시작합니다. 다시 시작된 작업은 마지막으로 커밋된 오프셋 또는 체크포인트에서 처리를 선택하여 데이터가 손실되거나 복제되지 않도록 합니다.
데이터 처리 재개: 다시 시작된 작업은 이전 작업이 중단된 시점부터 데이터 처리를 재개합니다. 마지막으로 커밋된 오프셋 또는 체크포인트부터 시작하여 입력 소스에서 새 데이터를 계속 수집하며 정의된 ETL 로직에 따라 데이터를 처리합니다.