배경

초기 구축시 AWS RDS 를 활용하였습니다. 서비스 셧다운으로 RDS 를 종료하고 스냅샷을 기록해두고 있었습니다. 신규로 구성하고 있는 구조에서 이전 DB 데이터를 조회하고 싶은 니즈가 생겼습니다.

흐름

  1. RDS 스냅샷을 S3 로 내보내기(export)
  2. S3 에는 메타 정보를 위한 JSON 파일과 Parquet 파일 생성
  3. S3 생성된 파일들을 AWS Glue 의 크롤러를 통해 테이블 생성
  4. 생성된 테이블은 AWS Athena 를 통해 쿼리 조회

이슈

AWS Glue 서비스가 S3 버킷의 암호화된 데이터에 접근할 권한이 없는 이슈

⇒ Glue 크롤러의 IAM 에 인라인 정책 추가 ("Action": "kms:Decrypt”)

Athena 에서 쿼리 조회시 실패

⇒ Athena에서 쿼리 결과는 반드시 S3에 저장되어야 합니다. 이것은 Athena의 설계 방식입니다. 즉, 쿼리를 실행하기 전에 "Query result location"을 설정 필요.