S3 Tables 복제 관리하기

S3 Tables 복제 관리하기 (Managing S3 Tables replication)

S3 Tables 복제를 구성한 뒤에는 복제본 상태를 모니터링해 무엇이 복제됐는지 확인할 수 있어요. 복제 상태는 Amazon S3 콘솔의 소스 테이블 Management 탭이나 AWS CLI로 확인할 수 있어요. 자세한 내용은 "Setting up S3 Tables replication" 문서를 참고하세요. 이 항목에서는 복제를 모니터링하고 복제가 완료되었는지, 진행 중인지, 실패했는지를 나타내는 여러 상태 값들을 이해하는 방법을 설명해요.

출처: 문서

본문

복제 상태 모니터링하기

복제 작업은 복제된 테이블에 대해 지속적으로 실행돼요. GetTableReplicationStatus API로 복제 상태를 쿼리하거나 Amazon S3 콘솔에서 확인할 수 있어요.

AWS CLI로 복제 상태 가져오기

다음 예시는 GetTableReplicationStatus API를 사용해 복제 상태를 가져와요.

aws s3tables get-table-replication-status \
    --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/sales-data

예상 출력:

{
  "sourceTableARN": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/sales-data",
  "destinations": [
    {
      "replicationStatus": "COMPLETED",
      "destinationBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket",
      "destinationTableARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/table/sales-data",
      "lastSuccessfulReplicatedUpdate": {
        "metadataLocation": "latest_table_metadata.json",
        "timestamp": "2025-11-15T14:30:00Z"
      }
    },
    {
      "replicationStatus": "PENDING",
      "destinationBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu-bucket",
      "destinationTableARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu-bucket/table/sales-data",
      "lastSuccessfulReplicatedUpdate": {
        "metadataLocation": "latest_table_metadata.json",
        "timestamp": "2025-11-15T14:25:00Z"
      }
    }
  ]
}

자세한 내용은 AWS CLI Command Reference의 get-table-replication-status 문서를 참고하세요.

다음 예시는 failureMessage 필드가 포함된 FAILED 상태의 대상을 보여줘요.

{
  "replicationStatus": "FAILED",
  "destinationBucketARN": "arn:aws:s3tables:eu-west-1:444455556666:bucket/amzn-s3-demo-table-bucket-partner",
  "destinationTableARN": "arn:aws:s3tables:eu-west-1:444455556666:bucket/amzn-s3-demo-table-bucket-partner/table/sales-data",
  "failureMessage": "Insufficient permissions given to successfully complete replication."
}

참고: get-table-replication 명령은 복제 구성(역할, 규칙, 대상)을 반환해요. get-table-replication-status 명령은 복제 상태(COMPLETED, PENDING, FAILED), 마지막으로 복제된 메타데이터, 오류 메시지를 반환해요.

응답 이해하기

응답에는 다음 요소가 포함돼요.

  • sourceTableARN – 복제되고 있는 소스 테이블의 ARN.
  • destinations – 구성된 각 복제 대상에 대한 상태 객체 배열. 각 대상 객체에는 다음이 포함돼요.
    • replicationStatus – 이 대상의 현재 복제 상태(COMPLETED, PENDING, FAILED).
    • destinationBucketARN – 대상 테이블 버킷의 ARN.
    • destinationTableARN – 대상 버킷 안의 복제 테이블 ARN.
    • lastSuccessfulReplicatedUpdate – 가장 최근의 성공적인 복제에 대한 정보:
      • metadataLocation – 마지막으로 성공적으로 복제된 Iceberg 메타데이터 파일 이름. 이 값을 소스 테이블의 현재 메타데이터 위치와 비교해 복제가 최신 상태인지 판단할 수 있어요.
      • timestamp – 이 메타데이터 파일이 대상으로 복제된 시점.
    • failureMessage (상태가 FAILED일 때만 표시) – 복제가 실패한 이유를 설명하는 상세 오류 메시지.

복제 상태 값

각 대상에 대해 복제에는 세 가지 가능한 상태가 있어요.

  • COMPLETED – 모든 소스 테이블 스냅샷이 대상으로 성공적으로 복제됨. 소스 테이블의 최신 메타데이터 위치가 마지막으로 복제된 메타데이터 위치와 일치함.
  • PENDING – 복제가 진행 중이거나 새 커밋이 복제를 기다리고 있음. 소스 테이블의 최신 메타데이터 위치가 마지막으로 복제된 메타데이터 위치와 다름.
  • FAILED – 이 테이블의 마지막 복제 작업이 실패함. 새 업데이트가 복제되지 않고 있음.

대상이 FAILED 상태를 보이면 자세한 내용은 failureMessage 필드를 확인하세요. 흔한 원인으로는 권한 부족, 대상 버킷을 찾을 수 없음, KMS 키 문제가 있어요. 근본 원인을 고친 후 서비스가 복제를 자동으로 재시도해요. 상태가 FAILED에서 PENDING으로, 그리고 COMPLETED로 전환되는 과정을 모니터링해 복구를 확인할 수 있어요.

더 알아보기 (Learn more)

  • S3 Tables 복제 설정하기 (Setting up S3 Tables replication)
  • AWS 리전, 엔드포인트, 서비스 할당량 (AWS Regions, endpoints, and quotas)