AWS의 대표적인 데이터 웨어하우스 서비스인 Redshift는 Serverless를 처음 이용할 경우 3달 또는 300달러까지 무료로 이용할 수 있다. Redshift를 공부도 해볼 겸, Redshift Serverless를 설치하고 초기 설정까지 해보려고 한다.
AWS 로그인 및 Redshift 진입
AWS 홈페이지(aws.amazon.com)에 접속해 로그인한 뒤, Redshift 섹션으로 진입하면 위와 같은 화면이 나올 것이다. 아직까지 해당 계정으로 Redshift를 사용해본 적이 없기 때문에, '무료 평가판 사용해보기'라는 버튼이 노출된다. 해당 버튼을 눌러 Redshift Serverless 설치 과정을 시작해보자. (주의: 이 화면 아래로 내려가 '클러스터 생성' 버튼을 누르면 Serverless가 아닌 고정 비용이 드는 Redshift 클러스터를 생성하는 과정이다. 이 클러스터는 무료 평가판이 아니다!)
Redshift Severless 설정
그러면 위 이미지처럼 Serverless 클러스터를 생성하기 위해 설정하는 페이지로 진입하게 된다. 지금은 Redshift를 체험해 볼 목적이기 때문에 기본 설정을 사용한다. 이외 아직 따로 추가 설정을 해 줄 필요는 없다.
이후 '구성 저장'을 눌러 클러스터를 생성해본다.
다소 시간이 소요되니 인내심을 가지고 기다려보자.
작업이 완료되면 위와 같이 대시보드 페이지로 이동하게 된다.
위 섹션의 남은 크레딧과 평가판 만료일을 잘 확인해서 쓸데없이 돈 나갈일이 없도록 하자. 학습이 끝났다면 꼭 클러스터를 종료하기!
Colab으로 Redshift Severless 연결해보기
엔드포인트
우선 위 대시보드에서 '네임스페이스 / 작업그룹' 섹션을 찾아 작업 그룹 아래에 있는 'default-workgroup'을 클릭해준다.
그러면 우측에 '엔드포인트'라고 하는 항목이 보일텐데, 해당 주소를 복사해 놓는다. 이 주소가 해당 Redshift Severless 클러스터의 엔드포인트이다.
엑세스할 수 있는 계정 세팅
Redshift에 엑세스할 수 있는 계정을 세팅하는 방법에는 크게 두 가지가 있다.
- admin(관리자) 계정을 생성하고 관리자 계정으로 엑세스
- admin(관리자) 계정을 생성하고 IAM 역할 부여를 통해 다른 계정으로 엑세스
이 글에서는 admin 계정을 이용해 엑세스해보도록 하겠다.
이제는 이 섹션에서 제일 앞에있는 'default-namespace'를 클릭해본다.
그럼 위 페이지로 진입하게 될텐데, 오른쪽 위 '작업' 리스트를 열어 '관리자 보안 인증 정보 편집'으로 진입한다.
그렇게되면 하단에 관리자 이름과 비밀번호를 설정할 수 있는 항목이 있는데, 암호 표시를 선택해 현재 암호를 알아내거나, 수동으로 관리자 암호 추가를 선택해 암호를 설정하는 방식 중 하나를 고른다.
Redshift 클러스터에 Public Access 허용 설정하기
Redshift 클러스터를 생성하면 기본적으로 외부에서의 액세스를 허용하지 않고 있다. Colab을 통해 외부에서 클러스터로 접속하기 위해서는 이와 관련된 설정이 우선되어야 한다.
다시 한번 '네임스페이스 / 작업그룹' 섹션의 작업 그룹 아래에 있는 'default-workgroup'을 클릭해 진입한 뒤, '네트워크 및 보안' 섹션으로 향해준다.
그러면 우측에 '퍼블릭 엑세스 가능' 항목이 '꺼짐'으로 되어있는 것을 확인할 수 있다. 우측 상단 '편집'을 눌러 해당 기능을 켜주도록 하자.
'변경 사항 저장'을 눌러 퍼블릭 액세스 가능 기능을 켜주자. 해당 기능이 적용되는데는 다소 시간이 걸린다.
위와 같은 완료 메시지 창이 뜨면 다음 단계로 넘어가보자. 아직 끝난게 아니다.
이번에는 VPC 보안 그룹의 설정을 해주어야 한다. 퍼블릭 액세스 기능을 켜놓았더라도 VPC의 보안 규칙이 설정되어 있지 않는다면 접속이 불가능하다. VPC 보안 그룹 아래에 있는 링크를 따라 가보자.
보안 그룹 리스트가 있는 페이지로 이동하게 된다. 방금 Redshift에 설정된 VPC 보안그룹을 선택한 뒤, 아래 페이지에서 '인바운드 규칙'탭을 선택해준다. 그리고 '인바운드 규칙 편집' 버튼을 눌러 액세스 규칙을 생성해보자.
현재는 위와 같이 기본 규칙 1가지밖에 없는 상태이다. 현재는 같은 VPC 아래에 있는 서버나 서비스 내에서만 엑세스 가능하도록 되어 있다. '규칙 추가'를 통해 외부에서도 접속할 수 있도록 설정해보자.
포트는 Redshift에서 사용하는 5439 포트를, 소스는 0.0.0.0/0으로 어느 IP에서도 접속할 수 있도록 설정해주면 된다.
위 정보들을 이용해 Colab으로 Redshift Serverless 연결해보기
우선 Redshift에 호환되는 SQLAlchemy 라이브러리를 다시 설치해준다.
!pip install SQLAlchemy==1.4.47
그 다음 sql 모듈을 연결해준다.
%load_ext sql
그 다음 아래 명령어를 통해 자신이 만든 Redshift 클러스터와 연결해준다.
%sql postgresql://{관리자 계정}:{관리자 비밀번호}@{엔드포인트}
위와 같이 체크 표시가 나타나면서 아무런 에러 메시지가 나타나지 않았다면, 성공적으로 연결된 것이다.
'Minding's Programming > AWS' 카테고리의 다른 글
[AWS] AWS Redshift Spectrum으로 S3 외부 테이블 조작해보기 (2) | 2024.10.30 |
---|---|
[AWS] ApiGateway (0) | 2024.10.28 |
[AWS] Lambda (2) | 2024.10.28 |
[AWS] ECS / ECR (0) | 2024.10.28 |
[AWS] AWS CLI (Command Line Interface) (0) | 2024.10.25 |