데이터 엔지니어링/클라우드 8

[초밀착 리눅스] 1. 리눅스 기반 컨테이너 개발 환경 구축

전체 강의 개요 컨테이너 개요 다중 운영체제 Alpine 리눅스 이미지 만들기 전체 강의 개요 인프라 환경의 변화 온프레미스 - 직접 구매하여 설치/관리 클라우드 - 필요한 만큼 할당하여 사용한 만큼 비용을 지불 - API/SDK를 사용하여 모든 자원을 자동화 가능(Teraform) 컴퓨팅 환경의 변화 가상머신 - 하드웨어 가상화 - 가상머신 단위 컨테이너 - 운영체제 기반 가상화 기술 - 컨테이너 단위 - 빠른 확장성 : 컴퓨터 부팅 -> 운영체제 구동 -> 어플리케이션 실행에서 어플리케이션 실행만으로 변화 - 리눅스 기반 기술로 자원 격리 서버 관리의 변화 쉘 스크립트 - 스크립트가 어려움 - 오류 존재 가능 자동화 도구 - 필요한 부분에 쉘 스크립트 사용 - 한단계 추상화된 형태로 자원을 기술하는 ..

[클라우드] 배포 전략 (인플레이스, 롤링, 블루/그린, 카나리)

https://dev.classmethod.jp/articles/ci-cd-deployment-strategies-kr/ 매번 헷갈리는 CI/CD 배포 전략 정리해버리기 | DevelopersIO AWS 자격증을 공부하다가 매번 헷갈리는 배포 전략에 대해서 정리해보았습니다. dev.classmethod.jp 인플레이스 [정의] 새로운 버전의 어플리케이션만 반영하는 방법 [절차] 어플리케이션 일시 정지 -> 최신 버전으로 설치 -> 앱 실행 [사용] EC2, 온프레미스 환경에서만 사용 가능 롤링 배포 [정의] 한 번에 정해진 수 만큼씩 새로운 버전을 배포 [방식] 구버전에서 새버전으로 트래픽을 점진적으로 전환하여, 구버전이 점차 삭제 [장점] 서버 수의 제약이 있을 경우 유용한 방법 - [단점] 배포 중 ..

[클라우드] Service Discovery

정의 서비스 클라이언트가 서비스 호출을 위해 IP주소, Port를 알아내는 기능 사용 이유 - MSA에서 분산된 서비스간의 원격 호출과 클라우드 환경에서 오토 스케일링 등의 동적 환경으로 서비스의 IP 변동이 잦아짐 동작 (Client side discovery) 서비스 인스턴스 생성시 주소를 Service Registry에 등록 해당 서비스 호출시 클라이언트는 Service Registry에 주소를 물어보고 호출 Client side discovery vs Server side discovery Client side discovery 클라이언트가 Service Registry에서 서비스 위치를 찾아 호출하는 방식 Server side discovery proxy(LB)가 호출을 받고 LB에서 Servi..

[클라우드] 마이크로서비스 아키텍처

http://guruble.com/마이크로서비스microservice-아키텍처-그것이-뭣이-중헌디 마이크로서비스 아키텍처. 그것이 뭣이 중헌디? Table of Contents. 마이크로서비스 아키텍처 API Gateway 이벤트-주도(Event-Driven) 데이터 관리 분산된 데이터베이스에서 트랜잭션 관리 이슈 이벤트 주도 아키텍처(Event-Driven Architecture) Summary 마이크로서 guruble.com 정의 마이크로서비스 - 하나의 큰 애플리케이션을 여러 개의 서로 다른 역할을 수행하는 애플리케이션으로 분리했을 때 각 애플리케이션 마이크로서비스 아키텍처 - 마이크로서비스들로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처 마이크로서비스 아키텍처는 언제 필요한가? 애플리케이션 배포..

[클라우드] 클라우드 컴퓨팅 구분

