클라우드

열공하는웅2·2025년 10월 30일

클라우드

목록 보기
1/13
post-thumbnail

📘 Cloud 개념 및 특징

  • Cloud란 서버나 각 노드들의 물리적 위치와 무관하게 언제 어디서나 노드들과 접속할 수 있도록 구성된 네트워크를 말한다.
  • 이러한 맥락에서 유비쿼터스(Ubiquitous) 환경과 유사한 개념으로 볼 수 있다.
  • 웹하드(Web Hard)처럼 데이터를 저장하는 방식이 아니라, 데이터베이스·프로그램·설정 등을 저장하는 구조와 같다.
  • Cloud는 기본적으로 서로 다른 물리적 장소에서 다수의 서버가 연결되어 데이터를 공유하는 구조이며, 사용자는 서버의 물리적 위치를 몰라도 서비스를 이용할 수 있다.
  • 한 곳의 서버에 저장된 데이터는 다른 노드에서도 자동으로 동기화되며, 네트워크에 연결된 노드들은 전체적으로 분산 저장 및 접근이 가능하다.
  • 이러한 구조로 인해 Cloud는 데이터의 증가에도 확장성(Scalability) 을 가지며, 자신이 필요한 만큼의 저장 공간을 자유롭게 이용할 수 있다.

👉 요약:
Cloud는 위치 제약 없이 데이터를 저장하고 관리할 수 있는 구조이며, 보안이 매우 중요한 요소이다.


☁️ 클라우드 서비스 현황 및 특징

  • 현재 대부분의 주요 상용 클라우드 컴퓨팅 업체로는
    Amazon AWS, Microsoft Azure, Google GCP, IBM, KT, Naver Cloud 등이 있다.
  • 이들은 인터넷을 통해 필요한 만큼의 자원을 온디맨드(On-Demand) 방식으로 제공한다.
  • 사용자는 초기 장비를 구매하지 않아도 데이터센터를 직접 구축한 것과 같은 효과를 얻을 수 있다.
  • 클라우드는 필요에 따라 자원을 확장 또는 축소할 수 있으며,
    컴퓨팅 파워, 스토리지, 데이터베이스 등의 기술 서비스를 사용함으로써
    초기 투자비용 절감과 업무의 효율성을 높일 수 있다.

🔸 클라우드 유형

사용 형태에 따라 다음과 같이 분류된다.

  1. 사설 클라우드 (Private Cloud)
  2. 공개 클라우드 (Public Cloud)
  3. 혼합형 클라우드 (Hybrid Cloud)

이들은 각각의 특성 및 보안 수준, 운영 방식에 따라 구분된다.



☁️ 클라우드 서비스의 유형

클라우드 서비스는 제공하는 자원의 종류에 따라 세 가지로 구분된다.

  1. SaaS (Software as a Service)

    • 예: Gmail, Dropbox, Naver Cloud 등
    • 소프트웨어를 웹에서 바로 사용하는 형태
    • 사용자는 별도의 설치 없이 인터넷을 통해 소프트웨어를 이용할 수 있다.
    • 서비스 제공자가 유지·관리·업데이트를 담당한다.
  2. IaaS (Infrastructure as a Service)

    • 서버, 스토리지, 네트워크 장비 등 하드웨어 인프라를 빌려주는 서비스
    • 사용자는 필요한 만큼만 자원을 임대하여 사용한다.
    • 예: Amazon EC2, Microsoft Azure VM
  3. PaaS (Platform as a Service)

    • 애플리케이션 개발을 위한 플랫폼 환경을 제공
    • 개발자는 인프라 관리 없이 애플리케이션 개발·실행·테스트 가능
    • 예: Google App Engine, AWS Elastic Beanstalk

👉 요약:
클라우드 서비스는

  • SaaS: 소프트웨어 사용
  • IaaS: 하드웨어 인프라 임대
  • PaaS: 개발 플랫폼 제공
    으로 구분된다.

☁️ 세분화된 클라우드 서비스 종류

  • 데이터베이스를 클라우드에서 이용하게 하는 DBaaS (Database as a Service)
  • AI 인공지능을 이용하는 AIaaS (AI as a Service)
    이들 모두는 세분화된 클라우드 서비스의 하위 개념으로,
    기존의 IaaS·PaaS·SaaS 범주에서 파생된 형태이다.

🔹 실습 개요

  • Big DataDFS (Distributed File System, 분산 파일 시스템) 의 기초인 Hadoop
    Ubuntu 머신에 설치하여 실습한다.
  • 이후 ownCloudGitHub을 살펴보고,
    DockerKubernetes(K8s), 그리고 AWS 등을 자세히 다룰 예정이다.

