brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 13. 2020

10탄-Amazon Redshift 실습

실습

<0> 목표

Amazon Redshift를 만들고 사용해보자.

DW (Data  Wherehouse)이다.

s3에서  Redshift로 데이터 올리고, SQL 클라이언트에서 Redshift로 쿼리 하자.

Redshift 성능 모니터링 하자


1

구성

데이터 ---------> S3 -------> Amazon Redshift  <----------  sql 클라이언트 (쿼리) , 웹서버를 통해

S3 데이터를 레드 쉬프트로 올리기

SQL 클라이언트에서  쿼리로 질의 하기


2

계정과 암호를 특이하게 설정


3

Redshift  Role이 필요함 (S3를 사용할수 있는 Role)


4

클러스터 서브넷 그룹을 미리 만들어야 한다. 

클러스터 서브넷 그룹은 Private Subnet 으로 지정하자.


Redshift > 구성 > 클러스터 서브넷 그룹 




<1>  Amazon Redshift  클러스터 생성

<2>  Amazon  Redshift  연결하기

<3>  데이터 올리기

<4> 쿼리 실행시키기

<5> 테이블 조인하기

<6> 성능 분석

<7> Amazon Redshift 모니터링 하기




<1> Amazon  Redshift  클러스터 만들기


1

Amazon Redshift  >  클러스터 생성

클러스트 식별자

seo-rs1

DC2  

dc2.large   

Nodes  

2


2

데이터 베이스 이름

dev

데이터베이스 포트(선택 사항)

5439

마스터 사용자 이름

master

마스터 사용자 암호

master123A

// 적어도 하나의 대문자가 있어야 함


3

클러스터 권한  >   Redshift-role  선택 > IAM역할 클릭하여 추가한다.

// Role 이 필요하다.


IAM 정책 생성

seo-redshift-policy

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Action": "s3:*",

            "Resource": "*",

            "Effect": "Allow"

        }

    ]

}


4

role

Redshift - Customizable

seo-redshift-role

seo-redshift-policy 추가



5

기본값사용을 사용하지 않는 것으로 변경한다.


네트워크 및 보안  >  사용 VPC  > 


6

SG그룹  > default제거 (기본값 제거)  

>  Redshift  보안 그릅   >    TCP  5439   0.0.0.0/0    

인바운드 규칙 편집


7

클러스터 생성

생성완료


8

속성 > endpoint  복사


9

그림으로 다시 보기


노드 2개 디폴트


IAM 권한 변경



10

추가 구성에서 네트워크  변경


// VPC를 선택하여 사용하려고하면, 클러스터 서브넷 그룹을 미리 만들어야 한다. 

클러스터 서브넷 그룹은 Private Subnet 으로 지정하자.


Redshift > 구성 > 클러스터 서브넷 그룹 


기본  VPC대신  Private로 변경

https://aws.amazon.com/ko/premiumsupport/knowledge-center/vpc-redshift-associate/


https://docs.aws.amazon.com/redshift/latest/mgmt/managing-cluster-subnet-group-console.html#create-cluster-subnet-group


11

보안

보안그룹 변경 필요



12

일반 정보에서 엔드포인트 복사

seo-rs1.chmfpfndoht9.us-west-2.redshift.amazonaws.com:5439/dev




<2>  Amazon Redshift  연결하기


1

클라이언트 에서 


2

host는   Redshift    콘솔에서 확인하라.  

Endpoint 수정 (아래 참고)

seo-rs1.chmfpfndoht9.us-west-2.redshift.amazonaws.com:5439/dev

// host 주소는 :5439/dev 삭제


seors.xxxxxxxxxxxxx.us-west-2.redshift.amazonaws.com:5439/lab

=>

seors.xxxxxxxxx.us-west-2.redshift.amazonaws.com

username

master

master123A

dev

5439 (포트 변경)



3

접속  성공

 SQL Query




<3> S3에서 Amazon Redshift로  데이터 올리기


1

Amazon Redshift  테이블 만들기 

SQL Query

클라이언트에서 run query

//  코드



S3 data -> Redshift  올리기 

// 코드 입력

// INSERT-YOUR-REDSHIFT-ROLE  대신에  redshiftrole 값 입력.

쿼리 실행




<4> 쿼리 실행시키기


1

SELECT COUNT(*) FROM flights;

결과 레코더 나옴.

레코더 수 나옴.  엄청 올라 갔다!



2

데이터 보기

SELECT * FROM flights ORDER BY random() LIMIT 10;



참고

https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/tutorial-loading-data.html

감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari