카테고리 없음

[클라우드응용SW개발] 3주차

MeHannah 2026. 3. 23. 02:51

3주차 이론 정리(2.2~3.2)

1) SSH를 통합 리눅스 접속

리눅스 서버에 접속하기 위해서는 SSH(Secure Shell)를 사용한다.
SSH는 원격 시스템에 안전하게 접속하기 위한 프로토콜로 기존의 Telnet과 달리 모든 통신을 암호화하여 보안성이 높다.

 

SSH는 클라이언트-서버 구조로 동작하며 기본적으로 22번 포트를 사용한다.

 

2) SSH 접속 방법

ssh 사용자명@IP주소

또한 포트 변경, 키 파일 지정 등 다양한 옵션을 통해 보다 안전하고 유연한 접속이 가능하다.

 

3) 리눅스 기본 명령어

리눅스를 사용하기 위해서는 기본적인 명령어를 이해해야 한다.

시스템 관련 명령어

 

 

  • date : 날짜 및 시간 확인
  • hostname : 시스템 이름 확인
  • uname : 시스템 정보 확인
  • who : 현재 사용자 확인

프로세스 및 기타

 

  • ps : 실행 중인 프로세스 확인
  • clear : 화면 초기화
  • man : 명령어 도움말 확인

4) 파일 및 디렉터리 명령어

  • ls : 파일 목록 확인
  • pwd : 현재 경로 확인
  • cd : 디렉터리 이동
  • mkdir : 디렉터리 생성
  • rm : 파일 삭제
  • cp : 파일 복사
  • mv : 파일 이동 및 이름 변경

이러한 명령어를 통해 서버 내 파일을 효율적으로 관리할 수 있다.

 

5) 파일 편집 명령어

리눅스에서는 터미널 기반 편집기를 사용한다.

  • cat : 파일 내용 출력
  • touch : 파일 생성
  • grep : 특정 내용 검색
  • vi : 텍스트 편집

특히 vi 편집기는 서버 환경에서 매우 중요한 도구이다.

 

6) 정리

→ 리눅스 서버를 운영하기 위해서는 SSH를 통해 접속하고 다양한 명령어를 활용하여 시스템과 파일을 관리해야 한다.
이러한 기본 명령어는 클라우드 서버 운영의 핵심 요소이다.

 

7) Streamilt 개념

Streamlit은 Python 기반으로 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 오픈소스 프레임워크이다.

HTML이나 JavaScript 없이도 간단한 코드만으로 웹 서비스를 구현할 수 있다는 특징이 있다.

 

8) Streamilt의 특징

 

  • Python 코드만으로 웹 개발 가능
  • 실시간으로 결과 반영 (빠른 개발)
  • 다양한 UI 위젯 제공
  • 데이터 시각화 지원

즉, 복잡한 웹 개발 과정 없이도 빠르게 서비스 구현이 가능하다.

 

9) 클라우드 환경에서의 웹 서비스

클라우드에서는 가상 머신을 활용하여 웹 서비스를 운영할 수 있으며,
Streamlit과 같은 도구를 사용하면 보다 쉽게 웹 서비스를 구축할 수 있다.

 

10) 네트워크 보안 그룹(NSG)

클라우드에서 웹 서비스를 외부에 공개하기 위해서는 보안 설정이 필요하다.

Azure에서는 네트워크 보안 그룹(NSG)을 사용한다.

  • 인바운드 / 아웃바운드 트래픽 제어
  • 포트, IP, 프로토콜 기반 접근 제어
  • VM 및 네트워크에 적용 가능

즉, NSG는 클라우드 환경에서의 방화벽 역할을 한다.

 

11) 정리

→ 클라우드 환경에서는 Streamlit과 같은 도구를 활용하여 웹 서비스를 쉽게 구축할 수 있으며, NSG를 통해 외부 접근을 안전하게 관리할 수 있다.

 

12) 데이터의 종류

