DevOps

S3이용 정적 웹 호스팅 - html 업로드, 호스팅 ( 퍼블릭 접속 가능하도록, 버킷 권한(정책) 설정 ) Cloud Front이용 - S3 직접 접속 막기(원본액세스), https 프로토콜 사용 ec2 설정 과정 1. backend 저장소 생성 2. ec2 접속 3. sudo yum update ( 레포지토리 업데이트 ) 4. sudo yum install -y git ( 깃 설치 ) 5. sudo yum install -y zsh ( zsh 설치 ) 6. sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ( OhMyZsh 설치 ) 7. sudo yum install -y util-linux-user..
👉 Docker demon 백그라운드에서 계속 대기(실행)하고 있다가, REST API 요청(명령어)을 처리하는 프로그램 ( 클라이언트, 서버 구조 ) Docker는 이를 이용해, 모든 컨테이너를 관리한다. ( 꺼져있으면 컨테이너 관리 불가 ) 1. 컨테이너 이미지 가져옴 2. 컨테이너 만드는 프로세스를 runc로 넘긴다? 3. 👉 Podman Docker와 유사한 컨테이너 관리 프로그램 도커와는 다르게, demon을 사용하지 않는다. ( 단일 프로세스 구조 ) 새로운 프로그램을 실행하는 것이 아니라, 기존에 존재하는 Systemd라는 백그라운드 프로그램에서 컨테이너를 관리한다. - 기존 컨테이너에 대한 제어장치와 새 컨테이너 생성 - 모든 사용자권한으로 컨테이너를 관리할 수 있다. ( 관리자 권한 필요..
1. 오토 스케일링 이미지로 컨테이너 생성 부하가 많으면 컨테이너 추가 생성 부하가 다시 적어지면 컨테이너 삭제 ( 레플리카 - 복사된 컨테이너 ) 2. 스케줄링 컨테이너를 생성할 기기(노드)를 효율적으로 지정 ex) 디스크 I/O가 많은 컨테이너 => 디스크가 SSD인 노드에 배치 ex) 클라우드 플랫폼의 가용영역 감지 => 원하는 가용영역에 배치 3. 리소스 관리 스케줄링을 하지 않은 컨테이너 자동관리 노드의 CPU, 메모리 여유 등의 리소스 상태에 따라, 컨테이너를 효율적으로 배치 리소스 상태에 따라, 새로운 노드 추가 삭제 4. 자동 복구 컨테이너 프로세스 감시 ( 모니터링 ) ( HTTP/TCP, 쉘 스크립트로도 컨테이너 상태 감시 가능 ) 컨테이너가 종료되면, 자동으로 재배포 ( 노드에 장애가..
👉 minikube란? 로컬 쿠버네티스를 쉽게 개발할 수 있게 해주는 도구 ( 로컬 - 하나의 기기에서 구성된 클러스터 ) minikube 설치 minikube start minikube is local Kubernetes minikube.sigs.k8s.io 👉 클러스터 사용 클러스터 만들기 minikube start 클러스터 가져오기 kubectl get po -A kubectl 다운 minikube kubectl -- get po -A 쉘 명령어 단축 alias kubectl="minikube kubectl --" 클러스터 대시보드 사용 ( 웹 도구 ) minikube dashboard 👉 애플리케이션 배포 Deployment 생성, NodePort로 외부 노출 kubectl create deplo..
👉 Swarm 이란? Docker 컨테이너 관리 도구 ( 쿠버네티스 같은 것 ) 초기화 docker swarm init 도커 서비스 실행 docker service create --name demo alpine:latest ping 8.8.8.8 실행중인 서비스 확인 docker service ps demo 서비스 로그 확인 docker service logs demo 서비스 종료 docker service rm demo
👉 이미지 파일 취약점 검사 이미지 파일에 포함된 모듈의 취약점을 검사해준다. ( Snyk ) Snyk 가입, 로그인 docker scan --login 이미지 파일 검사 docker scan 👉 이미지 파일 히스토리 검사 도커 이미지파일이 만드는 컨테이너 정보 확인 docker image history # --no-trunc : 전체 내용 보기 👉 이미지 캐싱이란? docker는, 기존의 이미지를 업데이트 하고 싶을때 변경사항이 없는 부분은 제외하고 업데이트 한다. 이를 이용하여, 빌드시간을 눈에 띄게 줄일 수 있다. ( package.json 종속성 패키지를 다시 설치할 필요없도록 만들기. ) 기존 도커파일 FROM node:12-alpine RUN apk add --no-cache python2 g..
👉 컨테이너 네트워킹 서로 다른 컨테이너끼리 통신할 수 있도록하는 기능 네트워크 만들기 ( 통신 창구 ) docker network create 컨테이너와 연결하기 docker network connect # --alias : 컨테이너에 별칭 붙이기 ( 네트워크가 구분함 ) # --driver-opt : 개발자 옵션 # --ip : 컨테이너에게 ip 할당 🚩 네트워크 연결해 컨테이너 생성 ( MySQL ) 1. Linux docker run -d \ --network todo-app --network-alias mysql \ -v todo-mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=secret \ -e MYSQL_DATABASE=todos \ mysql:5..
👉 볼륨이란? ( Volume ) 컨테이너의 특정 폴더를, 호스트 시스템(OS)에 연결해, 컨테이너가 삭제되더라도, 데이터를 유지할 수 있도록하는 것 ( docker가 자동으로 host 경로 설정 ) 특징 컨테이너에서 host 폴더에 파일을 쓸 수 있다. 볼륨 만들기 docker volumn create 볼륨 연결된 컨테이너 만들기 # 연결할 경로는, docker 컨테이너 속 경로기준이다. docker run -dp 3000:3000 -v : 볼륨 정보 확인하기 docker volume inspect todo-db [ { "CreatedAt": "2022-07-11T10:47:03Z", "Driver": "local", "Labels": {}, # 실제로 파일이 저장된 OS경로 ( docker VM의 경..
👉 Compose 란? Docker 컨테이너의 설계도 ( YAML 파일 ) ( 명령으로 컨테이너 무제한 생성 ㅋㅋ ) 👉 작성하기 만들고 싶은 컨테이너 ( 2개 ) docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ --network todo-app \ -e MYSQL_HOST=mysql \ -e MYSQL_USER=root \ -e MYSQL_PASSWORD=secret \ -e MYSQL_DB=todos \ node:12-alpine \ sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev" docker run -d \ --network todo-app --network-ali..
MOONCO
'DevOps' 카테고리의 글 목록 (2 Page)