[AWS RedShift] 4. AWS RedShift Serverless 생성

·2023년 5월 23일
0

REDSHIFT

목록 보기
4/8
post-thumbnail
post-custom-banner

📌 RedShift로 데이터 웨어하우스 환경을 구축해 주기 위해 RedShift를 생성해 보자

  • 먼저 고정 비용 옵션인 Redshift 더 이상 프리 티어를 제공하지 않기 때문에 프리 티어를 원하면 가변 고정 옵션인 Redshift Serverless를 사용해야 한다.
  • 이때 프리 티어 대상인지 아닌지 확인해 주기 위해 Redshift Serverless 대시 보드를 확인해 준다.
  • Serverless 대시 보드에서 해당 Free Trial 혹은 무료 평가판 부분에 몇 크레딧을 사용할 수 있는지 확인 가능하다.
  • Free Trial Expiration을 통해 프리 티어가 제공되는 기간도 확인할 수 있다.

💻 AWS RedShift Serverless 생성

1. 작업 그룹 생성

  • 먼저 Redshift Serverless 우측 상단에 있는 작업 그룹 생성 버튼을 눌러 준다.
  • 작업 그룹 생성에 들어가면 작업 그룹의 이름을 작성해 줄 수 있다.
  • 나는 실습용 생성이었기 때문에 다음과 같이 song-practice로 설정해 주었다.
  • Redshift 처리 단위 기본 용량을 선택하는 것이 있는데 Redshift Serverless는 사용한 만큼 비용이 청구되는 가변 비용 옵션이기 때문에 default로 지정된 128을 선택해 주었다.
  • 네트워크 및 보안에서 default VPC를 선택해 주고, 만약 써야 할 VPC서브넷이 있다면 그에 따라 설정해 주면 된다. 기본적으로 VPC 보안 그룹이 선택되지 않거나 서브넷 ID가 세 개 이상 선택되지 않으면 다음으로 넘어갈 수 없다.


2. 네임스페이스 이름 설정

  • 네임스페이스는 새 네임스페이스 생성기존 네임스페이스에 추가 두 가지가 있는데 아예 AWS Redshift를 처음 사용하는 것이라면 새 네임스페이스 생성을 선택해 주면 된다.


3. 데이터베이스 설정

  • 데이터베이스의 이름은 수정이 불가하다. 다만 관리자의 자격 증명과 관련해서 IAM으로 자격 증명을 하는 관리자 사용자의 자격 증명이 있고, 직접 관리자를 생성하고 이를 사용하는 관리자 사용자의 자격 증명 사용자 지정이 있다. 만약 IAM 사용자를 통해 사용자를 등록하고 싶다면 두 번째 항목을 체크하지 않으면 된다.
  • 이후 IAM 사용자를 등록해 주는 실습을 진행할 예정이라 일단 관리자를 직접 설정해 주었다.


4. 기타 옵션 설정

  • IAM 역할(Role)을 이 과정에서 설정해 줄 수 있다.
  • 암호화 및 보안 단계AWS 소유 키가 아닌 사용자 지정 암호화를 설정하고 싶을 때 선택해 줄 수 있고, 또 감사를 위해 데이터베이스의 로그 정보 중 어떤 걸 수집할 것인지도 선택해 줄 수 있다.
  • 이 두 옵션은 따로 설정을 하지 않아도 생성에는 지장이 없다.


5. 검토

  • 마지막으로 지금까지 작업한 내용에 대해서 생성 직전 검토할 수 있는 화면이 뜨게 된다.
  • 더 이상 수정할 내용이 없다면 생성 버튼을 눌러 생성해 준다.
  • 생성 버튼을 누르면 다시 Redshift Serverless 대시 보드 화면으로 돌아가며 상단에 다음과 같이 생성 중입니다라는 알림이 뜨게 된다.
  • 생성까지의 과정은 시간이 3 분 정도 걸리며 생성이 완료되면 다음과 같은 알림이 상단에 뜨게 된다.


