[Azure] 웹 서버 구축하기 (VM, ubuntu, streamlit)

마켓플레이스에 ubuntu 검색 후 적당한 version 선택


VM 만들기

VM은 ubuntu server로 만들기로 했습니다.

제가 설정한 가상 머신의 설정은 다음과 같습니다.

우리학교 azure for student 정책상 japan east로 설정


VM 서버 들어가기

ubuntu 서버를 새로 생성했으니, 직접 접속해봅시다.

cmd 창을 열어서 ssh id@ubuntu 서버 주소 를 입력해서 로그인 해줍니다.

우분투 서버 주소는 방금 생성한 VM 리소스에서 확인할 수 있습니다.


환경 설정하기

이제 환경을 최신 버전으로 업데이트 및 업그레이드 해봅시다.

이러고 ubuntu 서버에 있는 것들을 최신 버전으로 업데이트 하려고 했지만 권한 거부를 당했습니다.

앞에 sudo 를 붙여서 다시 입력해주면 됩니다.

이거 완료되면 sudo apt-get upgrade 한 번 더

ubuntu 서버에는 python 3.10.12 버전이 이미 설치되어 있는 것을 확인할 수 있습니다.

저희는 python으로 웹 서버를 운영해볼 것이기 때문에 streamlit을 설치해줍니다.

그러니 'pip install streamlit' 을 해서 설치를 해줍시다.

그런데 python3-pip 가 없다고, 설치를 하라고 합니다. 설치해줍시다.

streamlit 설치

streamlit을 설치했지만 exit 으로 서버와 연결 종료 후 다시 접속해줍니다.

이러고 streamlit hello 로 streamlit이 제대로 설치되었는지 확인을 해볼 수 있습니다.

위에서 제공한 주소로 접속했음에도 불구하고 사이트에 연결할 수 없습니다.

왜 그런걸까요?

그 이유는 NSG 라고 하는 보안 그룹 때문입니다. NSG에 port 번호(지금은 8501)이 포함되어 있지 않아서 제 ip 주소 접근이 vnet의 방화벽에서 막히고 있는 상황입니다.

이것은 azure portal에서 인바운드 포트(vnet 안으로 접속하는 포트) 설정을 8501을 추가해주면 됩니다.

8501인 이유는 위 서버 주소 뒤에 붙은 기본 포트가 8501이기 때문입니다.

(여기서 참고: http 기본 포트는 80, ssh의 기본 포트는 22 입니다.)


인바운드 포트 설정하기

우선 azure portal에 접속해줍시다.

위 사진과 같이 vm 리소스에 접속해서 포트 규칙을 새로 만들어줘야 합니다.

인바운드 포트 규칙은 다음과 같이 설정해주면 됩니다.

그럼 NSG 안에 자신이 만든 포트 규칙이 추가된 것을 확인할 수 있습니다.

이름 옆에 숫자는 우선순위이고, 숫자가 작을수록 높은 우선도를 가집니다.

이것은 인바운드 포트 규칙에서 지정할 수 있었습니다.


웹 접속해보기

아까 external URL 로 접속해봅시다.

이제는 streamlit 에서 기본으로 제공하는 hello 라는 웹을 만들어 접속할 수 있습니다.


서버 닫기

ctrl + z 입력하면 서버를 닫을 수 있습니다.

그리고 이 리소스를 더이상 사용하지 않는다면, azure portal에서 사용 중지를 해줘야 credit 소모(저장장치에 대한 credit 제외)도 중지됩니다.