👉 요약:
DBaaS·AIaaS는 세분화된 클라우드 서비스이며,
학습 및 실습에서는 Hadoop → ownCloud → GitHub → Docker/K8s → AWS 순으로 다룰 예정이다.

☁️ 가상화 및 관련 기술 정리

  • Hadoop

    • master/slave 구조로 구성된 분산 파일 시스템(DFS) 구축 기술
    • Docker와 유사한 분산 처리 개념을 가짐
  • 클라우드 서비스 예시

    • AWS (Amazon Web Service)
    • MS Azure
    • GCP (Google Cloud Platform)
    • IBM Cloud
    • ⇒ 모두 On-Demand(필요 시 자원 할당) 방식으로 상용화되어 있음

💻 가상화 기술

가상화(Virtualization)는 물리적 하드웨어 자원을 분리하여 여러 개의 가상 머신(VM)을 생성·운영하는 기술이다.

🔸 대표 가상화 소프트웨어

  1. MS Hyper-V

    • Windows Server 2018 이후 기본 탑재
    • 가상머신을 생성하고 관리할 수 있는 인프라 가상화 프로그램
  2. Linux KVM (Kernel-based Virtual Machine)

    • 리눅스 커널 기반의 오픈소스 가상화 기술
    • 고성능 서버 및 클라우드 환경에서 널리 사용됨
  3. VMware / VirtualBox / VirtualPC

    • 일반 사용자를 위한 데스크톱형 가상머신 소프트웨어
    • VirtualBox(Oracle) 및 VMware Workstation 등이 대표적
  4. Citrix XenServer / VMware vSphere

    • 서버급 가상화 플랫폼
    • 대규모 데이터센터 및 클라우드 인프라 구축에 활용됨

👉 요약:
가상화 기술은 Hyper-V, KVM, VMware, VirtualBox, XenServer 등 다양한 형태로 존재하며,
서버 가상화부터 데스크톱 실습용 환경까지 폭넓게 활용된다.


🧩 VMware와 Docker의 비교 및 특징

1. VMware

  • VMware 가상머신은 하나의 독립된 컴퓨터 머신이므로
    RAM, CPU, HDD 공간을 별도로 할당해야 한다.
    → 따라서 용량이 크고 (예: 4GB 이상 필요) 자원 사용량이 많다.
  • 예: VMware에 Windows 10 가상머신을 설치하고,
    그 위에 MS Word, Nginx, 개발 API 등을 별도로 설치해야 한다.

2. Docker

  • Docker는 컨테이너(Container) 기반 가상화 기술로,
    Docker Image를 사용해 응용 프로그램을 실행한다.
  • 외부 호스트 머신의 리소스(HDD, CPU, RAM)공유하므로
    VMware처럼 자원을 별도로 많이 할당하지 않아도 된다.
  • 용량이 작고(약 250MB 수준), 가볍게 구동된다.
  • 컨테이너는 필요한 파일과 라이브러리만 포함하므로
    빠르게 생성·삭제·배포 가능하다.
  • Docker Image는 외부 Host 저장소(HDD) 에 저장된다.

3. 실제 사용 예시

  • 외부 호스트 (예: Ubuntu) 환경에서 Docker를 설치 후
    Windows 10 컨테이너를 실행할 수도 있다.
  • CPU와 Process를 공유하여 훨씬 효율적으로 실행된다.
  • Windows 7/10, CentOS, Ubuntu 등 다양한 환경에서
    MS Word, Nginx, MariaDB와 같은 서버 및 애플리케이션을 구동 가능하다.
  • 또한 애플(Apple) OS용 Docker 이미지도 다운로드 받아 실행할 수 있다.

4. 클라우드 및 서비스 연계

  • Docker를 통해 구축한 응용환경은 클라우드 상에서도 실행 가능하다.
  • 예를 들어 MS 365, Office 365, Azure 플랫폼에서는
    언제 어디서나 Office API를 활용할 수 있으며,
    이를 통해 VDI(가상 데스크톱 인프라) 형태의 서비스도 구현할 수 있다.

🔸 요약 비교

항목VMwareDocker
가상화 방식전체 OS 가상화 (하드웨어 기반)컨테이너 기반 (프로세스 격리)
리소스 사용많음 (RAM/CPU/HDD 별도 할당)적음 (호스트 자원 공유)
실행 속도느림빠름
이미지 크기수 GB수백 MB
주요 용도OS 단위 가상 환경 구축애플리케이션 단위 배포 및 운영

