Category
-
Docker) Docker EngineCloud/Docker 2022. 9. 28. 18:27
Docker Image docker image는 readonly형식으로 docker container를 생성하기 위한 template이다. 애플리케이션을 위한 라이브러리와 package와 실행환경을 가지고 있다. layer 구조로 구성되어 있다. Docker Container docker image가 메모리에 로딩된 instance read/write 가능 영역에서 데이터를 기록한다. docker container 생성은 애플리케이션 실행을 의미한다. docker client는 CLI형식으로 dockerhost의 daemon에 명령을 줄수있다. docker registry는 docker image저장소로, image를 외부에서 가져올 수 있다. 대표적으로 docker hub가 있다. Docker Engi..
-
Docker) Union file system의 OverlayFS 실습해보기Cloud/Docker 2022. 9. 28. 01:41
실습 환경 : AWS console (2022/09), Visual Studio Code, Xshell7 실습 목적 : Union file system을 지원하는 OverlayFS 를 알아보고 실습해본다. Union file system 하나의 디렉토리 위치에 여러개의 디렉토리를 마운트하면, 하나의 통합된 디렉토리처럼 보이게하는 파일 시스템 Docker Image와 Docker container가 union file system 기반으로 관리되고 있다. Image layer 특징을 가진다. (마지막 레이어(RW)를 제외하고 다른 레이어들은 Read-only 성격을 갖는다.) Copy-on-write (COW) 특징을 가진다. (변경된 내용만 저장한다.) OverlayFS OverlayFS는 하나의 파일시..
-
Docker) namesapce 실습해보기Cloud/Docker 2022. 9. 28. 01:14
실습 환경 : AWS console (2022/09), Visual Studio Code, Xshell7 실습 목적 : 리눅스 컨테이너 기술 기반인 namespace에 대해 알아보고 실습해본다. namespace 프로세스별로 별도의 커널자원을 분할하는 Linux 커널 기능을 한다. namespace 종류로는 IPC, mnt, net, pid, pid_for_children, uts 가 있다. cgroup은 프로세스 사용량을 제한하는 목적이라면, namespace는 프로세스가 볼수있는 범위를 지정하는 목적이다. Container Container는 완전 격리된 프로세스로 cgroup으로 자원 사용량을 제한하거나, namespace를 통해 볼수있는 자원을 제한할 수 있다. namespace 종류 PID na..
-
Docker) cgroup (Control Group) 실습해보기Cloud/Docker 2022. 9. 27. 22:53
실습 환경 : AWS Console (2022/09), Visual Studio Code, Xshell 7 실습 목적 : 리눅스 컨테이너 기술기반인 cgroup에 대해 알아보고 cgroup 명령을 익혀본다. cgroup 시스템 자원의 사용정보를 수집 및 제한시키는 Linux 커널 기능을 한다. 모든 프로세스에 대해 리소스 사용정보를 수집한다. 제한 가능한 자원 - CPU, Memory, Network, Device, Block I/O cgroup 종류 cgroup 에서 사용 가능한 서브 시스템 blkio : 블록 장치(storage)에 대한 입/출력 제한 cpu : 스케쥴러를 이용해 해당 cgroup에 속한 프로세스 CPU 사용시간 제한 cpuacct : cgroup에 속한 CPU 자원정보 생성 cpus..
-
Docker) chroot (Change Root) 실습해보기Cloud/Docker 2022. 9. 27. 21:13
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : 리눅스 컨테이너 기술기반인 chroot 명령을 익혀보기 chroot Linux시스템의 root 디렉토리 위치를 변경한다. 디렉토리 생성 1. root user로 사용자 전환 # root 사용자로 전환 방법 1 su- # root 사용자로 전환 방법 2 sudo su 2. /(root) 디렉토리로 위치 이동 3. chroot 명령으로 root디렉토리를 설정할 디렉토리 생성 mkdir tomato 4. 생성한 디렉토리 위치로 이동 디렉토리 환경 맞추기 chroot 명령을 실행할 설정사용 shell에대한 바이너리가 root로 설정할 디렉토리에 존재하지 않다면, root로 설정할 디렉토리에 해당 shell ..
-
Docker) Docker를 알아보기Cloud/Docker 2022. 9. 27. 19:18
Docker란? Docker는 Container기술의 한 종류, Container 생성과 관리 역할을 한다. VM(Virtual Machine)처럼 완전히 독립된 실행환경(Container)을 생성한다. VM은 Hypervisor기반 가상화를 한다면, Docker는 Container engine을 통해 프로세스 단위 가상화를 한다. Docker는 host의 O/S를 사용하기 때문에, 운영체제를 설치하는것과 유사한 효과를 내면서 설치 용량이 작고 실행 속도도 빠르다. Docker Container는 소프트웨어 실행에 필요한 모든것을 한 파일 시스템안에 감싼 하나의 상자같은 모양이다. Docker Container안에는 런타임코드, 시스템도구, 시스템라이브러리등 서버에 설치되는 모든것이 들어가기 때문에 ho..
-
Cloud) ApplicationCloud/Cloud 2022. 9. 26. 19:56
Application service 제공을 위한 동작하는 프로그램, 사용자가 원하는 기능을 제공한다. Application 구성요소 Application binary : application 동작을 위한 필수기능만 포함되어 있다. Application 사용 공유 라이브러리 : 변수/함수/클래스 집합 ( 공유라이브러리는 보통 O/S에 미리 설치되어 있다) Application 설치 프로그램으로 설치를 할 때, 공유라이브러리 유무에 따라 설치과정이 쉬워지거나 복잡해질 수 있다. Application 동작 환경 (Application 배포) Traditional Deployment - 전통적인 application 배포동작 환경 - 물리적인 서버에 application이 동작할 수 있는 환경을 구축한다 (In..
-
Ansible) Playbook 2편Cloud/Ansible 2022. 9. 25. 21:16
Playbook 제어 순차 구조 - 명령이 기술된 순서로 순차적으로 수행하는 구조 선택 구조 - 조건에 따라 명령의 실행순서를 변경할 수 있는 구조 반복 구조 - 특정 명령을 일정 횟수동안 반복해서 수행하는 구조 반복문 Task를 반복해서 동작시킬때 반복문을 이용한다. 모듈의 키워드로 사용하며 with_* 와 loop 키워드를 사용한다. with_item with_nested with_sequence 패키지 관련 모듈은 반복문을 사용하지 않는것을 권장한다. 반복문에서 제공되는 목록을 참조하는 변수명은 항상 item을 사용한다. 조건문(선택문) Task가 특정조건에만 작업을 수행하도록 구성할때 이용한다. 조건문에 변수를 참조할때는 "{{변수명}}" 형식을 따르지 않고 바로 변수명 으로 쓴다. when 키워..
-
Ansible) Ansible 환경 구성해보기 4편Cloud/Ansible 2022. 9. 23. 14:15
실습 환경 : AWS Console (2022/09), Visual Studio Code 실습 목적 : Playbook을 활용해서 Managed Node 관리 [Playbook] 아주 간단한 웹 환경 구현 이전에 ansible 명령으로 구현한 내용을 Playbook과 ansible-playbook 명령으로 구현해보기 이번 구현에서는 /home/ec2-user/work-ansible 디렉토리에서 작업하였습니다. 이전 웹서버 환경 초기화 # remove-webserver.yml --- - name: remove web server hosts: public gather_facts: False become: yes tasks: # managed node httpd stop - name: stop httpd se..
-
Ansible) Playbook 1편Cloud/Ansible 2022. 9. 22. 20:45
Playbook 이란? 인벤토리에 정의된 managed node에서 무엇을 해야할 것인지 (서버구성정보)를 정의한 내용 자동화 절차를 기술한 코드 파일이다. YAML 포맷으로 표현 설정이나 프로세스에 대한 모델 정의를 표현한 최소한의 문법으로 구성 Playbook의 목표는 managed node 그룹을 잘 정의된 Ansible내에서 Task로 불리는 역할(role)에 매핑해 주는것 Playbook 파일 파일명에 대한 특별한 규칙은 없다. 임의의 이름으로 playbook파일을 작성하고 확장자는 .yml 부여 Playbook 실행 ansible-playbook [옵션] -i - 사용자가 지정한 위치의 인벤토리 파일 사용 -e - 추가변수지정, key=value 형식 Playbook 구조 playbook은 p..