본문 바로가기

타닥타닥15: AWS EC2 Superset 설치 본문

공부

타닥타닥15: AWS EC2 Superset 설치

Savedata 2023. 6. 12. 16:29

AWS의 EC2 가상 환경을 생성하고, Superset을 설치하는 과정 및 소소한 팁들 기록.

개인이 만든 Superset의 Dashboard를 local이 아니라 인터넷에서 URL을 통해 접속할 수 있도록 하는 가장 쉬운 방법을 찾아보았다.

엄청나게 간단히 될 줄 알고 시작했다가 4시간을 헤매며 여러 설정들을 시도해 본 뻘짓의 정리글.

AWS의 EC2에 Superset 설치 및 접속

목차

 

1. EC2 인스턴스 생성

2. 보안그룹 및 탄력적IP 설정

3. 인스턴스 연결 및 수행 명령어 정리

4. Superset 구동화면

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

1. EC2 인스턴스 생성

EC2 > 인스턴스 > 인스턴스 시작 까지 진행 후

위 그림과 같이 이름 및 태그는 알아보기 쉬운 것을 입력해준다.

OS이미지는 Amazon Linux 2023 AMI를 선택해준다. 프리티어에서 사용 가능한 Amazon Linux 2023 AMI 운영체제 (AWS를 제대로 쓰려면 비용이 진짜 장난이 아니다...)

인스턴스 유형으로는 t2.xlarge 정도는 해야 설치가 되는 듯. (가장 작은 t2.micro로 했더니 설치할 때 cpu가 99%가 되면서 멈춰버림)

키 페어는 새 키 페어 생성을 해서 지정하고 싶은 이름으로 하면 된다.

RSA에 .pem형식으로 만들었다.

 

키 페어는 외부에서 pem이라는 키 파일로 인스턴스 서버 자체에 ssh를 접속할 수 있도록 해주는 도구이다.

네트워크 설정은 보안 그룹 설정만 해주었다.

보안 그룹 설정은 다음 단계에서 진행.

 

이 뒤에 있는 설정들은 그냥 default로 설정된 것들로 냅뒀다.

 

이후 오른쪽에 있는 요약 탭에서 인스턴스 시작을 누르면 생성된다.

인스턴스 생성

 

EC2의 인스턴스 탭으로 돌아가면 

생성된 인스턴스 확인
인스턴스를 클릭하면 나오는 자세한 설정

위에서 설정한대로 인스턴스가 만들어진다.

 

2. 보안그룹 및 탄력적IP 설정

EC2의 보안그룹 탭으로 이동하여

위와 같이 인바운드 규칙으로 허용하고자 하는 포트들을 열어주면 외부에서 이 인스턴스에 할당된 탄력적IP를 통해 Superset의 웹페이지로 접속할 수 있게 된다.

사용자 설정 TCP의 포트범위 8088이 Superset 웹페이지의 경로가 될 것이다.

 

EC2의 탄력적 IP 탭으로 이동하여 탄력적 주소 IP 할당 이라는 버튼을 클릭하면 

뭔가 복잡한 화면이 나오는데 그냥 할당을 눌러주었다.

설정 하나 하나 다 알지도 못하고 다 알면 좋지만 굳이 다 알아야 하나 싶긴 하다.

 

할당된 탄력적 IPv4의 주소
인스턴스와의 연결을 위해 탄력적 IP 주소 연결 설정으로 진입
탄력적 IP 할당 방법

이렇게 만들어놓은 인스턴스를 선택하고 해당 인스턴스의 프라이빗 IP를 선택해주면 탄력적 IP주소와 프라이빗 IP가 연결되어 웹에서 탄력적 IP로 EC2의 인스턴스에 접속 가능하게 된다.

이렇게 기존의 IPv4의 주소가 탄력적 IP로 변경된다.

 

3. 인스턴스 연결 및 수행 명령어 정리

EC2 > 인스턴스 > '생성한 인스턴스 클릭' > 인스턴스 연결

연결을 클릭!

로오딩
로딩후 나오는 도트 새

이제 이 명령창에서 수행하는 명령어를 코드로 정리해보자. 인스턴스로 생성해 볼 수 있는 여러가지를 시도해 보았으나 OS 버전이 안맞는지 다른 곳에서는 설치 도중에 멈추거나 하는 현상들이 계속 발생했기에 딱 필요한 명령어만 정리해 놓으려 한다.(사실 이 OS랑 이 명령어 아니고도 가능할텐데 구글링해서 나오는 정보들은 다 예전 superset이랑 docker-compose 버젼들이라서 뭔가 잘 안되더라...)

#docker 및 git 설치 후 구동
sudo yum update -y
sudo yum install -y docker
sudo yum install -y git
sudo service docker start

#docker compose설치 및 확인
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

#git에서 superset 설치 파일을 받고 docker compose로 실행
git clone https://github.com/apache/superset.git
cd superset
docker-compose -f docker-compose-non-dev.yml up -d

위의 명령어들을 그대로 따라치면 나오는 superset 설치 화면

여기까지 명령어를 치고나면 한동안(대략 3분?) 설치가 진행되면서 뭔가 많이 뜨게 된다.

-d 옵션으로 백그라운드로 동작하기에 일정 설치가 지난 이후 다시 콘솔창에 입력을 할 수 있게 되면 docker ps 등으로 확인할 수도 있고, 잘 설치가 되고 나면 위에서 할당한 탄력적 IP의 8088 포트를 통해 접속해보면 된다.

superset 웹페이지 로그인 화면. 기본 설정 값인 ID/PW: admin/admin으로 접속하면 된다.

 

4. Superset 구동화면

처음에 로그인을 하면 대시보드도, 차트도, 데이터셋도 아무것도 안보이는데 이는 아직 superset의 예제 파일들이 설치가 안되서 그렇다. 느긋하게 한 10분 기다리면 예제로 볼 수 있는 대시보드, 차트, 데이터셋들이 등장한다.

예제로 생성된 대시보드와 차트들
저런 차트는 언제쯤 그려보나..

끝.

 

최소한의 설정으로 AWS의 EC2에 서버를 생성하고 Superset 설치 및 접속까지 진행해 보았다. 정리하고나서 쭈욱 따라가면서 만들어보니 20분도 안걸렸는데 이 설정을 찾아내기 위해 4시간의 삽질을 진행했다...

Superset을 이용하여 나만의 대시보드를 만들고 웹페이지를 통해 공유한다면 데이터를 분석하며 얻은 인사이트를 정말 쉽게 전달할 수 있을 듯 하다!

 

PS: 아 그리고 정말 중요한 건데!!!! AWS의 EC2에 만든 인스턴스는 그냥 켜놓은 상태로 유지만 되도 돈을 계속해서 잡아먹는 식이다. 금요일에 만들어 놓고 주말동안 끄는걸 까먹고 그러면 20달러 가까운 비용이 갑자기 청구될 수도 있다!!! 절대 글쓴이의 경험담이다.... 사용하지 않을 때는 인스턴스를 중지해놔야 한다는 것을 잊지 않길 바란다. 

Comments