Dashboard App/AWS EC2 Server 배포

[AWS] 하나의 EC2에서 여러 스트림릿 앱을 실행시키는 방법-AWS EC에 웹 애플리케이션 배포(8)

Mei99 2024. 4. 26. 13:19

EC2 계정은 하나만 만들어놓아도, 한서버에서 여러개의 서버를 동시에 틀수 있다.

 

[AWS] 하나의 EC2에서 여러 스트림릿 앱을 실행시키는 방법

[AWS] EC2 Free Tier 인스턴스 생성하기-AWS EC에 웹 애플리케이션 배포(1) (tistory.com)

 

[AWS] EC2 Free Tier 인스턴스 생성하기-AWS EC에 웹 애플리케이션 배포(1)

AWS EC2는 인스턴스(가상 서버)를 제공하는 서비스이다. AWS EC2 Free Tier 인스턴스 생성하기 AWS 접속 : https://ap-northeast-2.console.aws.amazon.com로그인 후 리전이 "대한민국-서울"로 지정되어 있는지 확인

mei-99.tistory.com

 

EC2 인스턴스를 생성하고, 한 개의 스트림릿 앱을 실행해봤다.

 

이후, 새로운 앱도 배포하려고 한다면,

AWS에 EC2에서 새로 지정한 Port 넘버로 접속할수 있도록 방화벽에 보안규칙을  추가해 주면 된다.

 

방화벽 보안규칙을 추가하기 전에, 

PuTTY 에서 배포할 디렉토리를 깃 클론과 Port 넘버 생성해 주자.

$ git clone 디렉토리 깃 주소
$ git clone https://github.com/yoon/streamlit_kmeans.git

 

 

port 넘버는 사용중인 번호가 아닌, 다른 번호로 지정해서 실행시켜줘야한다.

8502 라는 포트 넘버로 지정해서 해당 앱 실행.

$ cd streamlit_kmeans

$ nohup streamlit run app.py --server.port 8502 &

 

 

1. 8501 포트로 자동실행됨
$  nohup streamlit run app.py &

2. 내가 포트지정하면, 여러 앱을 하나의 서버에서 돌릴 수 있음
$  nohup streamlit run app1.py & --server.port 8501&  #첫 번째 서버
$  nohup streamlit run app2.py & --server.port 8502&  #두 번째 서버
$  nohup streamlit run app3.py & --server.port 8503&  #세 번째 서버

 

 

 

이제, 방화벽에 보안 규칙을 추가해 주자.

 

AWS EC2 인스턴스 페이지에서,

 

 

실행중인 서버를 체크해 주면, 

 

 

방화벽 설정을 할 수 있는 보안 탭을 하단에서 확인할 수 있다.

보안 탭 > 보안 그룹

 

 

보안 그룹 내로 실행한 후, port 넘버를 써주고 저장해 준다.

 

 

 

규칙에 port가 추가된 것을 볼 수 있다.

 

 

대시보드에 있는 퍼블릭 IPv4 DNS 주소에 : 8502 port 넘버를 써주고 접속시도하면 접속된다.

예시 : http://ec2-13-209-97-2.ap-northeast-2.compute.amazonaws.com:8502/