📍왜 리눅스를 많이 사용할까?
리눅스는 유닉스 계열의 운영체제로, 오픈 소스라는 점이 가장 큰 특징이다. 그래서 서버, 데스크톱, 임베디드 시스템 등 매우 다양한 환경에서 활용된다. 특히 서버 쪽에서는 안정적인 네트워크 기능과 멀티유저, 멀티태스킹 지원이 강점으로 작용한다. 여러 사용자가 동시에 접근하고, 여러 작업이 한 번에 처리되는 서버 환경에서는 이런 특성이 매우 중요하다.
Azure는 Ubuntu, Debian, CentOS, Rocky Linux 같은 여러 리눅스 배포판을 지원한다. 예전에는 서버를 직접 설치하고 운영체제도 수동으로 세팅해야 했었는데, 클라우드에서는 필요한 배포판을 선택해 훨씬 빠르게 서버를 준비할 수 있다.
< Azure 환경에서 리눅스 설치하기 >
리소스 그룹 내에 가상머신을 만들어 배포한다. 이때, 가상머신은 ubuntu 24.04 LTS를 사용한다.

다음과 같이 유효성 검사가 통과되어야 배포가 가능하다!

📍SSH
실제로 서버를 다루려면 원격 접속이 필요한데, 대표적인 방식이 바로 SSH이다. SSH는 암호화된 통신을 통해 원격 시스템에 안전하게 접속할 수 있도록 해주는 프로토콜이다. 예전에 쓰이던 텔넷보다 보안성이 높고, 접속 과정에서 전송되는 내용을 암호화한다는 장점이 있기 때문에 사실상 표준으로 자리잡았다. 터미널에 "ssh 사용자명@IP주소" 명령어 한 줄이면 원격 호스트 컴퓨터에 안전하게 접속하여 내 컴퓨터처럼 제어할 수 있다. 또한, SSH는 기본적으로 22번 포트를 사용한다.
아래는 ssh dlsehy13@4.230.10.135 명령어를 사용하여 생성한 가상머신과 로컬을 SSH로 연결한 cmd 화면이다.

sudo apt update 명령어로 설치 가능한 패키지 목록을 최신화하고,
sudo apt upgrade를 사용하여 시스템의 프로그램들을 최신 상태로 업그레이드한다.

* 리눅스에서 자주 사용되는 명령어 *
- pwd : 현재 내가 어디에 있는지 확인
- cd : 디렉토리를 이동
- ls : 파일 목록을 확인
- cat : 파일의 내용을 터미널 창에서 바로 확인
- vi : 텍스트 편집기(vi)를 열어 코드 수정
📍Streamlit을 사용한 간단한 웹 애플리케이션 개발
Streamlit은 파이썬 개발자들이 복잡한 웹 기술 없이도 파이썬 코드만으로 빠르고 쉽게 웹 애플리케이션을 만들 수 있게 해주는 오픈소스 프레임워크이다.
앞서 생성한 가상머신에 streamlit을 설치해보자
1. pip 설치
Streamlit을 설치하기 위해 가장 먼저 파이썬 패키지 관리자인 pip를 설치한다.
sudo apt-get install python3-pip

2. 시스템 패키지 보호 우회 설정 (Ubuntu 24.04 특이사항)
Ubuntu 24.04부터는 OS의 안정성을 위해 전역(Global) 환경에서의 pip 설치를 기본적으로 차단하고 있다. 원래는 가상 환경(venv)을 세팅하는 것이 정석이지만, 현재는 실습용 가상 머신(VM) 환경이므로 편의를 위해 아래 명령어를 입력하여 전역 설치 제한을 해제한다.
python3 -m pip config set global.break-system-packages true
3. Streamlit 설치
앞서 제한을 해제해 두었기 때문에 pip 명령어를 통해 충돌 없이 설치를 진행할 수 있다.
pip install streamlit