👉 정리:
VMware는 무거운 전체 OS 가상화,
Docker는 가벼운 컨테이너 기반 애플리케이션 가상화 기술로,
두 기술은 목적과 사용 환경이 다르다.


☁️ SaaS (Software as a Service)의 개념 및 특징

✅ 1. SaaS의 개념

  • SaaS는 과거처럼 소프트웨어 패키지를 개별 PC에 설치하지 않고,
    인터넷을 통해 바로 사용하는 서비스형 소프트웨어를 의미한다.
  • 과거에는 각 컴퓨터마다 프로그램을 설치해야 했지만,
    SaaS는 웹 환경에서 로그인만 하면 즉시 사용할 수 있다.
  • 현재 클라우드 시장의 약 37%를 SaaS가 차지하고 있으며,
    인터넷 혁명 → 모바일 혁명 → SaaS 혁명으로 불릴 정도로 중요한 비즈니스 모델로 자리 잡았다.

📌 대표 SaaS 서비스 예시

  • Figma, Notion, Typed, Google Workspace, Microsoft 365

✅ 2. SaaS의 활용 예시

  • Google ChromebookMS Office 365가 대표적인 SaaS 플랫폼이다.

    • Google Docs, Excel Online 등을 통해 문서를 작성하고,
      동영상·프레젠테이션·데이터베이스를 웹에서 바로 실행할 수 있다.
  • 이러한 SaaS형 서비스는 모든 프로그램을 클라우드 서버에 통합
    사용자가 별도의 설치 없이 웹 브라우저만으로 업무를 수행할 수 있게 해준다.


✅ 3. SaaS의 장점

항목설명
접근성인터넷만 연결되면 언제 어디서나 이용 가능
비용 효율성설치형 프로그램 대비 초기비용 절감, 유지보수 불필요
확장성사용자 증가에 따라 서버 용량이나 기능을 유연하게 확장 가능
협업성여러 사용자가 동시에 동일 문서를 실시간으로 편집 가능
보안성중앙 서버에서 데이터 관리로 보안성 향상

✅ 4. SaaS의 산업적 가치

  • 글로벌 대기업(예: MS, Google, Oracle)은 물론
    스타트업 기업들도 배송, 설치, 소프트웨어 업데이트를 위해 SaaS를 적극 활용하고 있다.
  • SaaS는 소프트웨어 구매·설치 없이 빠르게 서비스 제공이 가능하여
    클라우드 기반의 신규 비즈니스 모델 창출에 유리하다.

✅ 5. SaaS의 동작 방식 예시

  • MS EdgeGoogle Chrome과 같은 웹 브라우저에서
    Excel, Word, GOM Player 등을 로컬 설치 없이 바로 실행 가능.
  • 모든 기능이 클라우드 서버에서 실행되며, 사용자는
    브라우저의 Frontend(화면) 만 통해 작업을 수행한다.
  • 즉, 서버가 프로그램을 대신 실행해 결과를 사용자에게 전송하는 형태이다.

✅ 6. 요약

SaaS란 설치형 프로그램을 대체하는 클라우드 기반 서비스형 소프트웨어로,
별도 설치 없이 브라우저에서 바로 사용할 수 있는 효율적인 비즈니스 모델이다.

대표 예시: Figma, Notion, Office 365, Google Workspace, Typed



☁️ 클라우드의 유형별 특징

종류설명
사설형 (Private Cloud)기업 내부의 비밀을 유지하기 위해 외부에 공개되지 않고 내부적으로만 사용하는 폐쇄형 클라우드.
⇒ 주로 개인 기업이나 보안이 중요한 기관에서 사용.
공개형 (Public Cloud)일반에게 개방되어 누구나 자유롭게 사용할 수 있는 클라우드.
⇒ 예: 공공서버, 공공기관, 관공서 등.
혼합형 (Hybrid Cloud)사설형과 공개형을 적절히 혼합한 형태.
⇒ 평상시에는 사설형으로 운영하다가, 트래픽이 증가하거나 특정 기간(예: 대학 수강신청, 추석 열차 예매 등) 에는 공개형으로 전환하여 확장 운영.

요약

  • 사설형: 내부 한정, 보안 중심
  • 공개형: 개방형, 접근성 중심
  • 혼합형: 상황에 따라 유연하게 전환 (확장성과 효율성 확보)


🧩 GitHub 개요 및 사용 방법

✅ 1. GitHub란

  • GitHub는 여러 사용자가 공동으로 프로젝트를 진행할 때 버전 관리와 협업을 지원하는 플랫폼이다.
  • GitHub에 가입한 사용자는 자동으로 파일의 변경 이력(Version History) 을 추적할 수 있다.
  • 초기에는 이메일을 통해 파일을 주고받는 방식으로 협업을 했지만,
    Git 서버를 이용하면서 파일 변경사항을 추적·공유하고
    다른 사용자에게 알리는 업데이트 시스템으로 발전했다.

→ 이러한 방식 덕분에 Git은 개인용에서 기업용, 클라우드 협업 환경으로 활용 범위가 확대되었다.
→ 또한 OneNote, Google Drive, Naver Drive 등과 동기화해 사용할 수도 있어
실시간 협업이 가능하다.


✅ 2. GitHub의 주요 개념

  • GitHub는 원래 로컬(자신의 PC) 에서 작업한 내용을
    서버에 업로드(Commit & Push) 하여
    다른 사용자와 공유 및 협업하는 목적의 플랫폼이다.
  • 사용자는 각자 작업 공간인 Branch(브랜치) 를 만들어 작업하고,
    상위 브랜치인 Main과 이를 관리하는 Origin(원격 저장소) 을 통해
    변경사항을 병합(Merge)한다.
  • 현재는 Cloud 환경에서도 사용 가능하여,
    원격 저장소를 통해 온라인상에서도 협업이 가능하다.

✅ 3. Git의 일반적인 작업 순서

  1. git add

    • 수정된 파일을 인덱싱(추적 대상 등록)
  2. git commit -m "메시지"

    • 변경 내용을 버전으로 기록
  3. git push origin master (또는 main)

    • 로컬의 변경사항을 원격 저장소(GitHub) 로 업로드
  4. git fetch / git pull

    • 원격 저장소의 최신 데이터를 로컬로 가져오기

✅ 4. 요약

GitHub는 개발자 및 협업 팀이 버전 관리(Git)소스 코드 공유를 효율적으로 수행하도록 돕는 클라우드 기반 협업 플랫폼이다.

주요 명령어: add → commit → push → fetch/pull

GitHub는 단순한 코드 저장소를 넘어, 팀 협업·변경 이력 관리·오픈소스 공유의 중심 플랫폼으로 발전하였다.


GIT

NEW->

Public


🧩 GitHub 사이트에서 저장소 복제(clone) 방법

예시 사이트:
https://github.com/dodream00/class10

✅ 문제 상황

  • GitHub 사이트에 접속했을 때 많은 파일과 디렉터리가 존재한다면,
    하나하나 직접 다운로드하는 것은 비효율적이다.

✅ 해결 방법 (Linux 기준)

  • 다음 명령어를 사용하면, 해당 사이트의 모든 파일과 디렉터리
    한 번에 로컬 환경으로 복제(clone) 할 수 있다.
git clone https://github.com/dodream00/class10.git

✅ 확인 방법

  • 복제가 완료되면, 아래 명령어를 통해 로컬 디렉터리로 이동 후
    파일 목록을 확인할 수 있다.
cd class10.git && ls

→ 이렇게 하면 GitHub의 원격 저장소에 있는 모든 파일을 로컬에서 확인 가능하다.


📘 요약

git clone [저장소주소] 명령은 GitHub 원격 저장소 전체를 복제하는 명령이다.
모든 파일과 디렉터리를 한 번에 내려받아 로컬에서 작업하거나 수정할 수 있다.


💻 Git에서 자주 사용되는 명령어 정리

