일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 웹스크래핑
- 데이터웨어하우스
- 개념정리
- 데이터엔지니어
- Amazon
- 자료구조
- airflow
- AWS
- 웹크롤링
- 데브코스
- 에어플로우
- 기술면접
- CS
- DataWarehouse
- 알고리즘
- 파이썬
- 클라우드
- 웹자동화
- Service
- 데이터베이스
- WEB
- Django
- 프로그래머스
- 부트캠프
- 취준
- 개발
- 관계형데이터베이스
- 데이터엔지니어링
- 운영체제
- SQL
- Today
- Total
사진과 음악을 좋아하는 개발자 지망생의 블로그
[데이터 웨어하우스 - 중급] 2. Redshift - ② Redshift 설치 및 초기 설정 본문
[데이터 웨어하우스 - 중급] 2. Redshift - ② Redshift 설치 및 초기 설정
devculture309 2023. 5. 24. 22:181. Redshit 설치
1 - 1. Redshift 설치 과정 데모
Redshift를 설치하고 설정하는 일반적인 과정은 다음과 같습니다
① AWS 계정 생성 및 로그인: AWS 웹 사이트(https://aws.amazon.com)에 접속하여 새로운 AWS 계정을 생성하고 해당 계정으로 로그인합니다.
② Redshift 서비스 선택: AWS 콘솔에 로그인한 후, 서비스 메뉴에서 "Redshift"를 선택합니다.
③ 클러스터 생성: Redshift 콘솔에서 "Launch Cluster" 또는 "Create Cluster" 버튼을 클릭하여 새로운 Redshift 클러스터를 생성합니다. 이때 Redshift Serverless를 선택하고 Free Trial인지 확인하십시오. Free Trial은 일정 기간 동안 무료로 사용할 수 있는 기능입니다. 그러나 만기되기 전에 꼭 셧다운하고 사용 가능한 비용도 최대 $300임을 확인하십시오.
④ 클러스터 구성: 클러스터 생성 페이지에서 다음과 같은 구성 옵션을 설정합니다
- 클러스터 식별자: 클러스터를 식별하는 고유한 이름을 지정합니다.
- 노드 유형: 클러스터를 구성하는 노드의 유형을 선택합니다. 예: dc2.large, dc2.8xlarge 등.
- 노드 개수: 클러스터를 구성하는 노드의 개수를 선택합니다.
- VPC 및 보안 그룹: 클러스터가 속할 VPC(Virtual Private Cloud) 및 보안 그룹을 선택합니다.
- IAM 역할: 클러스터가 S3와 통합하기 위해 필요한 IAM 역할을 선택하거나 생성합니다.
⑤ 클러스터 시작: 구성 옵션을 검토한 후, "Launch Cluster" 또는 "Create Cluster" 버튼을 클릭하여 클러스터를 시작합니다.
⑥ 클러스터 상태 확인: 클러스터 생성이 시작되면 클러스터 상태를 확인할 수 있는 대시보드가 표시됩니다. 클러스터가 활성 상태가 될 때까지 기다리십시오.
⑦ 클러스터 연결: 클러스터가 활성 상태가 되면 연결 정보(엔드포인트, 포트, 사용자 이름 등)를 확인하고 이를 사용하여 클라이언트 애플리케이션 또는 SQL 클라이언트로 클러스터에 연결할 수 있습니다.
1 - 2. Redshift 연결 테스트
Redshift에 Google Colab을 사용하여 연결하려면 다음 단계를 따르세요
① Google Colab 노트북 열기
② 필수 정보 입력: 노트북의 적절한 섹션에 다음 정보를 입력합니다
- Endpoint: 제공된 Redshift 클러스터의 엔드포인트 URL을 입력합니다. 예: http://default.12345678.us-west-2.redshift-serverless.amazonaws.com:5439/dev
- Redshift Username: Redshift 클러스터에 사용할 사용자 이름을 입력합니다. 예: admin
③ 코드 실행: 노트북의 코드 셀을 실행하여 Redshift 클러스터에 연결합니다. 코드는 Redshift 클러스터에 연결하는 데 필요한 라이브러리를 가져오고 연결 매개변수를 설정한 다음 연결을 시도합니다.
④ 연결 테스트: 코드 실행 후에는 Redshift 클러스터에 성공적으로 연결되었는지 확인할 수 있는 메시지가 표시됩니다. 이를 통해 연결이 올바르게 설정되었는지 확인할 수 있습니다.
위 단계를 따라가면 Google Colab을 사용하여 Redshift 클러스터에 연결할 수 있습니다.
1 - 3. Redshift Serverless 외부 연결 열기
Redshift Serverless 클러스터에 외부 연결을 열기 위해 다음 단계를 따르세요
① AWS 콘솔에 로그인하고 Redshift 서비스로 이동합니다.
② Redshift 콘솔에서 "Clusters"를 선택하고 Serverless 클러스터 목록에서 대상 클러스터를 선택합니다.
③ "Cluster details" 탭으로 이동하고 "Network and security" 섹션을 찾습니다.
④ "Public access" 옵션을 "Off"에서 "On"으로 변경합니다. 이렇게 하면 클러스터가 인터넷에 직접 액세스할 수 있게 됩니다. 주의해야 할 점은 외부 액세스를 허용하기 전에 적절한 보안 조치를 취해야 한다는 것입니다.
⑤ 외부에서 클러스터에 연결할 수 있도록 VPC Security Group의 인바운드 규칙을 구성합니다.
이를 위해 다음 단계를 따릅니다
⑤ - 1. AWS 콘솔에서 "VPC" 서비스로 이동합니다
⑤ - 2. "Security Groups" 섹션으로 이동하여 해당 클러스터에 연결된 VPC Security Group을 선택합니다.
⑤ - 3. 선택한 Security Group의 "Inbound Rules" 탭으로 이동하여 포트 번호 5439를 허용하는 인바운드 규칙을 추가합니다. 이를 위해 "Add Rule" 버튼을 클릭하고 다음과 같이 설정합니다
- Type: "Custom TCP"
- Port Range: "5439"
- Source: "0.0.0.0/0" (이렇게 설정하면 모든 IP 주소에서의 액세스가 허용됩니다. 보안상의 이유로 필요한 경우 출처를 제한하는 것이 좋습니다.)
⑥ 변경 사항을 저장하고 외부에서 클러스터에 접근할 수 있도록 설정됩니다.
이제 Redshift Serverless 클러스터에 대한 외부 연결이 열렸습니다. 주의해야 할 점은 보안을 위해 필요한 경우 액세스 제어 및 방화벽 설정을 적절하게 구성해야 한다는 것입니다.
2 . Redshift 초기 설정
2 - 1. 스키마(shema) 설정
Redshift Schema는 다른 관계형 데이터베이스와 동일한 구조를 가지며, 데이터를 구성하는 테이블, 뷰, 인덱스 등을 정의하는 논리적인 컨테이너입니다. Redshift 스키마를 사용하여 데이터를 구조화하고 관리할 수 있습니다.
일반적으로 Redshift를 사용하는 데이터 웨어하우스 환경에서는 다음과 같은 구성 요소가 포함될 수 있습니다
- Raw_data: 원시 데이터를 저장하는 테이블이 있을 수 있습니다. 이는 ETL 프로세스를 통해 가공되기 전의 원본 데이터를 보관하는 용도로 사용될 수 있습니다.
- Analytics: 가공된 데이터를 저장하는 테이블이 있을 수 있습니다. 이는 ETL 또는 ELT 프로세스를 통해 변환된 데이터를 저장하고 분석 작업에 활용하는 용도로 사용될 수 있습니다.
- Adhoc: 임시 분석이나 쿼리용 테이블이 있을 수 있습니다. 이는 즉석으로 필요한 분석 작업이나 특정 요구사항에 대한 쿼리를 실행할 때 사용될 수 있습니다.
- PII (Personal Identifiable Information): 개인 식별 정보를 포함하는 테이블이 있을 수 있습니다. 이러한 테이블은 개인정보 보호에 관련된 법규 준수를 위해 필요한 데이터 마스킹 또는 암호화 등의 보안 조치가 적용될 수 있습니다.
각 스키마는 특정 목적을 가지며, 테이블, 뷰, 함수 등의 데이터베이스 객체를 그룹화하고 구성하는 역할을 합니다. Redshift에서 스키마를 생성하는 방법은 다음과 같습니다
SELECT * FROM pg_namespace;
CREATE SCHEMA raw_data;
CREATE SCHEMA analytics;
CREATE SCHEMA adhoc;
CREATE SCHEMA pii;
- 모든 스키마 나열하기(SELECT * FROM pg_namespace;): 이 쿼리를 실행하면 현재 데이터베이스에 있는 모든 스키마의 목록을 확인할 수 있습니다.
- raw_data 스키마 생성하기(CREATE SCHEMA raw_data;): 이 명령은 "raw_data"라는 이름의 스키마를 생성합니다. 이 스키마는 원시 데이터를 저장하는 용도로 사용될 수 있습니다.
- analytics 스키마 생성하기(CREATE SCHEMA analytics;): 이 명령은 "analytics"라는 이름의 스키마를 생성합니다. 이 스키마는 가공된 데이터를 저장하고 분석 작업에 활용하는 용도로 사용될 수 있습니다.
- adhoc 스키마 생성하기(CREATE SCHEMA adhoc;): 이 명령은 "adhoc"라는 이름의 스키마를 생성합니다. 이 스키마는 임시 분석이나 쿼리 작업을 위해 사용될 수 있습니다.
- pii 스키마 생성하기(CREATE SCHEMA pii;): 이 명령은 "pii"라는 이름의 스키마를 생성합니다. 이 스키마는 개인 식별 정보를 포함하는 테이블을 저장하고 개인정보 보호를 위한 보안 조치를 적용하는 용도로 사용될 수 있습니다.
위의 명령을 실행하여 원하는 스키마를 생성할 수 있습니다. 이후에는 각 스키마에 필요한 테이블을 생성하고 데이터를 적재하여 Redshift 데이터베이스에서 데이터를 구조화하고 관리할 수 있습니다.
2 - 2. 사용자(User) 생성
Redshift에서 사용자(User)를 생성하고 모든 사용자의 목록을 확인하는 방법은 다음과 같습니다.
1) 사용자 생성
사용자를 생성하려면 CREATE USER 문을 사용합니다. 다음은 사용자를 생성하는 예시입니다
CREATE USER myuser PASSWORD 'mypassword';
위의 예시에서 'myuser'는 생성할 사용자의 이름이고 'mypassword'는 해당 사용자의 암호입니다. 원하는 사용자 이름과 암호를 지정하여 사용자를 생성할 수 있습니다.
2) 모든 사용자 리스트하기
모든 사용자의 목록을 확인하려면 'pg_user' 시스템 카탈로그 테이블을 조회합니다. 다음은 모든 사용자를 리스트하는 예시입니다
SELECT * FROM pg_user;
위의 쿼리를 실행하면 현재 Redshift 데이터베이스에 등록된 모든 사용자의 정보를 확인할 수 있습니다.
사용자 생성 후 'pg_use'r를 조회하여 사용자 목록을 확인할 수 있습니다.
2 - 3. 그룹(Group) 생성/설정
Redshift에서 그룹(Group)을 생성하고 설정하는 방법은 다음과 같습니다.
1) 그룹 생성
그룹을 생성하려면 'CREATE GROUP' 문을 사용합니다. 다음은 그룹을 생성하는 예시입니다.
CREATE GROUP pii_users;
CREATE GROUP analytics_authors;
CREATE GROUP analytics_users;
위의 예시에서 'pii_users', 'analytics_authors', 'analytics_users'는 각각 생성할 그룹의 이름입니다. 원하는 그룹 이름으로 그룹을 생성할 수 있습니다.
2) 그룹에 사용자 추가
그룹에 사용자를 추가하려면 'ALTER GROUP' 문을 사용합니다. 다음은 사용자를 그룹에 추가하는 예시입니다
ALTER GROUP pii_users ADD USER user1;
ALTER GROUP analytics_authors ADD USER user2;
ALTER GROUP analytics_users ADD USER user3;
위의 예시에서 'pii_users', 'analytics_authors', 'analytics_users'는 각각 그룹의 이름이고 'user1', 'user2', 'user3'은 해당 그룹에 추가할 사용자입니다. 원하는 사용자를 원하는 그룹에 추가할 수 있습니다.
3) 그룹 리스트 확인
생성된 그룹을 확인하려면 pg_group 시스템 카탈로그 테이블을 사용합니다. 다음은 모든 그룹을 확인하는 예시입니다
SELECT * FROM pg_group;
위의 쿼리를 실행하면 생성된 모든 그룹의 정보를 확인할 수 있습니다.
그룹은 사용자의 권한 관리와 접근 제어를 용이하게 하기 위해 사용됩니다. 한 사용자는 다수의 그룹에 속할 수 있으며, 그룹을 사용하여 필요한 권한 및 접근 제어 설정을 적용할 수 있습니다. 그러나 그룹은 계승되지 않기 때문에 너무 많은 그룹을 만들면 관리가 복잡해질 수 있습니다. 따라서 필요한 범위의 그룹을 생성하고 사용자를 적절히 할당하는 것이 좋습니다.
2 - 4. 역할(Role) 생성/설정
Redshift에서 역할(Role)을 생성하고 설정하는 방법은 다음과 같습니다
1) 역할 생성
역할을 생성하려면 'CREATE ROLE' 문을 사용합니다. 다음은 역할을 생성하는 예시입니다
CREATE ROLE role1;
CREATE ROLE role2;
CREATE ROLE role3;
위의 예시에서 'role1', 'role2', 'role3'은 각각 생성할 역할의 이름입니다. 원하는 역할 이름으로 역할을 생성할 수 있습니다.
2) 역할에 사용자 또는 역할 추가
역할에 사용자 또는 다른 역할을 추가하려면 'GRANT' 문을 사용합니다. 다음은 사용자 또는 역할을 역할에 추가하는 예시입니다
GRANT role1 TO user1;
GRANT role2 TO role3;
위의 예시에서 'role1', 'role2'는 역할의 이름이고 'user1', 'role3'은 해당 역할에 추가할 사용자 또는 역할입니다. 역할에 사용자 또는 역할을 추가하여 계승 구조를 만들 수 있습니다.
3) 역할 리스트 확인
생성된 역할을 확인하려면 'SVV_ROLES' 시스템 뷰를 사용합니다. 다음은 모든 역할을 확인하는 예시입니다.
SELECT * FROM SVV_ROLES;
위의 쿼리를 실행하면 생성된 모든 역할의 정보를 확인할 수 있습니다.
역할은 그룹과는 달리 계승 구조를 가지므로 더 유연한 권한 관리가 가능합니다. 역할은 사용자에게 직접 부여되거나 다른 역할에 부여될 수 있으며, 한 사용자는 다수의 역할에 소속될 수 있습니다. 역할은 권한을 미리 정의하여 역할에 부여함으로써 사용자 또는 다른 역할에게 일괄적으로 권한을 부여할 수 있는 장점이 있습니다. 역할을 사용하여 적절한 권한 관리를 수행할 수 있습니다. 역할은 'SVV_ROLES' 시스템 뷰를 통해 확인할 수 있습니다.
'개발 > 데이터 웨어하우스 - 중급' 카테고리의 다른 글
[데이터 웨어하우스 - 중급] 2. Redshift - ④ Redshift 고급 기능 (0) | 2023.05.25 |
---|---|
[데이터 웨어하우스 - 중급] 2. Redshift - ③ Redshift COPY 명령으로 테이블에 레코드 적재하기 (0) | 2023.05.25 |
[데이터 웨어하우스 - 중급] 2. Redshift - ① Redshift 개요 (0) | 2023.05.24 |
[데이터 웨어하우스 - 중급] 1. 다양한 데이터 웨어하우스 옵션 - 3) 데이터 웨어하우스 옵션들, 실리콘밸리 회사들의 데이터 스택트렌드 (0) | 2023.05.24 |
[데이터 웨어하우스 - 중급] 1. 다양한 데이터 웨어하우스 옵션 - 2) 데이터 웨어하우스와 ETL/ELT (0) | 2023.05.24 |