데이터는 다음과 같이 구분된다.

  • 구조화 데이터: 테이블 형태 (관계형 DB)
  • 반구조화 데이터: JSON, XML 등
  • 비구조화 데이터: 이미지, 영상 등

13) OLTP vs OLAP

 

OLTP(온라인 거래 처리)

 

  • 실시간 데이터 처리
  • 트랜잭션 중심
  • 예: 주문, 결제 시스템

 

OLAP(온라인 분석 처리)

 

  • 데이터 분석 및 집계
  • 의사결정 지원

14) 트랜잭션 특징 (ACID)

트랜잭션은 다음과 같은 특징을 가진다.

  • 원자성
  • 일관성
  • 격리성
  • 영속성

이는 데이터의 신뢰성과 정확성을 보장한다.

 

15) 데이터 처리 방식

 

  • 일괄 처리: 일정 단위로 모아서 처리
  • 스트림 처리: 실시간으로 처리

16) 비관계형 데이터 (NoSQL)

비관계형 데이터는 고정된 구조 없이 다양한 형태로 저장된다.

  • 키-값 저장소
  • 문서형 DB
  • 그래프 DB

유연성과 확장성이 뛰어나 현대 서비스에서 많이 사용된다.

 

17) 정리

→ 클라우드 환경에서는 다양한 형태의 데이터를 처리해야 하며, 데이터의 특성에 따라 적절한 저장 및 처리 방식을 선택하는 것이 중요하다.

 

18) Open Source Database의 개념

Open Source Database는 소스 코드가 공개되어 자유롭게 사용할 수 있는 데이터베이스이다.

대표적으로 MySQL, PostgreSQL, MariaDB 등이 있다.

 

19) Azure에서의 Open Soure DB

Azure에서는 다음과 같은 데이터베이스를 제공한다.

  • Azure Database for MySQL
  • Azure Database for PostgreSQL
  • Azure Database for MariaDB

이들은 클라우드 환경에 최적화된 관리형 서비스이다.

 

20) 클라우드 DB의 장점

  • 자동 관리 및 유지보수
  • 높은 가용성
  • 확장성
  • 보안 기능 제공

즉, 사용자는 인프라 관리 없이 데이터베이스를 사용할 수 있다.

 

21) 데이터 베이스 연결 방식

클라우드에서는 다음과 같은 방식으로 DB에 연결한다.

  • 리디렉션 방식: 초기 연결 후 직접 통신
  • 프록시 방식: 모든 요청이 게이트웨이를 통해 전달

각 방식은 성능과 안정성 측면에서 차이가 있다.

 

22) 정리

→클라우드에서는 다양한 Open Source Database를 제공하며,
관리형 서비스 형태로 보다 효율적인 데이터 관리가 가능하다.

 

클라우드 환경에서는 리눅스 서버 운영뿐만 아니라 데이터 처리와 데이터베이스 관리까지
통합적으로 이루어지며, 이를 통해 효율적이고 확장 가능한 서비스 구축이 가능하다.

 

3주차 실습 정리(2.2~3.2)

 

1) SSH 접속 방법

리눅스 서버에 접속할 때는 SSH(Secure Shell)을 통해 안전하게 접속할 수 있다

명령어 형식: ssh [옵션] [사용자명]@[호스트명 또는 IP주소]

 

1. IP주소 확인

Azure의 VM에서 개요 탭을 들어가 IP adress를 확인할 수 있다

- 연결과 상관없이 IP주소, IP, PW만 알고 있다면 접속이 가능하다

 

2. 접속 

Widow키 + R를 눌러 cmd 열기 (window10 이상의 최신 os사용 권장)

 

ssh 명령어로 설치 여부가 확인 가능

 

ssh id@ip로 접속 후 비밀번호를 확인한다

로그인 완료!

$ 표시는? 관리자 계정이 아님 보안 문제상 관리자 계정으로 바로 접속하지 않는다

 

따라서 접속 후 바로 실행해야 하는 명령어 2가지!

