DevCourse/데이터 웨어하우스 관리 & BI 대시보드

Snowflake 학습환경세팅

Younder 2024. 5. 11. 19:25

Snowflake에 대해 학습을 해보고자 학습환경을 세팅해보고자 한다.

1. 계정생성

https://signup.snowflake.com/?utm_cta=website-homepage-hero-button-start-for-free 

 

Snowflake Trial

 

signup.snowflake.com

해당 사이트에 접속하여 Snowflake 계정을 생성해준다, Snowflake 는 30일 혹은 $400 까지 무료로 평가판을 사용 가능하다.

해당 조건을 충족할 경우 계정은 정지 상태가 되며, 결제 정보를 입력할 경우 다시 사용이 가능하도록 되어있다.

Snowflake 는 멀티클라우드를 지원한다. 

이에 따라 클라우드 공급자를 선택해서 사용할 수 있는데 난 기존에 AWS-Redshift 를 학습한 경험이 있어 AWS 를 선택하였다.

이후 간단한 설문조사 절차를 진행하고, 입력했던 이메일 정보로 Confirm 을 위한 메일을 확인하여 계정을 생성할 수 있다. 

패스워드 조건이 일반적인 조건과 다르게 특수문자는 사용해선 안된다는 점을 유의해야 한다. 

 

등록을 모두 마치면 앞서 Confirm 을 위해 등록했던 이메일에 로그인을 위한 URL이 적힌 메일이 도착해있을텐데 전달된 URL 을 통해서만 Snowflake를 사용할 수 있으니, 해당 URL은 잘 보관해둬야한다 !

 

A. Snowflake 비용구조

  • 컴퓨팅비용 : warehouses 의 컴퓨팅비용으로 warehouse size 와 그에따른 시간에 따라 비용이 책정된다.
  • 스토리지 비용 : TB 단위로 비용이 책정된다.
  • 네트워크 비용 : 지역간 데이터 전송 혹은 다른 클라우드간 데이터 전송시 TB 단위로 비용이 책정된다.

 

2. Schema / Table 생성

다음과 같은 구조의 데이터 베이스 구조를 만들어 보고자 한다.

 

 

우선 다음 데이터 베이스 구조를 잡기 위해 새로운 웹 SQL 에디터인 SQL Worksheet 를 생성하고, Default로 생성되는 worksheet의 이름을 본인의 취향에 맞게 설정한다, 여기서 워크시트란 노트북 정도로 생각하면 좋다 !

 

 

 

 

이 후 위와 같은 구조를 만들기 위해 데이터베이스와 스키마를 생성하였다.

AWS 액세스 키 정보는 본인이 생성한 사용자의 키를 사용하여 Snowflake 에서 s3 버킷에 접근가능하다.


 

Snowflake 에서 AWS-S3 에 접근 권한을 가진 IAM 을 설정하는 방법은 아래와같다.

1. 사용자를 생성하고, 해당 계정에 대한 정책을 생성하는데 이때 S3 READ 에 관한 정책만 추가해준다.

2. IAM 에서 방금 생성한 계정을 통해 Snowflake에서 S3 로 접근하기 위해 외부에서 실행되는 어플리케이션 항목을 선택하여 생성한 계정의 액세스 키를 만듦으로써 해당 키와 비밀키를 사용하여 외부에서 접근할 수 있다.

 

 

 

3. Snowflake 사용자 권한 생성

Snowflake 는 Role 을 통해 데이터 베이스에 대한 접근 권한을 정의할 수 있다. 

사용자에게 Role 을 할당함으로써 그 사용자는 Role에 정의된 권한을 갖게 되는데 이 때 Role은 계층적으로 구성될 수 있어 상위 Role이 하위 Role에게 권한을 상속할 수 있어 이를 통해 복잡한 조직 구조와 다양한 접근 수준을 효율적으로 관리할 수 있다.

 

Role을 이용함으로써 얻을 수 있는 장점은 다음과 같다.

  1. 세분화된 권한 관리 : 특정 데이터베이스, 스키마, 테이블 그리고 더 나아가 열, 수준까지 권한을 정의할 수 있어 데이터 접근을 정밀하게 제어할 수 있다.
  2. 계층적 권한 상속 : 계층적 구조를 통해 상위 Role 에서 하위 Role로 권한을 효율적으로 상속할 수 있다. 이를 통해 복잡성을 줄이고, 조직 내에서 역할 기반의 접근 제어를 간소화 한다.
  3. 유연성과 확장성 : 다양한 Role을 생성하고, 조합함으로써 조직의 변화나 확장에 따라 사용자 권한을 쉽게 조정할 수 있다. 이를 통해 비즈니스 요구사항이 변경될 때 빠르게 대응할 수 있도록 해준다.

 

다음과 같이 Role을 생성하고, 권한을 부여하고, 상속의 개념을 이용해서 Role 을 생성해보고자 한다.

 

 

 

다음 처럼 사용자가 원하는 Role을 생성하고, Base가 되는 Role을 생성하고, 그 Role의 상속을 통해 새로운 권한을 생성할 때 위처럼 편리하게 Role 생성이 가능하다.

'DevCourse > 데이터 웨어하우스 관리 & BI 대시보드' 카테고리의 다른 글

Snowflake는 무엇인가 ?  (0) 2024.05.09
ETL 과 Airflow  (0) 2024.05.06