Redshift에서 다른 계정의 RDS - postgresql 연동하기

0

A 계정의 Redshift 에서 외부테이블로 B계정의 RDS - postgresql을 연결하려고 합니다 B 계정에서 iam을 생성하여 role에 A 계정을 연동하였고 이를 A 계정 iam에 등록하였습니다. 그리고 B 계정의 보안그룹에 A계정의 Redshift ip를 인바운드로 등록해놓은 상태입니다.

여기서 A계정의 Redshift에서 CREATE EXTERNAL SCHEMA test_schema FROM POSTGRES DATABASE 'postgres' SCHEMA 'test_schema' URI 'B.postgresql.endpoint' IAM_ROLE 'A.iam.role' SECRET_ARN 'secretmanager.arn'';

로 스키마 연결에는 성공하였는데 스키마 조회시 아래와 같은 오류가 나고 있습니다 ERROR: Failed to incorporate external table "test_schema"."test_table" into local catalog. Error=JSON parsing error [ErrorId: 1-67809148-484379807bd333644545b76b]

스키마 연동자체가 안된걸까요? 아니면 버전호환성 같은 문제가 있는걸까요?

1개 답변
0

이 문제는 여러 가지 원인으로 발생할 수 있습니다. 외부 스키마 생성은 성공했지만 테이블 정보를 가져오는 과정에서 문제가 발생한 것으로 보입니다.

가능한 원인과 해결 방법은 다음과 같습니다:

  1. 권한 문제: B 계정의 RDS PostgreSQL 데이터베이스에서 A 계정의 Redshift가 접근하는 사용자에게 충분한 권한이 부여되지 않았을 수 있습니다. B 계정의 RDS PostgreSQL에서 해당 사용자에게 필요한 스키마와 테이블에 대한 SELECT 권한을 부여했는지 확인하세요.

  2. 네트워크 연결 문제: 보안 그룹 설정을 확인했지만, 실제로 Redshift에서 RDS PostgreSQL로의 연결이 제대로 이루어지지 않을 수 있습니다. 네트워크 연결을 테스트해보세요.

  3. Secret Manager 설정 문제: SECRET_ARN에 지정된 시크릿이 올바른 형식과 정보를 포함하고 있는지 확인하세요. 사용자 이름, 비밀번호 등이 정확히 설정되어 있어야 합니다.

  4. 버전 호환성 문제: Redshift와 RDS PostgreSQL의 버전이 호환되지 않을 수 있습니다. 두 서비스의 버전을 확인하고, 필요하다면 업그레이드를 고려해보세요.

  5. 테이블 구조 문제: 외부 테이블의 구조가 Redshift에서 지원하지 않는 데이터 타입이나 구조를 가지고 있을 수 있습니다. 테이블 구조를 검토하고 필요하다면 수정하세요.

  6. JSON 파싱 오류: 오류 메시지에 JSON 파싱 오류가 언급되어 있습니다. 테이블 메타데이터를 가져오는 과정에서 JSON 관련 문제가 발생했을 수 있습니다. RDS PostgreSQL의 테이블 정의를 확인하고, 특히 JSON 데이터를 포함하는 컬럼이 있다면 이를 검토하세요.

이러한 가능성들을 하나씩 확인하고 문제를 해결해 나가는 것이 좋습니다. 만약 문제가 지속된다면, AWS 지원팀에 문의하여 더 자세한 진단을 받아보는 것도 좋은 방법입니다.
Sources
CREATE EXTERNAL SCHEMA - Amazon Redshift
Cross account IAM permission set-up for running a Redshift COPY Command from Amazon S3 bucket in one AWS account to Amazon Redshift in another AWS account. | AWS re:Post
Connect to MySQL and MariaDB from Amazon Aurora and Amazon RDS for PostgreSQL using the mysql_fdw extension | AWS Database Blog

profile picture
답변함 한 달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인