- apt-get update : 시스템을 업데이트한다 

 

하지만 lock, permission denied라는 문구가 뜬다 마찬가지로 관리자 계정이 아니기 때문에 접근이 금지된 것이다. 이런 상황에서는 sudo(Super User Do) 명령어를 써야 한다

 

sudo 명령어를 쓰니 정상적으로 업데이트가 진행되었다

 

두 번째 명령어는 -apt-get upgrade apt-get update와 같이 시스템을 업그레이드한다.

upgrade명령어가 실행하면 이러한 화면이 뜬다 tab키로 ok를 선택하여 계속 진행하면 된다

 

성공적으로 명령어가 끝나면 한국 중부 어딘가 데이터 센터에서 만든 가상 머신에 접속을 완료한 상태이다!

 

2) 리눅스의 기본 명령어

기본 명령어

 

리눅스 파일 및 디렉터리 관련 명령어

자원을 아끼기 위해 명령어를 축약하여 사용하였다

ls -al  숨겨진 파일까지 확인할 수 있다

 

리눅스 파일 편집 관련 명령어

vi로 텍스트 편집기에 들어가고 i로 입력기 가능하다

텍스트 편집 후에는 esc로 입력을 끝낸 뒤 :w 파일명으로 저장할 수 있다

 

q!는 입력한 내용이 사라진다

 

3) Streamlit App 개발

 

1. 설치 방법

간단한 명령어로 설치가 가능하다

streamlit은 python으로 이루어져 있기 때문에 설치가 필요하다 python --version으로 설치된 버전을 확인할 수 있다

구버전과 최신의 버전은 호환성이 낮을 수 있다 3.10 정도면 OK

 

이제 streamlit 설치 명령어를 입력해 보면...

정상적으로 설치가 진행되었다 (pip명령어가 설치되어이지 않다면 sudo apt install python3-pip로 다운로드 가능하다)

 

???

정상적으로 설치를 했는데 명령어를 찾을 수 없다고 나왔다 이유는 streamlit이 설치는 되어있지만 경로가 아직 정확하지 않기 때문이다 exit명령어로 연결을 끊은 뒤 ssh에 재접속하면 경로를 다시 잡아 명령어를 정상적으로 인식한다

재접속하니 성공적으로 명령어가 실행되며 접속할 수 있는 ip 주소가 뜬다.  (https로 바꾸어 접속하여야 한다)

하지만 https로 접속하여도 연결이 안 된다

 

이유는 가상 머신의 방화벽 설정 때문이다 우리가 접속하고자 하는 포트 번호(8501)의 접속을 허용하도록 vm의 설정을 바꾸어야 한다

VM > 네트워킹 > 네트워크 설정 탭에서 인바운드, 아웃바운드 포트 규칙을 바꾸어야 한다

인바운드, 아웃바운드: 서버에 들어가고 나오는 트래픽 

포트 규칙 만들기를 클릭하여 각각의 규칙을 추가해 주면 된다

인바운드 포트 규칙을 생성하고 다시 external URL로 접속하면 이번에는 보안에 관한 경고 문구가 뜬다 무시하고 접속하면 된다

 

접속하여 여러 데모를 확인할 수 있다

 

4) Azure 내에서 Database의 연결

원래라면 MySQL 같은 DB를 설치해야겠지만 Azure에서는 설치 없이 사용할 수 있다

 

저번처럼 리소스 그룹을 만들어준 뒤 Merketplace에서 원하는 DB를 선택할 수 있다

 

 

실습에서는 Microsoft에서 제공하는 Azure Database for MySQL을 사용한다

DB를 만들 때 배포 옵션을 2가지 중에서 선택할 수 있다

  • 유연한 서버: DB서버만을 제작한다
  • Wordpress + MySQL 유연한 서버: 웹사이트를 만들 때 사용하는 도구도 함께 만들어진다 

설치가 완료되었다

DB탭에서 DB도구가 설치된 것을 볼 수 있다