클라우드 컴퓨팅
- 인터넷을 통해 IT 리소스와 어플리케이션을 온디맨드로 제공하는 서비스, 종량 과금제
- 사용자는 물리적인 HW나 SW를 직접 관리하지 않고 필요한 자원만큼 서비스 형태로 제공받음
- 서버, 스토리지, DB, SW 등 다양한 IT 자원을 효율적으로 제공하며 비용 절감과 유연성 제공
클라우드 서비스 모델
- 사용자가 제공받는 서비스의 범위와 관리 책임에 따라 달라짐
IaaS(Infrastructure as a Service)
- 하드웨어 자원을 서비스 형태로 제공
- 서버, 스토리지, 네트워크, 가상화 등의 자원을 클라우드 제공업체가 관리하고 사용자는 이 자원만큼만 사용하고 비용 지불
- 예시 : AWS EC2, Google Compute Engine, Microsoft Azure Virtual Machines
- 특징 : 사용자는 운영체제와 어플리케이션을 설치하고 관리하지만 하드웨어와 가상화는 클라우드 제공업체가 관리
- 장점 : 효율적인 비용, 자원을 유연하게 확장하거나 축소 가능
- 어플리케이션 개발과 실행을 위한 플랫폼 제공
- 사용자는 어플리케이션을 개발하고 실행하는 데 필요한 환경만 제공받으며 인프라나 운영체제의 관리가 필요 없음
- 예시 : Heroku, Google App Engine, Microsoft Azure App Services
- 특징 : 개발자는 어플리케이션 코드에 집중할 수 있으며, 서버나 네트워크 관리의 부담을 덜 수 있음
- 장점 : 개발 환경이 자동으로 관리되며 어플리케이션 배포 및 확장이 간편
Saas(Software as a Service)
- 소프트웨어를 서비스 형태로 제공
- 사용자는 어플리케이션을 설치하거나 유지보수할 필요 없이 웹을 통해 소프트웨어에 접근하여 사용
- 예시 : Google Workspace, Microsoft 365, Dropbox, Salesforce
- 특징 : 소프트웨어 제공자는 모든 관리와 유지보수를 담당하며 사용자는 인터넷을 통해 소프트웨어에 접근하고 사용할 수 있음
- 장점 : 소프트웨어 설치와 관리가 필요 없으며 여러 디바이스에서 쉽게 접근 가능
리눅스(Linux)
- 유닉스(Unix) 계열의 운영체제(OS)로, 주로 서버나 임베디드 시스템에서 사용
- 오픈소스 기반으로 개발 -> 누구나 무료로 사용 가능
- 소스 코드를 수정하거나 배포 가능
- 커널(kernel)과 다양한 유틸리티 포함
특징
- 오픈소스(Open Source) : 누구나 소스코드를 열람하고 수정 가능. 개발자들이 자유롭게 리눅스를 커스터마이징하고 다양한 환경에 맞춰 사용할 수 있게 함
- 안정성 : 서버 환경에서 자주 사용되고 장시간의 운영에도 시스템 다운이 거의 발생하지 않음
- 보안 : 권한 관리와 사용자 인증, 방화벽 설정 등이 뛰어남
- 경량성 : 다른 운영체제에 비해 자원을 적게 소모
- 다양한 배포판 : Ubuntu, CentOS, Debian, Red Hat Enterprise Linux(RHEL)
주요 명령어
ls
cd /home/user
- pwd : 현재 작업 중인 디렉터리의 경로를 표시
pwd
cp file1.txt file2.txt
mv oldname.txt newname.txt
rm file.txt
chmod 755 file.txt
- ps : 현재 실행 중인 프로세스 목록을 확인
ps aux
- top : 시스템 상태(프로세스, CPU 사용량 등)를 실시간으로 표시
top
활용 분야
- 서버 운영 : 안정성과 보안성 덕분에 많은 웹 서버, 데이터베이스 서버 등에서 사용
- 클라우드 환경 : 클라우드 서비스 제공업체에서 리눅스는 IaaS 환경에서 주요 운영 체제로 사용됨
- 개발 환경 : 다양한 프로그래밍 언어와 도구 지원
- 임베디드 시스템 : Raspberry Pi와 같은 소형 컴퓨터에서도 사용됨