클라우드 컴퓨팅 구분 기준 배치 모델 vs 서비스 모델 배치모델 - 클라우드 인프라의 위치와 운영에 따른 분류 1) 퍼블릭 클라우드 2) 프라이빗 클라우드 3) 하이브리드 클라우드 서비스 모델 - 사용자에게 서비스하는 인프라의 계층 정도에 따른 분류 1) IaaS 2) SaaS 3) PaaS 배치 모델 퍼블릭 클라우드 공공 클라우드 / 개방형 클라우드 특정 기업/사용자가 아닌 모든 사용자를 위한 클라우드 서비스 모델 자원이 각 서비스에서 사용자 별로 권한을 관리/격리 - 데이터 - 기능 - 서버 서비스 사용자간 간섭이 전혀 없음 프라이빗 클라우드 제한된 네트워크에서 특정 기업/사용자를 위한 클라우드 서비스 모델 기업이 자원의 제어권을 가짐 보안이 뛰어남 커스터마이징 (고객의 상황에 따른) 하이브리드 클라..

[클라우드] 컨테이너 기술이란

개요 정의 - 시스템의 나머지 부분과 분리된 1개 이상의 프로세스 세트 배경 - LXC(LinuX Container)부터 시작 - LXC는 단일 머신에 여러 개 독립 리눅스 커널 컨테이너 실행을 위한 OS레벨의 가상화 기법 기능 전통적 테스트 환경 복제에 의존하는 개발 파이프라인보다 더 빠르고 편함 - 네트워크, 스토리지, 보안 등 서로 다른 환경으로 프로그램 실행에 각종 오류 발생 - 다른 환경으로 이동시 안정적으로 실행하기 위한 개념 하이퍼바이저 기반 가상화 기술을 대체하여 각광받음 - 컨테이너 이미지 배포가 새로운 운영체제 설치보다 훨씬 간편 / 비용이 저렴 - Guest OS가 필요한 하이퍼바이저와 달리, 컨테이너는 운영체제 없이 어플리케이션 실행에 필요한 모든 파일만 패키징한 형태 컨테이너 장점..

[클라우드] 클라우드 인프라

개요 하드웨어, 추상화된 리소스, 스토리지 및 네트워크 리소스를 포함하는 클라우드 컴퓨팅에 필요한 구성 요소 클라우드에서 서비스와 애플리케이션을 호스트하기 위해 필요 동작 방식 가상화와 같은 추상화 기술로 물리적 하드웨어에서 리소스를 분리하여 클라우드로 풀링 자동화 소프트웨어와 관리 툴이 리소스를 할당하고 새로운 환경을 프로비저닝 -> 가상화로 리소스를 나누고 관리 툴이 리소스를 할당 구성요소 하드웨어 클라우드 네트워크는 여러 지리적 위치에 있을 수 있는 다양한 물리적 하드웨어로 이루어져있음 스위치, 라우터, 방화벽, 로드 밸런서, 스토리지 어레이, 백업 장치, 서버 등의 네트워킹 장비 포함 가상화로 여러 서버를 연결하여 리소스를 나누고 추상화하여 사용자가 사용 가상화 하드웨어에서 IT 서비스 및 기능을..

[클라우드] 클라우드의 정의 및 구성요소

클라우드 컴퓨팅 IT 자원을 구매하여 소유하지 않고 필요시 on-demand 서비스로 제공하는 컴퓨팅 IT 자원은 확장성/유연성이 확보된 서버, 스토리지, SW 등을 포함 -> 스토리지, 소프트웨어 등 IT 리소스를 직접 구매하지 않고 필요할 때 서비스를 제공받는 컴퓨팅 환경 클라우드 서비스 제공업체가 호스팅하여 인터넷을 통해 제공하는 인프라, 플랫폼 또는 소프트웨어 클라우드 서비스 유형 서비스로서의 인프라 (IaaS, Infrasructure-as-a-Service) - 사용자에게 컴퓨팅, 네트워킹, 스토리지 리소스를 제공 서비스로서의 플랫폼 (PaaS, Platform-as-a-Service) - 애플리케이션을 실행할 수 있는 플랫폼과 플랫폼 실행에 필요한 IT 인프라를 제공 서비스로서의 소프트웨어 ..