클라우드 엔지니어 73

IaC - (terraform)

1. IaC IaC(Infrastructure as Code)란 코드 형태로 인프라를 작성, 정의, 배포, 업데이트하는 것을 의미 인프라를 관리하는 모든 것을 코드 형태로 관리하는 것 1) IaC의 종류 (1) 애드 훅 스크립트 Python, Ruby, Bash 등의 스크립트 언어 (2) 구성 관리 도구 Ansible, Puppet, Chef 등 서버에 소프트웨어를 설치/관리하는 목적으로 사용 (3) 서버 템플릿 도구 Docker, Packer, Vargrant 등 (4) 서버 프로비전 도구 Terraform, CloudFormation 등의 기술 *프로비전이란? 프로비저닝(Provisioning) 이란 의미는 영어 직역한 그대로 "제공하는것" 어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제..

부하테스트

1) 부하테스트란? 우리가 만든 웹 서비스가 목표 응답시간 기준으로 얼마만큼의 동시 접속자 수를 견딜수 있는가를 테스트하기 위한 목적 동시접속자 수를 TPS로 환산하여 자원적인 관점으로 사용자 대비 용량 산정 즉, 사용자의 추이에 따라 적절한 자원을 배분하는 것, 더 나아가 병목구간을 찾아 제거하는 것 출시 전 대부분의 어플리케이션이 성능 저하를 일으키는 병목구간을 가지고 있다. 출시 전에 얼마나 이 부분을 많이 해결하느냐가 매우 중요 즉 부하를 발생시키는 것도 중요하지만, 병목구간이 무엇인지 찾아내는 것이 필요 APM (Application Performance Monitoring)과 인프라 모니터링(Infrastructure Monitoring)의 지표들을 읽어내고, 병목 구간의 문제가 코드의 잘못인..

카나리아 테스트

https://itnp.kr/post/canary-deployments-using-istio 에서 올려주신 블로그를 참조하여 카나리아를 테스트해보자 카나리아를 디폴드 네임스페이스에 테스트해보자 kubectl label ns default istio-injection=enabled #디폴트 네임스페이스에 istio추적 하게 라벨링설정 > namespace/default labeled hello서버 v1 버전을 업로드후 접속테스트를 진행한다. #httbin 통신용 파드 하나 추가 kubectl apply -f httbin.yml > pod/httpbin created #통신할 v1버전의 hello서버 디폴로이먼트와 서비스 추가 kubectl apply -f hello-deployment.yml > deplo..

쿠버네티스 서비스 매쉬(Service Mesh ,kiali,prometheus,Istio)

Service Mesh 0) MSA MicroService Architecture의 줄임말 하지만 마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스 마이크로서비스는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발 언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둔다. 독립된 서비스는 API를 통해서만 상호작용한다. *관련용어 : CQRS, DDD > ~/.bashrc source .bashrc istioctl --help 4) 이스티오 컨트롤 플레인 설치하기 클러스터에 이스티오의 컨트롤 플레인을 설치합니다. 옵션 없이 설치시 istiod와 ingress gateway만 있는 default profile을 다운합니다. istioctl x uninstall..

Flask , nginx , gunicon (port) ,jenkins ,k8s

https://myharu.tistory.com/201 Flask , nginx , gunicon (by sock) 더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하 blog.yos.kr 실습에 이어서 한다. sock에서 포트로 변경하여 서버를 분리하려고 한다. vi /etc/systemd/system/backend.service #ExecStart=/usr/local/bin/gunicorn --workers 1 --bind unix:backend.sock -m 007 wsgi:app #이소스를 아래로 변경 ExecStart=/usr/local/bin/gunicor..

Flask , nginx , gunicon (by sock)

더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하면 될거같다. 플라스크는 장고보다 가벼워서 MSA에 좋다고 하는데 그건 뭐 개발하는 팀에서 쓰고싶은 것을 쓰면되는데 장고는 배워봤고 이번시간에는 플라스크를 이용하려고한다. 프로젝트 실행해서 pip install Flask 플라스크 설치후 파이썬파일에 기본실행코드를 넣어보자 from flask import Flask app = Flask(__name__) #장고기준으로 함수 @app.route("/") def main(): return "Hello World!" #장고기준으로 url @app.route("/meet") ..

Jenkins , git , github 실습

파이참으로 개발자환경을 구축하여 개발자가 좋아하는 HTML을 작성하여 git으로 버전관리하여 github에 작업버전을 올리고 깃허브에 버전이 업데이트되면 jenkins에 버전정보가 등록되여 테스트후 AWS에 올라가는 실습 준비사항 1. ec2키파일을 ppk pem으로 바꿔서 준비(참고자료 참조) 2. 이전에 실습한 파이참 3. 깃과 깃허브 젠킨스 셋팅(기존강의자료 참조) SSH를 이용해서 배포 [1] 젠킨스에 플러그인 설치 대시보드 -> Jenkins 관리 -> Plugin Manager -> 설치 가능 -> Publish Over SSH 검색 후 체크 -> Download now and install after restart -> 설치가 끝나고 실행중인 작업이 없으면 Jenkins 재시작 [2] 젠킨스..

Jenkins , git , github 설치 및 연동

01. 젠킨스 0) 젠킨스란? 1) 자바 설치 dnf install java-11-openjdk-devel #centos sudo apt-get install openjdk-11-jdk #ubuntu 2) 레포지토리 추가 rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key cd /etc/yum.repos.d/ curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo 3) 젠킨스 설치 dnf install jenkins 4) 젠킨스 포트 변경 vi /usr/lib/systemd/system/jenkins.service Environment="JENKINS_PORT=8080" 를 Environmen..

쿠버네티스 헬름, 모니터링시스템구축 (Helm,Prometheus-Grafana)

Helm 1) Helm이란? Helm이란, Kubernetes 패키지 관리를 도와주는 것(패키지매니저)으로, yaml 파일의 모음이라고 할 수 있다. prod 환경과 개발환경과 같이 비슷하지만 이름과 리소스 사용만 조금 다른 환경을 구성할 때 변수를 사용하여 yaml 파일을 관리를 하거나 ex) mysql-prod, mysql-dev 에서 mysql-변수 오픈소스 프로그램을 개발하는 회사에서 본인들의 프로그램을 k8s 환경에 쉽게 배포하여 사용할 수 있게 활용하는 도구 2) Helm 설치 curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./ge..

쿠버네티스 모니터링 실습 셋팅을 위한 3티어 아키텍쳐 구축

실습 셋팅 3계층아키텍쳐 구성하는데 개발환경과 운영환경으로 구분하여 구축하고 모니터링시스템을 구축하는 실습이다. 네임스페이스로 구분하며 was 와 web은 부하분산시스템(오토스케일링으로)구축되게 설정하고 다음주에 모니터링 시스템을 구축하는것을 배울것이므로 개발환경과 운영환경부분 구축하는것을 실습하자 자 정리하자면 네임스페이스 두개가 필요하다 prod , dev 일단 나는 작업폴더를 백업하기 위하여 각각 노드1과 2를 개발환경과 운영환경으로 분리하였다. 이유는 3티어 아키텍쳐 데이타를 노드에 보관하기 위해서 이다. 그래서 구성은 아래와 같다 ===== 운영환경 셋팅 ==== 네임스페이스명 > prod 셋팅위치 > node1 /3tir/mysql > db서버 /3tir/was > was서버 홈디렉토리 /3t..

728x90
반응형