728x90
반응형
SMALL
학습내용
- 클라우드 컴퓨팅
- Docker
- Docker Compose
학습정리
1. 클라우드 컴퓨팅
- 개념
- 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어 등의 IT 리소스를 제공하는 기술
- 컴퓨터의 저장 공간이나 프로그램을 개인 PC나 회사 서버가 아닌, 인터넷을 통해 제공되는 데이터 센터에서 이용하는 방식
- 주요 특징
- 온디맨드(On-Demand): 필요할 때만 IT 리소스를 사용할 수 있음
- 확장성(Scalability): 사용량에 따라 자원을 쉽게 늘리거나 줄일 수 있음
- 비용 절감(Cost Efficiency): 필요한 만큼만 사용하고 요금을 지불하는 구조 (예: 구독형 모델)
- 접근성(Accessibility): 인터넷만 있으면 어디서든 사용 가능
- 자동 업데이트(Auto Update): 최신 소프트웨어 및 보안 패치를 자동으로 적용
- 장/단점
- 장점
- 비용 절감 : 하드웨어 구매, 유지보수 비용 절감
- 확장성(Scalability) : 필요할 때만 자원을 추가하거나 줄일 수 있음
- 접근성(Accessibility) : 인터넷이 있으면 어디서든 서비스 이용 가능
- 보안 및 백업 : 대규모 데이터 센터에서 보안 및 데이터 보호 기능 제공
- 단점
- 인터넷 의존도 : 네트워크 장애가 발생하면 서비스 이용 불가
- 보안 문제 : 클라우드 제공업체의 보안이 뚫리면 데이터가 유출될 위험
- 벤더 락인(Vendor Lock-in) : 특정 클라우드 업체에 종속될 가능성 있음
- 장점
- 서비스 모델
- IaaS (Infrastructure as a Service) - 인프라 서비스
- 예시: AWS EC2, Google Compute Engine, Microsoft Azure VM
- 사용 사례: 데이터 센터 구축 없이 가상 서버를 임대하여 사용
- PaaS (Platform as a Service) - 플랫폼 서비스
- 예시: Google App Engine, AWS Elastic Beanstalk, Microsoft Azure App Service
- 사용 사례: 웹 애플리케이션 개발 및 배포
- SaaS (Software as a Service) - 소프트웨어 서비스
- 예시: Google Drive, Microsoft 365, Dropbox, Salesforce
- 사용 사례: 클라우드 기반 이메일, 협업 툴, CRM(고객관리 시스템)
- IaaS (Infrastructure as a Service) - 인프라 서비스
출처 : https://www.redhat.com/ko/topics/cloud-computing/iaas-vs-paas-vs-saas
- 클라우두 컴퓨팅 형태
- 퍼블릭 클라우드 (Public Cloud)
- AWS, Google Cloud, Microsoft Azure 같은 기업이 제공하는 공용 클라우드
- 초기 비용이 저렴하고 확장성이 뛰어나지만, 보안과 데이터 통제에 제한이 있을 수 있음
- 프라이빗 클라우드 (Private Cloud)
- 기업이나 기관이 자체적으로 운영하는 클라우드 환경
- 보안이 뛰어나지만 구축 및 유지 비용이 높음
- 하이브리드 클라우드 (Hybrid Cloud)
- 퍼블릭과 프라이빗 클라우드를 혼합하여 사용
- 보안이 중요한 데이터는 프라이빗 클라우드에서, 일반 서비스는 퍼블릭 클라우드에서 운영
- 멀티 클라우드 (Multi Cloud)
- 여러 클라우드 서비스(AWS, Azure, Google Cloud 등)를 조합하여 사용
- 특정 클라우드 제공업체에 종속되지 않고 유연하게 서비스 운영 가능
- 퍼블릭 클라우드 (Public Cloud)
2. Docker
컨테이너 기술을 활용하여 애플리케이션을 실행하는 플랫폼
가상 머신과 비교하여 가볍고 빠른 환경 제공 -> OS를 공유하기 때문에
핵심 개념
- 이미지 : 실행 가능한 애플리케이션 패키지
- 컨테이너 : 실행 중인 독립 된 환경
- DockerFile : 컨테이너를 정의하는 설정 파일
- DockerHub : 공개된 Docker 이미지를 저장하는 레파지토리\
Docker Architecture
출처 : https://docs.docker.com/get-started/docker-overview/Docker Client (CLI, REST API, UI)
- 사용자가 Docker와 상호작용할 수 있도록 명령을 전달하는 인터페이스
- CLI(Command Line Interface) 또는 REST API를 사용하여 컨테이너를 실행하거나 관리할 수 있음
Docker Daemon (dockerd)
- Docker의 핵심 엔진으로, 컨테이너와 이미지를 관리하는 역할
- Clinet 로 부터 명령을 받아 컨테이너 생성, 네트워크 관리, 스토리지 할당 등을 처리
Docker Images
- 컨테이너를 실행하는 데 필요한 파일 시스템과 애플리케이션 코드가 포함된 템플릿
- Layer 기반의 구조로, 같은 이미지에서 여러 개의 컨테이너 생성 가능
Containers
- 독립적으로 실행되는 애플리케이션 인스턴스
- 각 컨테이너는 자체 파일 시스템과 네트워크 인터페이스를 가지며, 다른 컨테이너와 격리됨
- docker run 명령으로 생성 가능
Docker Registry (Docker Hub, Private Registry)
- Docker 이미지를 저장하고 배포하는 서비스
- Docker Hub(공개), Amazon ECR, Google GCR 등의 사설 레지스트리를 사용 가능
- docker pull 또는 docker push 명령으로 이미지를 업로드/다운로드
Storage & Networking
- Storage: 컨테이너의 데이터를 지속적으로 저장하기 위해 Volumes, Bind Mounts, Tmpfs 사용
- Networking: 브리지(Bridge), 호스트(Host), 오버레이(Overlay) 등의 네트워크 드라이버를 통해 컨테이너 간 통신을 제공
3. Docker Compose
- 개념
- 여러 개의 컨테이너를 하나의 서비스로 관리하는 도구
- YAML 파일로 컨테이너 정의 및 실행 가능
- 개발 및 배포 환경에서 다중 컨테이너 애플리케이션을 쉽게 설정할 수 있습니다
- Docker Compose 버전 비교
비교 항목 V1 (구버전, Standalone) V2 (최신, Docker CLI 플러그인) 실행 방식 독립 실행형 (docker-compose 바이너리) Docker CLI 플러그인 방식 기본 명령어 docker-compose up -d docker compose up -d (공백 있음) 설치 필요 여부 별도 설치 필요 최신 Docker에 기본 포함 지원 파일명 docker-compose.yml만 지원 docker-compose.yml 및 compose.yml 지원 파일 지정 방법 -f docker-compose.prod.yml -f compose.prod.yml 기본 사용 여부 Docker 최신 버전에서는 비활성화됨 Docker 최신 버전에서 기본 사용됨 다중 파일 지원 docker-compose.override.yml 사용 가능 동일하지만, compose.override.yml도 가능 업그레이드 방법 더 이상 공식 지원되지 않음 최신 Docker 설치 시 자동 포함 - 기본 사용법
- 파일 작성
services: web: image: nginx:alpine ports: - "8080:80" redis: image: redis:alpine
- 실행
docker compose up -d #V2 -d 데몬실행 docker-compose up -d #V1
- 중 지 및 삭제
docker compose down docker-compose down
- 파일 작성
- Docker Compose vs Kubernetes
특징 Docker Compose Kubernetes 주요 목적 로컬 환경 및 개발 단계에서 컨테이너 오케스트레이션 대규모 컨테이너 오케스트레이션 및 클러스터 관리 설정 방식 YAML 파일 (docker-compose.yml) YAML 파일 (deployment.yaml, service.yaml 등) 확장성 로컬 개발 환경에서 사용, 자동 스케일링 없음 클러스터 기반으로 자동 스케일링 지원 로드 밸런싱 기본적으로 미지원 (수동 설정 필요) 내장된 로드 밸런서 및 서비스 디스커버리 지원 스토리지 관리 로컬 볼륨 마운트 사용 퍼시스턴트 볼륨 (PV, PVC) 지원 배포 방식 단순한 컨테이너 실행 롤링 업데이트, Canary 배포, Blue-Green 배포 지원
참고자료
- Docker 기본 명령어
728x90
반응형
LIST
'TIL' 카테고리의 다른 글
9_3.Docker 네트워크 및 데이터 관리 (0) | 2025.02.20 |
---|---|
9_2.Docker 이미지 생성 및 docker hub 실습 (1) | 2025.02.18 |
8_5.MSA 애플리케이션 배포 자동화 CI/CD 구축 실습 (0) | 2025.02.17 |
8_4.MSA 운영 및 모니터링 구축 실습 (0) | 2025.02.14 |
8_3.MSA 데이터 설계 전략 실습 (0) | 2025.02.14 |