명령어역할
add로컬 자료를 웹으로 올리기 위해 파일을 추가(Indexing)한다.
comment해당 파일의 버전에 대한 코멘트를 작성한다.
commit변경이 실행되도록 하는 명령으로, execute와 같은 역할을 한다.
push로컬에서 메인(master) 브랜치로 자료를 업로드할 때 사용된다. (upload)
master웹상의 Git에서 메인 브랜치를 의미한다. (예: https://github.com/~)
origin웹상의 Git 메인(master) 브랜치의 별칭(alias)이다.
pull메인 브랜치에서 로컬로 자료를 가져올 때 사용된다. (download)
merge여러 로컬 브랜치를 하나로 합치는 기능을 수행한다.
fetch / get여러 브랜치에 흩어져 있는 자료를 병합(merge)하여 다운로드한다.

요약

Git의 기본 명령어 흐름은 다음과 같다.

add → commit → push : 로컬에서 원격 저장소로 업로드
fetch/pull → merge : 원격 저장소의 변경사항을 가져와 통합


원하신다면 이 명령어들을 Git 명령어 + 주요 옵션 예시 표로 확장해 정리해드릴 수도 있습니다.
예: git commit -am, git push -u origin main, git pull --rebase 등.

setting -> developer setting


Personal access tokens -> token(classic)

Generate new token(classic)

new token(classic)

설정하고, repo(체크)

Generate token

토근 저장

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

git config --gloabal color.ui "auto"
git config --gloabal user.name "Herolee0607"
git config --gloabal user.email "dreamlyw@naver.com"


바깥에서 확인가능

2가지 파일을 한 번에 업로드 해보자

로컬에 나와서

리로드

내용 변경

git pull

내용 변경 확인

RockyOS, WindowsOS에서도 가능



☁️ ownCloud 서버

  • ownCloud는 로컬 호스트 중 하나에 데이터 리포지터리를 설치하거나
    로컬 Git 서버를 구성하여 클라이언트들이 파일이나 소프트웨어를 쉽게 관리·동기화할 수 있도록 해주는 시스템이다.

  • 내부적으로는 로컬 협상 서버(Configuration Server) 로 사용할 수 있으며,
    각 호스트에서 push, get 등의 작업을 수행해야 다른 호스트에 변경사항이 반영된다.

  • 하지만 ownCloud는 설치가 간단하고,
    한 호스트에서 변경된 파일이 다른 호스트에도 자동으로 동기화되는 구조로,
    주로 인트라넷(Intranet) 환경에서 사용하는 폐쇄형 클라우드로 볼 수 있다.

🧩 즉, ownCloud는 조직 내부에서 데이터를 공유하기 위한 “사내 전용 클라우드 서버”라고 할 수 있다.


🔸 GitHub와 비교

  • ownCloud: 내부 전용(Intranet) → 폐쇄형
  • GitHub: 외부 접근 가능(Extranet) → 공개형

👉 일반적으로 외부에서 접근해야 하는 협업 환경에서는
GitHub(Extranet 기반)를 사용하고,
내부 네트워크 전용 협업 환경에서는 ownCloud(Intranet 기반)를 사용한다.


요약

구분ownCloudGitHub
사용 위치내부 네트워크(Intranet)외부 인터넷(Extranet)
접근 방식제한적(사내 전용)전 세계 어디서나 접근 가능
주요 기능파일·소프트웨어 동기화, 로컬 서버 기반버전 관리, 협업, 오픈소스 공유
자동 동기화지원 (자동 반영)수동 push/pull 필요

💡 정리:
ownCloud는 내부 네트워크용 클라우드 서버이며,
GitHub은 외부 협업 및 오픈소스 공유용 클라우드 플랫폼이다.


ownCloud 실습

APM(Apache WebServer + PHP + MySQL Server) 설치

DB설정

create database owncloudDB; => 데이터베이스 생성
show databases; => 생성 점검
grant all privilege on owncloudDB. to 'owncloud'@'localhost' identified by 'owncloud'; => 로컬에서 모두 허용
grant all privilege on owncloudDB.
to 'owncloud'@'%' identified by 'owncloud'; => 원격에서도 허용
flush privileges; => 즉시 적용
exit

wget https://ftp.icm.edu.pl/packages/owncloud/owncloud-10.5.0.tar.bz2 => ownCloud 10.5.0 압축파일 내려받기
tar xvfj owncloud-10.5.0.tar.bz2 -C /var/www
=> -C /var/www : 풀어낸 폴더를 /var/www 아래에 놓아라

ls
ls /var/www/
ls /var/www/cloud/
=> 순서대로 현재 디렉터리 → 웹 루트 → owncloud 폴더가 잘 풀렸는지 확인

ls -dl /var/www/owncloud/ => Apache가 접근할 수 있는 소유자인지 확인하려고 보는 것
grep "www-data" /etc/passwd => Ubuntu에서 Apache가 어떤 사용자로 돌아가는지 확인

권한 부여

chown -R www-data:www-data /var/www/owncloud/
ls -dl /var/www/owncloud/
nano -c /etc/apache2/apache2.conf

a2enmod rewrite && a2enmod headers => a2enmod: apache 모듈을 켜는 명령어
systemctl restart apache2 => 재시작
nano -c /etc/apache2/sites-available/000-default.conf

=> 이 서버의 기본 웹 루트는 이제 ownCloud야” 라는 뜻

시스템 시작

systemctl restart apache2 && systemctl restart mysql

방화벽 설정(http & mysql)

ufw allow 80/tcp && ufw allow 3306/tcp

apt -y install net-tools
netstat -nltp |grep LISTEN

firefox http://local

owncloud 접속확인
owncloud

owncloud
owncloud
owncloudDB

업로드중..

profile
훌륭한 it 엔지니어 꿈나무

0개의 댓글