쿼리 편집기를 사용하여 데이터베이스 쿼리
쿼리 편집기를 사용하면 Amazon Redshift 클러스터에서 호스팅하는 데이터베이스에 대한 쿼리를 손쉽게 실행할 수 있습니다. 클러스터를 생성한 후 바로 Amazon Redshift 콘솔에서 쿼리 편집기를 사용해 쿼리를 실행할 수 있습니다.
참고
이 원본 쿼리 편집기를 사용하면 Amazon Redshift Serverless 내의 데이터는 쿼리할 수 없습니다. 대신 Amazon Redshift 쿼리 편집기 v2를 사용하십시오.
2021년 2월에 업데이트된 쿼리 편집기가 배포되고 쿼리 편집기를 사용할 수 있는 권한 부여 권한이 변경되었습니다. 새 쿼리 편집기는 Amazon Redshift Data API를 사용하여 쿼리를 실행합니다. AWS 관리형 AWS Identity and Access Management(IAM) 정책인 AmazonRedshiftQueryEditor
정책이 필요한 권한을 포함하도록 업데이트되었습니다. 사용자 정의 IAM 정책이 있는 경우 해당 정책을 업데이트해야 합니다. AmazonRedshiftQueryEditor
를 가이드로 사용합니다. AmazonRedshiftQueryEditor
의 변경 사항으로 다음과 같은 것들이 있습니다.
쿼리 편집기 문 결과를 관리하기 위한 권한은 문 소유자 사용자를 필요로 합니다.
Secrets Manager를 사용하여 데이터베이스에 연결할 수 있는 권한이 추가되었습니다.
자세한 내용은 Amazon Redshift 콘솔 쿼피 편집기 사용에 필요한 권한 섹션을 참조하세요.
새 쿼리 편집기에서 클러스터에 연결할 때 쿼리 편집기로 연결에 설명된 대로 2가지 인증 방법 중 하나를 사용할 수 있습니다.
쿼리 편집기를 사용해 다음을 수행할 수 있습니다.
단일 SQL 문 쿼리를 실행합니다.
100MB 크기의 결과 집합을 쉼표 구분 값(CSV) 파일로 다운로드합니다.
다시 사용할 수 있도록 쿼리를 저장합니다. 유럽(파리) 리전, 아시아 태평양(오사카) 리전, 아시아 태평양(홍콩) 리전 또는 중동(바레인) 리전에서는 쿼리를 저장할 수 없습니다.
사용자 정의 테이블에서 쿼리 런타임 세부 정보를 확인합니다.
나중에 실행되도록 쿼리를 예약합니다.
쿼리 편집기에서 생성한 쿼리 기록을 봅니다.
Enhanced VPC Routing을 사용하여 클러스터에 대해 쿼리를 실행합니다.
쿼리 편집기 고려 사항
쿼리 편집기를 사용할 때 쿼리 작업에 대해 다음을 고려합니다.
최대 쿼리 기간은 24시간입니다.
최대 쿼리 결과 크기는 100MB입니다. 호출이 100MB를 초과하는 응답 데이터를 반환하면 호출이 종료됩니다.
쿼리 결과의 최대 보존 시간은 24시간입니다.
최대 쿼리 문 크기는 100KB입니다.
클러스터는 Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에 있어야 합니다.
쿼리 편집기에서는 트랜잭션을 사용할 수 없습니다. 트랜잭션에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 BEGIN 섹션을 참조하세요.
쿼리는 최대 3,000자까지 저장할 수 있습니다.
쿼리 편집기에 대한 액세스 활성화
쿼리 편집기에 액세스하려면 권한이 있어야 합니다. 액세스를 사용하려면 IAM 권한에 대한 AmazonRedshiftQueryEditor
및 AmazonRedshiftReadOnlyAccess
AWS 관리형 정책을 클러스터에 액세스하는 데 사용하는 IAM 역할에 연결하는 것이 좋습니다. 그런 다음 사용자에게 역할을 할당할 수 있습니다. IAM 콘솔((https://console.aws.amazon.com/iam/
Amazon Redshift에 액세스할 사용자를 이미 생성한 경우 역할을 할당하는 방법으로 해당 사용자에게 AmazonRedshiftQueryEditor
및 AmazonRedshiftReadOnlyAccess
AWS 관리형 정책을 연결할 수 있습니다. 아직 사용자를 생성하지 않은 경우 사용자를 하나 생성하고 이 정책을 IAM 역할에 연결한 뒤 역할을 사용자에게 할당합니다.
AWS 관리형 정책 AmazonRedshiftQueryEditor
는 기본적으로 슈퍼 사용자에 데이터베이스에 대한 액세스 권한을 부여하는 redshift:GetClusterCredentials
작업을 허용합니다. 액세스를 제한하려면 다음 중 하나를 수행하면 됩니다.
redshift:GetClusterCredentials
호출을 허용하고 리소스를DbUser
에 대해 지정된 값으로 제한하는 사용자 정의 정책을 생성합니다.redshift:GetClusterCredentials
에 권한을 거부하는 정책을 추가하세요. 이 권한이 연결된 역할이 할당된 모든 사용자는 임시 자격 증명으로 쿼리 에디터에 로그인해야 합니다. 이 거부 정책은 그 예를 보여줍니다.{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "redshift:GetClusterCredentials", "Resource": "*" } }
필요한 권한이 있는 역할 생성에 대한 자세한 내용은 GetClusterCredentials 호출 권한이 있는 IAM 역할 생성을 참조하세요.
AWS 관리형 정책 AmazonRedshiftQueryEditor
를 통해 Amazon Redshift 쿼리 에디터에 대한 액세스 권한을 부여받은 모든 사용자는 모든 보안 암호를 나열할 수 있습니다. 하지만 이 정책에서는 RedshiftQueryOwner
키와 ${aws:userid}
값으로 태그가 지정된 암호만 생성하고 검색할 수 있습니다. Amazon Redshift 쿼리 에디터에서 키를 생성하면 자동으로 키에 태그가 지정됩니다. Amazon Redshift 쿼리 편집기로 생성되지 않은 보안 암호를 사용하려면 보안 암호에 키 RedshiftQueryOwner
와 고유한 IAM 사용자 식별자 값(예: AIDACKCEVSQ6C2EXAMPLE
)으로 태그가 지정되었는지 확인합니다.
Amazon Redshift 쿼리 에디터를 사용하는 데 필요한 권한은 AmazonRedshiftQueryEditor와 AmazonRedshiftReadOnlyAccess입니다.
액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가합니다.
-
AWS IAM Identity Center의 사용자 및 그룹:
권한 세트를 생성합니다. AWS IAM Identity Center 사용 설명서의 권한 세트 생성의 지침을 따르세요.
-
자격 증명 공급자를 통해 IAM에서 관리되는 사용자:
아이덴티티 페더레이션을 위한 역할을 생성합니다. IAM 사용 설명서의 서드 파티 자격 증명 공급자의 역할 만들기(연합)의 지침을 따르세요.
-
IAM 사용자:
-
사용자가 맡을 수 있는 역할을 생성합니다. IAM 사용 설명서에서 IAM 사용자의 역할 생성의 지침을 따르세요.
-
(권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서에서 사용자(콘솔)에 권한 추가의 지침을 따르세요.
-
쿼리 편집기로 연결
쿼리 편집기를 사용하여 클러스터에 연결할 때 다음 인증 방법 중 하나를 사용합니다. 각 방법에는 Amazon Redshift 콘솔의 다양한 입력 조합이 필요합니다.
- AWS Secrets Manager
-
이 방법으로 AWS Secrets Manager에 저장되어 있는 secret-arn에 대한 보안 암호 값을 제공합니다. 이 보안 암호에는 데이터베이스에 연결하기 위한 자격 증명이 포함되어 있습니다.
- 임시 자격 증명
-
이 방법으로 database 및 db-user 값을 제공합니다.
AWS Secrets Manager에 데이터베이스 자격 증명 저장
쿼리 편집기를 호출할 때 AWS Secrets Manager의 보안 암호를 사용하여 클러스터에 대한 자격 증명을 전달할 수 있습니다. 이 방식으로 자격 증명을 전달하려면 보안 암호의 이름이나 Amazon 리소스 이름(ARN)을 지정합니다.
최소 권한에 대한 자세한 내용은 AWS Secrets Manager User Guide의 Creating and Managing Secrets with AWS Secrets Manager를 참조하세요.
Amazon Redshift 클러스터의 보안 암호에 자격 증명을 저장하려면
-
AWS Secrets Manager를 사용하여 클러스터의 자격 증명을 포함하는 보안 암호를 생성합니다. [새 보안 암호 저장(Store a new secret)]을 선택할 때 [Redshift 클러스터용 자격 증명(Credentials for Redshift cluster)]을 선택합니다. 보안 암호에 [사용자 이름(User name)](데이터베이스 사용자), [암호(Password)] 및 [DB 클러스터(DB cluster)](클러스터 식별자) 값을 저장합니다.
이에 관한 지침은 AWS Secrets Manager User Guide의 Creating a Basic Secret을 참조하세요.
-
AWS Secrets Manager 콘솔을 사용하여 생성한 보안 암호에 대한 세부 정보를 보거나
aws secretsmanager describe-secret
AWS CLI 명령을 실행합니다.
쿼리 편집기 사용
다음 예에서는 쿼리 편집기를 사용하여 아래 작업을 수행합니다.
SQL 명령을 실행합니다.
쿼리 실행 세부 정보를 확인합니다.
쿼리를 저장합니다.
쿼리 결과 집합을 다운로드합니다.
다음 예를 완료하려면 기존 Amazon Redshift 클러스터가 필요합니다. 클러스터가 없는 경우 클러스터 생성 단원의 절차에 따라 클러스터를 하나 생성합니다.
Amazon Redshift 콘솔에서 쿼리 편집기를 사용하려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshift/
에서 Amazon Redshift 콘솔을 엽니다. -
탐색 메뉴에서 쿼리 편집기(Query editor)를 선택한 다음 클러스터의 데이터베이스에 연결합니다.
스키마로 퍼블릭을 선택하여 이 스키마를 바탕으로 새 테이블을 생성합니다.
쿼리 편집기 창에서 다음 내용을 입력한 다음 실행을 선택하여 새 테이블을 생성합니다.
create table shoes( shoetype varchar (10), color varchar(10));
지우기를 선택합니다.
쿼리 편집기 창에서 다음 명령을 입력한 다음 실행을 선택하여 테이블에 행을 추가합니다.
insert into shoes values ('loafers', 'brown'), ('sandals', 'black');
지우기를 선택합니다.
쿼리 편집기 창에서 다음 명령을 입력한 다음 실행을 선택하여 새 테이블을 쿼리합니다.
select * from shoes;
쿼리 결과에 결과가 나타납니다.
신발 종류 색상 sandals
black
loafers
brown
실행 세부 정보를 확인하려면 실행을 선택합니다.
쿼리 결과를 파일로 다운로드하려면 데이터를 선택하고 내보내기를 선택합니다.