#대시보드 구축하기 #대시보드 구축 프로젝트
안녕하세요~ 데이터 분석가 누리입니다.
오늘은 대시보드 작업을 위해 필요한 사전작업인 대시보드 구축하는 것에 대해 다뤄보도록 하겠습니다~
대시보드 구축 프로젝트를 포트폴리오로 사용하고 싶은 분
데이터 분석가가 간편하게 대시보드를 구축하고 싶은 분 / 인프라 맛보기를 하고 싶은 분
: 회사 내에서 구축한다면 다양한 보안 그룹을 설정하므로 인프라팀 문의가 필요합니다. 해당 문서는 개인 프로젝트에 더 적합할 수 있습니다.
⭐⭐⭐⭐ 대시보드 구축은 '데이터분석가'의 필수 역량이 아닙니다. 단지 다양한 시각화 툴 중 Redash를 다루기 위해 먼저 구축글을 쓰는 것입니다.
해당 문서에는 간단한 AWS 사용법과 코딩이 등장합니다. 그러나 AWS 가 뭔지는 몰라도, 코딩을 못해도 그냥 따라 하면 됩니다.
단, MAC 사용을 기본으로 만들었습니다.
쿼리를 이용하여 간편하게 원하는 대시보드를 구현할 수 있는 오픈 소스 중 하나입니다.
관련 오픈 소스 페이지 : https://redash.io/
대시보드를 구축하기 위해서는 우선 대시보드를 운영하기 위한 ‘서버’ 즉 공간이 필요합니다. 이러한 공간들을 클라우드 환경에서 대여해 주는 회사가 바로 ‘AWS’입니다. 저는 다양한 방법 중 AWS 제품을 사용하여 Redash를 구축할 예정입니다.
>> AWS 서비스 안에도 정말 다양한 서비스가 존재합니다! 따라서 AWS 자체를 이해하려면 몇 장의 글이 필요하기 때문에 해당 문서에서는 ‘뭔지 모르지만 따라 하면 뚝딱’을 콘셉트로 글을 작성하도록 하겠습니다.
저의 경우, 단순 프로젝트성 대시보드 구축 용도이므로 ‘루트 사용자’로 로그인하여 진행할 예정입니다.
루트 사용자로 로그인을 하면, AWS의 리소스를 자유롭게 이용가능합니다. 단, 계정이 탈취됐을 때의 보안이 아쉽습니다.
만약 AWS의 경험이 많은 이용자라면 ‘IAM 사용자’로 로그인하는 것을 추천합니다. ( 조직 도입 시 필수 )
단, 설정해야 하는 등의 번거로움이 있어서 해당 문서에서는 패스합니다.
AWS 서비스는 1년 동안 ‘프리티어’ 계정을 줍니다. 즉 한도 내 무료로 AWS 서비스를 이용할 수 있는 기능을 줍니다.
AWS EC2란, ‘홈페이지, 대시보드’등 다양한 제품들을 유저가 이용할 수 있도록 공간(=컴퓨팅 환경)을 제공하는 서비스입니다. 이러한 공간을 ‘서버’(= 가상 컴퓨터 환경 = 인스턴스)라고 부르며, 대시보드를 만들기 위해 우선 이러한 ‘빈 공간’을 생성할 예정입니다.
>> 공식 문서 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
1. AWS 첫 화면에서 ‘EC2’를 검색합니다.
2. EC2 화면에서 ‘인스턴스’ 버튼을 클릭합니다.
>> AWS 인스턴스란? 서버 즉 가상 컴퓨터 환경을 의미합니다.
3. ‘인스턴스’ 시작 버튼을 클릭합니다. ( 아래는 인스턴스 설정 방법 )
3-1. 인스턴스 이름 입력 : 자유롭게 영어로 입력합니다.
3-2. 애플리케이션 및 OS 이미지 : Ubuntu Server 중 프리티어 사용 가능 서버
3-3. 가상 서버 유형 (인스턴스 유형) : t2 small
- 설정 이유 : 공식문서
- Launch the instance with the pre-baked AMI we create (for small deployments t2.small should be enough)
- t2.small 보다 작은 것으로 진행하면 느리다고 하여 한 단계 높였다. 공식 문서에도 t2.small은 충분하다고 하여 그대로 진행하였다. ( 프리티어가 아니어서, 비용은 감수해야 한다. )
3-4. 그 외 설정 사항 : 없음
: 해당 문서의 경우, aws 루트 권한을 가지고 했기 때문에 설정하는데 크게 신경 쓰고 만들지는 않았지만, 회사 루트인 계정으로 만든다면 보안그룹 등 더 세부적으로 살펴보아야 한다.
키페어 생성 : 인스턴스 생성을 눌렀는데, 키페이 생성하라고 한다면 생성해 주면 된다.
: 주의 - 키페어 비밀번호는 꼭 잘 보관해야 합니다.
+) 기타 사항
: 아래의 AMI를 통해서도 인스턴스를 생성할 수 있다. 그러나, 비용적으로 더 나올 것 같아서 이 부분은 일단 패스했다. (참조 : https://redash.io/help/open-source/setup#aws )
- ap-southeast-1 : https://console.aws.amazon.com/ec2/home?region=ap-southeast-1#LaunchInstanceWizard:ami=ami-0527e82bae7c51958
- ap-southeast-2 : https://console.aws.amazon.com/ec2/home?region=ap-southeast-2#LaunchInstanceWizard:ami=ami-0bae8773e653a32ec
4. 인스턴스 생성 완료
4-1. 대시보드 등을 사용하지 않을 때는 ‘인스턴스를 중지’ 하는 것이 비용적인 측면에서 좋습니다.
4-2. 단, 인스턴스를 중지 후 재시작하면 추후에 진행하는 설정을 반복해야 하는 것이 단점입니다. 도메인 주소 등을 설정하면 되지만 해당 문서에서는 다루지 않습니다.
4-3. ⭐ 퍼블릭 IPv4 주소는 아래에서 사용할 예정이니 확인해 주세요~
서버 생성할 때, 새롭게 생성한 ‘보안그룹’을 수정할 예정입니다.
1. EC2 화면에서 ‘보안그룹’ 버튼을 클릭합니다.
2. 위에서 새로 생성한 보안그룹 이름을 클릭합니다. > ‘인바운드 규칙’을 클릭합니다.
- 새로 생성했기 때문에, 인바운드 규칙이 한 개밖에 없습니다.
3. 인바운드 규칙 편집을 클릭하여 아래와 같도록 맞춰줍니다.
Redash는 앞서 설명했듯이 오픈소스입니다. 따라서 해당 서버에 Redash 구성 코드를 업로드해 줍니다.
1. 터미널을 통해서 위에서 실행한 서버에 들어가기 ( MAC OS terminal로 ec2 서버(인스턴스) 접근하기 )
1-1. 터미널에 진입한 후, 아래와 같이 입력합니다.
- 위에서 얻은 key 페어와 퍼블릭 IPv4주소를 아래에 적어줍니다.
# 새로운 폴더 만들기 (작업 환경을 따로 만들기 위해서 만드는 작업!)
(base) nuli01:~ nuli$ mkdir prj
# 위에서 만든 폴더로 이동
(base) nuli01:~ nuli$ cd prj/
# key라는 이름을 가진 폴더 만들기
(base) nuli01:prj nuli$ mkdir key
# 소유주만 해당 파일을 read, write 할 수 있도록 함
# 위에서 폴더를 만들었다면, pem 파일을 해당 폴더로 옮겨놓은 후 작업해야 함.
(base) nuli01:prj nuli$ chmod 600 key/aws-kp-2023.pem
# **.***. 000.000 : 해당 부분엔 각각 퍼블릭 IPv4 주소 또는 도메인 입력
# ubuntu는 내가 우분트가 인스턴스 이미지 이므로, 이미지 종류에 따라서 사용자 이름이 달라짐
(base) nuli01:prj nuli$ ssh -i key/aws-kp-2023.pem ubuntu@**.***. 000.000
2. 우분투 서버에 접근 완료
위의 코드를 모두 성공하면 아래와 같이 ‘Welcome’ 글자가 뜨게 됩니다.
3. 우분트(서버)에 Redash 설치하기
아래에서 수행하는 모든 것들은 우리가 만든 ‘서버(인스턴스)’에서 일어나는 일들입니다!~
# apt 패키지 업데이트
$ sudo apt update
# git 설치 : redash 설치 프로젝트를 가져오기 위해서 git 설치 필요
$ sudo apt install git
# redash 설치 프로젝트 git clone
$ git clone <https://github.com/getredash/setup.git>
# 프로젝트 디렉터리로 이동
$ cd setup/
# setup 스크립트 권한 수정
$ sudo chmod +x setup.sh
# 시작하기
$./setup.sh
1. 인터넷 주소에 위에서 얻은 ‘<퍼블릭주소>:5000을 입력하면 아래와 같이 리대시로 들어가게 됩니다.
: 처음 들어갈 때만 해당 창이 생기고, 이름, 주소, 비밀번호를 입력하면 됩니다. 잊어버리지 않는 것이 중요합니다.
2. 위의 창에 값을 입력하면 아래와 같이 Redash 메인창이 생깁니다.
3. DB 연결하기
- setting 버튼 클릭 > source 연결 > 원하는 DB 선택
여기까지 왔다면, Redash 세팅은 모두 끝났다고 봐주시면 됩니다. 이렇게 데이터까지 연결한 후, 연결된 데이터에 대해서 쿼리 작업과 대시보드 작업이 가능해집니다~
- 데이터 분석가가 되기 위한 팁을 알고 싶다면!?
: 문과생 현직 데이터 분석가의 취업 노하우 https://miniintern.com/happyfolio/94
문과생이었던 제가 직접 쓴 데이터 분석가가 된 꿀팁을 정리해 둔 전자책입니다 ㅎㅎ!!
전자책 구입 시 해택 ( 만원의 행복 ❤️ )
1. 미니인턴에서 멘토링 요청 주시면 1:1 로 1회 무료로 고민/궁금한점에 대한 답변 해드립니다.
2. 멘토링 요청 시 '포트폴리오/이력서 피드백' 요청 주시면 오픈톡 링크로 추가적인 피드백 드립니다.
- 더 많은 데이터 분석글을 보고 싶다면, PAP 블로그
( 해당 글 역시, PAP 퍼블리셔 활동 중 쓴 글 입니다 )
https://playinpap.github.io/work-da-alone/