4. 환경 변수 적용을 위한 쉘(Shell) 재접속
streamlit hello // 실행 확인
exit // SSH 연결 종료 후 재접속
설치가 끝난 후 제대로 작동하는지 확인하기 위해 streamlit hello를 입력해본다. 이때 터미널에 streamlit: command not found라는 에러가 뜰 수 있다. 이는 방금 설치된 프로그램의 실행 경로가 아직 동기화되지 않아서 발생하는 자연스러운 현상이다.
exit 명령어로 SSH 연결을 끊었다가 다시 연결하면, 새로운 경로가 정상적으로 인식되어 streamlit이 성공적으로 실행된다.

5. Streamlit 외부 접속을 위한 인바운드 포트 개방
위 실행 화면을 보면 External URL이 뜨는데, 이 주소를 그대로 웹 브라우저에 입력하면 접속이 되지 않는다. 클라우드 환경에서는 보안이 최우선이기 때문에 외부 접근은 모두 차단되어 있기 때문이다.
우리가 가상 머신에 구축한 웹 서비스를 클라우드 외부, 즉 인터넷에 노출하려면 네트워크 보안 그룹 설정을 변경해야 한다.
Streamlit은 기본적으로 8501번 포트를 사용하기 때문에 Azure 포털에 접속하여 해당 가상 머신의 네트워크 설정에서 다음과 같이 인바운드 포트 규칙을 추가한다.

▲로컬에서 streamlit을 실행하기 위해 포트번호를 8080에서 8501로 변경하고 모든 tcp 허용을 하는 인바운드 규칙을 추가한다.
6. 로컬에서 Streamlit 접속
터미널에 출력된 External URL(http://20.255.97.226:8501)을 브라우저에 입력하여 Streamlit 서비스가 정상적으로 노출되었는지 확인한다.

7. Streamlit 웹 애플리케이션 스크립트 작성 및 구동 확인
가상 머신 내에서 vi 편집기를 이용해 streamlit 실행 스크립트를 작성할 수 있다.

1) 터미널에서 아래 명령어를 입력하여 Streamlit 서비스 구동을 위한 새로운 파이썬 파일을 생성하고 텍스트 편집기를 실행한다.
vi st.py
2) vi 편집기가 열리면 i 키를 눌러 입력 모드(Insert Mode)로 전환한 뒤, 아래와 같이 코드를 작성한다.
작성이 완료되면 Esc 키를 누르고 :wq를 입력하여 변경 사항을 저장한 후 편집기를 빠져나온다.
import streamlit as st
st.write("Hello World")
3) cat 명령어를 사용하여 방금 작성한 코드가 스크립트 파일에 정상적으로 저장되었는지 터미널 화면에 출력하여 확인한다.
cat st.py
4) streamlit run st.py 명령어를 실행하여 파이썬 스크립트를 기반으로 Streamlit 내부 서버를 구동한다.
5) 터미널에 출력된 External URL 주소를 웹 브라우저 주소창에 입력하여 접속하면 브라우저 화면에 코드로 작성한 "Hello World" 텍스트가 정상적으로 렌더링되는 것을 확인할 수 있다.
마무리하며
지금까지 로컬 환경에서 코드를 작성하는 데 집중했다면, 이번 Azure 가상 머신과 Streamlit 실습은 작성한 프로그램이 클라우드 위에서 어떻게 실제 서비스로 배포되고 외부망과 통신하는지 전체적인 흐름을 이해하는 계기가 되었다.
'클라우드응용SW개발' 카테고리의 다른 글
| [cloud] 클라우드 기반 웹 서비스 (1) | 2026.04.19 |
|---|---|
| [cloud] 클라우드 비정형 데이터 플랫폼 (0) | 2026.04.07 |
| [cloud] 클라우드 데이터 플랫폼(2) (1) | 2026.04.07 |
| [cloud] 클라우드 데이터 플랫폼(1) (0) | 2026.03.23 |
| [cloud] 클라우드 컴퓨팅 개념 & Azure (0) | 2026.03.22 |