💻 생성된 RedShift 환경 Google Colab에서 접근할 수 있게 설정해 주기

  • 바로 Google Colab에서 Redshift 환경에 접근하려고 한다면 Connection Timed Out가 발생할 것이다.
  • 이는 현재 생성한 RedshiftEndpointPublic Access가 불가한 상태라 나타나는 현상이다.
  • 이를 해결해 주기 위해 두 가지를 설정해 주어야 한다.

1. 퍼블릭 액세스 가능 설정

  • 먼저 Redshift Serverless 대시 보드에 있는 네임스페이스/작업 그룹의 목록을 확인한다.
  • 그리고 Google Colab과 연동해 줄 네임스페이스의 작업 그룹을 선택해 준다
  • 해당 작업 그룹의 일반 정보가 뜨고 바로 하단에 다음과 같이 데이터 액세스 -> 네트워크 및 보안을 확인해 준다.
  • 퍼블릭 액세스 가능이 켜져 있는지 꺼져 있는지 확인하고 꺼져 있다면 편집을 눌러 퍼블릭 액세스가 가능하도록 켜 준다.
  • 편집에서 다음과 같이 퍼블릭 액세스를 켜 주고 다시 변경 사항 저장을 누른다.
  • 이 과정에서 네트워크의 내용이 업데이트되는 것이기 때문에 변경까지 시간이 걸린다.

2. VPC 보안 그룹 세팅 변경

  • 두 번째로는 VPC 보안 그룹의 세팅을 변경해 주어야 한다. VPC 보안 그룹의 설정을 AWS Redshift가 사용하는 5439 포트는 막지 않도록 바꿔 주어야 한다.
  • 먼저 다음과 같이 작업 그룹에서 선택한 후 데이터 액세스->네트워크 및 보안을 동일하게 접속해 준다. 퍼블릭 액세스 가능과 동일하지만 VPC 보안 그룹을 선택해 준다.
  • 이를 선택해 주면 EC2 대시 보드에 있는 보안 그룹 목록으로 가게 되는데 변경해 주어야 하는 보안 그룹을 선택하면 하단에 해당 보안 그룹세부 정보, 인바운드 규칙, 아웃바운드 규칙, 태그 등을 설정해 줄 수 있는 창이 뜬다.
  • 이때 다음과 같이 인바운드 규칙을 클릭해 주고, 변경할 보안 그룹을 선택 후 인바운드 규칙 편집을 누른다.
  • 그러면 인바운드 규칙을 편집할 수 있는 창이 뜨게 되는데 규칙 추가를 눌러 한 줄을 추가해 준 다음 5439 포트에 0.0.0.0/0 모든 IP에 대해 접근할 수 있도록 권한을 부여해 주면 된다.


💻 Google Colab에서 Redshift 접속

1. SQLAlchemy 설치

  • Google Colab에서 지원하는 부분보다 다운그레이드 환경으로 설치해 주어야 한다.
  • 그래서 다음과 같은 명령어를 통해 해당 모듈을 설치해 준다.
!pip install SQLAlchemy==1.4.47

2. RedShift 환경 접근

%load_ext sql
  • 먼저 SQL을 사용하기 위해 다음과 같은 명령어를 입력해 준다.
%sql postgresql://admin:password@endpoint(http를 제외한) 
  • 이후 호출 시 다음과 같이 admin 계정 (본인이 설정한 관리자 계정명)자격 증명 시 설정한 admin 계정의 비밀번호 그리고 EndPoint 주소를 통해 호출해 준다.
  • 이때 EndPoint 주소는 작업 그룹일반 정보에서 다음과 같이 가지고 올 수 있다.
  • 다음과 같이 Connection Timed Out가 발생하지 않고 완료되었다는 표시가 뜬다면 RedShift 데이터베이스 환경이 제대로 생성된 것이며 Google Colab에서도 접근 가능한 상태가 된 것이다.
profile
송의 개발 LOG
post-custom-banner

0개의 댓글