본문 바로가기

프로그래밍 놀이터/Settings12

[Docker] 클라우드를 사용한 Docker 실행 환경의 운용 관리 [Docker] 클라우드를 사용한 Docker 실행 환경의 운용 관리 10.1. 시스템 운용의 기초 지식 * 가용성 관리 - 가용성이란 시스템을 계속해서 가동시킬 수 있는 능력을 말한다. 가용성이 높은 시스템을 만들기 위한 대표적인 기술 요소로 다중화가 있다. 다중화랑 만일 장애가 발생해도 시스템 전체가 정지되지 않도록 하는 기술 요소를 말한다. - 콜드 스탠바이 방식 구성이나 설정이 똑같은 서버나 네트워크 기기를 미리 백업 기기로 마련해 두고, 실제 환경과 가까운 장소에 설치하여 전원을 꺼 둔다. 실 기기에 장애가 발생하면 백업 기기에 전원을 넣고, 실제 환경의 기기와 통째로 교체한다. 소규모 온프레이스 환경 등에서 자주 택하는 방식이다. 중요한 것은 실제 환경 기기와 백업 기기는 완전히 똑같이 설정해.. 2020. 3. 29.
[Docker] 클라우드를 사용한 Docker 실행 환경 구축 [Docker] 클라우드를 사용한 Docker 실행 환경 구축 -Docker 는 이미지만 있으면 동일한 인프라 환경에서 작동하는 앱을 가동시킬 수 있다.Docker 를 사용하면 온프레미스부터 프라이빗 클라우드, 퍼블릭 클라우드, 하이브리드 클라우드에 이르기까지 실행 환경을 요구사항에 맞춰 자유롭게 선택할 수 있다.앱에 대한 이러한 높은 이식성이 Docker 의 최대 매력이라고 할 수 있다. 9.1. 클라우드 환경에서 Docker 오케스트레이션 하기 * 분산 환경에서의 컨테이너 운용 관리 -멀티호스트로 구성된 실제 환경을 클러스터 구성으로 가동시키려면 컨테이너의 시작 및 정지와 같은 조작뿐만 아니라 호스트 간의 네트워크 연결이나 스토리지 관리, 컨테이너를 어떤 호스트에서 가동시킬지와 같은 스케줄링 기능이 .. 2020. 3. 28.
[Docker] 멀티호스트 환경에서 Docker 실행 환경 구축 [Docker] 멀티호스트 환경에서 Docker 실행 환경 구축 -Docker 에서 작동하는 웹 앱을 제품 환경에서 운용할 때는 앱이 사양대로 올바르게 작동할 뿐만 아니라 서비스 이용자가 항상 이용할 수 있도록 운용 관리를 해야 한다.이러한 컨테이너 기반은 보통 멀티호스트 환경으로 구축한다. 8.1. 멀티호스트 환경에서 컨테이너 관리의 개요 -웹 시스템의 실행 환경은 웹 서버, 프록시 서버, 데이터 스토어 등 역할이 다른 여러 개의 서버 기능이 연계되어 작동한다. * 멀티호스트 환경과 클러스터링 -시스템의 일부에서 장애가 발생해도 서비스가 정지되지 않도록 만드는 장치가 필요하다.이를 구현하는 기술 중 하나로 클러스터링이 있다.클러스터링은 여러 대의 서버나 하드웨어를 모아서 한 대처럼 보이게 하는 기술이다.. 2020. 3. 27.
[Docker] 여러 컨테이너의 운용 관리 [Docker] 여러 컨테이너의 운용 관리 -Docker 에서 움직이는 웹 앱을 제품 환경에서 운용할 때는 앱 서버, 로그 서버, 프록시 서버 등과 같이 여러 개의 컨테이너들을 연계하여 작동시킨다. 7.1. 여러 컨테이너 관리의 개요 -앱을 가동시키려면 여러 개의 서버에 기능과 역할을 분할하여 인프라의 전체 구성을 정한다.이것을 인프라 아키텍처라고 한다.대규모 웹 시스템의 경우 몇 개의 서브 시스템/기능으로 나누어 시스템을 개발하는 경우가 많다.웹 3계층 아키텍처는 웹 앱의 대표적인 인프라 아키텍처 중 하나로 웹 시스템의 서버들을 역할별로 다음 3개로 나누는 것을 이야기한다. -프론트 서버 클라이언트의 요청을 받아 응답을 반환하는 서버이다. 웹 프론트 서버 또는 그냥 웹 서버라고 한다. 웹 서버의 기능은.. 2020. 3. 26.
[Docker] Docker 이미지 공개 [Docker] Docker 이미지 공개 -Docker 이미지를 공유하는 장치를 제공하는 것이 Docker 레지스트리이다. 6.1. Docker 이미지의 자동 생성 및 공개 -Dockerfile 을 GitHub 등에서 관리하고 Docker Hub 와 연결하면 Dockerfile 로부터 자동으로 Docker 이미지를 생성하고 공개할 수 있다. * Automated Build 의 흐름 -Docker Hub 에는 버전 관리 툴인 GitHub 및 BitBucket 과 연결하여 Dockerfile 로부터 Docker 이미지를 자동으로 생성하는 Automated Build 기능이 있다.이는 GitHub 나 BitBucket 에 있는 Dockerfile 을 바탕으로 Docker 이미지를 자동으로 빌드하는 기능이다. .. 2020. 3. 25.
[Docker] Dockerfile 을 사용한 코드에 의한 서버 구축 [Docker] Dockerfile 을 사용한 코드에 의한 서버 구축 -Docker 에서는 인프라의 구성 관리를 Dockerfile 로 기술한다.이 Dockerfile 에는 베이스가 되는 이미지에 각종 미들웨어를 설치 및 설정하고, 개발한 앱의 실행 모듈을 전개하기 위한 앱 실행 기반의 모든 구성 정보를 기술한다. 5.1. Dockerfile 을 사용한 구성 관리 * Dockerfile 이란? -Dockerfile 은 Docker 상에서 작동시킬 컨테이너의 구성 정보를 기술하기 위한 파일이다.docker build 명령은 Dockerfile 에 기술된 구성 정보를 바탕으로 Docker 이미지를 작성한다. * Dockerfile 의 기본 구문 -Dockerfile 은 텍스트 형식의 파일로 에디터 등을 사용.. 2020. 3. 24.
[Docker] Docker 명령 #2 [Docker] Docker 명령 #2 4.3. Docker 컨테이너 네트워크 -Docker 컨테이너끼리 통신을 할 때는 docker 네트워크를 통해 수행한다. * 네트워크 목록 표시 (docker network ls) -syntax)$ docker network ls [옵션] 주요 옵션-f, --filter=[] : 출력을 필터링--no-trunc : 상세 정보를 출력-q, --quiet : 네트워크 ID 만 출력 docker 기본으로 bridge, host, none 이렇게 세 개의 네트워크를 만든다. -필터링 할 때는 key=value 형으로 지정한다.주요 키는 driver, id, label, name, scope(swarm/global/local), type(custom/builtin) -네트워.. 2020. 3. 23.
[Docker] Docker 명령 #1 [Docker] Docker 명령 #1 4.1. Docker 이미지 조작 * Docker Hub -Docker Hub 는 GitHub 나 Bitbucket 같은 소스코드 관리 툴과 연계하여 코드를 빌드하는 기능이나 실행 가능한 앱의 이미지를 관리하는 기능을 갖춘 Docker 의 공식 리포지토리 서비스이다.이를 사용하여 물리 서버, 가상 머신, 클라우드 모두 이미지를 배포할 수 있다. hub.docker.com -이미지명은 아래의 format 을 갖는다.이미지명[:태그명]태그명에는 latest 를 지정할 수도 있다. latest 는 저장소에 공개되어 있는 최신판 이미지를 의미한다. -Docker Store 는 Docker 사가 제공하는 소프트웨어의 마켓 플레이스.제공되는 소프트웨어는 Docker 포맷에서 .. 2020. 3. 22.
[Docker] Docker 설치와 튜토리얼 [Docker] Docker 설치와 튜토리얼 -Docker 를 개발 머신에서 이용할 때는 Docker for Mac 또는 Docker for Windows 를 설치한다.Docker 를 Linux 환경에서 사용하는 경우는 배포판에 따라 설치 절차가 다르다. 3.1. Docker 설치와 작동 확인 * Docker 의 클라이언트 툴 -macOS 용 Docker 는 macOS 1.10 Yosemite 에서 이용 가능하게 된 Hypervisor 프레임워크인 xhyve 를 사용한다. -windows 용 Docker 는 Windows 10 이후에 이용가능하며, MS 가 제공하는 하이퍼바이저인 x64용 가상화 시스템인 Hyper-V 를 사용하고 있다.OS 설정에서 Hyper-V 를 유효화하면 VirtualBox 등과 .. 2020. 3. 21.