DevOps 17

성능 테스트

👣 개념 부하 테스트 1 시간 정도의 부하를 가하면서 TPS[Transaction Per Second]와 응답 시간을 구하는 테스트. 내구성 테스트 8 시간 이상 부하를 가함 스트레스 테스트 피크 트래픽의 2배 부하를 가함 스파이크 테스트 피크 트래픽 이상의 부하를 반복적으로 증가킴 확장성 테스트 더이상 확장하지 못하도록 막는 시스템의 최대치가 무엇인지 확인 볼륨 테스트 영화 데이터처럼 많은 용량의 데이터가 요청 혹은 응답을 대비하는 테스트 👣 툴 비교 JMeter java로 구성됨. .jmx 파일 생성 후 CLI로 실행 가능 HTTP(S), FTP, SOAP 등등의 다양한 프로토콜 지원 nGrinder Jython or Groovy 스크립트를 사용해서 시나리오 작성 Custom Library로 테스트 ..

DevOps 2024.01.17

Docker 관련 명령어 정리

👣 docker run $ docker run () () () -d | 데몬 모드, 백그라운드에서 동작 -e | 환경 변수 주입, -e FOO=bar -p | 포트 설정, 80:8080, [호스트:컨테이너] -v | 볼륨 지정 --name | 컨테이너 이름 지정 👣 docker ps -a | 모든 컨테이너 나열 -s | size 표시 -q | container ID만 표기 -n | 시간 내림차순으로 마지막 n개를 표기함 👣 docker exe docker exec [OPTIONS] CONTAINER COMMAND [ARG...] -e | 환경 변수 부여 -i | 대화형 모드, 명령 실행 결과를 창으로 띄움 -d | 쉘이 블록되지 않고 명령을 계속 실행 -t | 유사 터미널 할당

DevOps 2024.01.17

Grafana

👣 개요 Data Visualization 도구. 여러 도구들과 함께 사용되고 다양한 대시보드 패널을 제공. 👣 Alerting - Alert Rule | Metric에 1개 이상의 Evaluation Rule 적용. 이것을 바탕으로 이벤트 발생 가능. - Labels | - Contact Point | 알람을 받기 위한 수단 지정. Ex) Email, Slack - Notification Policy | 어떤 Alert Rule에 Contact Point에 맵핑할 것인지 지정 - Silences | 특정 기간과 Label 등을 지정해서 알람을 받지 않도록 지정. 👣 Alerting Pipeline

DevOps 2024.01.14

Prometheus

👣 개요 모니터링 경고를 제공하는 시계열 오픈 소스 모니터링 도구 - Pull 방식의 데이터 수집[Push 방식도 가능] - PromQL 쿼리 사용 - 시계열은 Metric 이름과 Key-Value 쌍으로 식별됨. 👣 Pull Vs Push Pull Type Prometheus 서버가 대상 시스템에게 요청을 보내 Metrics를 받습니다. Push Type Prometheus 서버에게 대상 시스템이 수시로 Metrics를 전달합니다. 해당 경우, Prometheus 서버가 작동하는지 여부를 알 수 없이 계속 전달한다는 단점이 있습니다. 👣 Prometheus Components 👣 Exporter exporter란? 대상 시스템의 상황을 메트릭으로 가져갈 수 있도록 정보를 수집하고 API를 구비해 요청 ..

DevOps 2024.01.14

ELK

👣 개요 Elasticsearch, Logstash, Kibana의 약자를 따서 ELK Stack이라고 부름. 로그 수집 | Logstash, Beats 로그 저장 | Elasticsearch 로그 시각화 | Kibana 👣 Elasticsearch Apache Lucene 기반의 실시간 분산 검색 엔진 - 정형, 비정형 데이터 검색 기능 - 역색인 기반 빠른 검색 속도 지원 - Cluster 지원으로 고가용성 확보 데이터 구조 - Document | RDBMS의 Row에 대응. 데이터 최소 단위. - Field | RDBMS의 Column에 대응. Document의 데이터 타입 - Mapping | Field 속성을 정의 및 Indexing 방법 정의 - Index | RDBMS의 Table에 대응. ..

DevOps 2024.01.14

Github Actions

👣 특이 사항 장점 무료로 CI 과정을 수행할 수 있음. 별도의 서버가 필요하지도 않고 사용 비용을 내지 않아도 됨. Github와 쉽게 통합됨. 이미 마켓에 많이 공유되는 작업들이 존재함. 단점 해당 방식은 원래 CI만 수행할 수 있음. 환경 변수 관리가 어려움. 👣 구성 요소 Workflow Job을 포함하는 프로세스 Event workflow를 동작시키는 trigger Job 동일한 runner에서 실행되는 step 모음 Runner workflow를 수행하는 서버 Artifact 작업 완료 후 보관하는 결과물

DevOps 2024.01.12

Terraform

👣 특징 - Hashicorp 회사에서 오픈 소스로 개발 중인 laC 도구 - HCL 언어를 사용해서 리소스 선언 - CloudFormation과 달리 AWS, Azure, GCP와 같은 클라우서 서비스에 대해 Provider 방식으로 제공 - 인스턴스, 네트워크와 같은 Low-Level 뿐만 아니라 DNS, SaaS와 같은 High-Level 요소도 관리 가능. - 변경 계획과 변경 적용을 분리해서 실수를 줄일 수 있다. - Execution Plan - 종속성 그래프를 작성해서 해당 변경이 인프라에 어떤 영향을 줄 수 있는지 확인 가능 - Resource Graph 👣 배포 workflow 1. Refresh - 현재 인프라 확인. 2. Plan - 예상되는 변경점 미리 확인 3. Apply - 선후..

DevOps 2024.01.12

코드형 인프라

👣 laC - Infrastructure as Code AWS를 운영하면서 어떤 절차에 의해 서버 및 인프라를 구축했는지 문서화가 어려운 경우가 많다. 이런 경우, 운영 기록을 코드로 남길 수 있다면 다음과 같은 이점을 가질 수 있다. 1. 버전 관리 가능 코드로 인프라 운영 기록을 남길 수 있다면 Git을 이용해서 버전관리를 할 수 있다. 버전 관리가 가능하다는 것은 롤백이 쉽다는 것이며 문서화가 용이하다는 뜻이다. 2. Human Error 감소 한번 설정한 인프라 운영 방법을 문서화 한다고 한들 누락에 의해서 혹은 UI 변경에 의해서 재현하기 어려운 경우가 발생한다. 코드로 정의하고 나면 굳이 다시 해석할 것 없이 그대로 코드를 실행시키면 된다. 하지만, 언제나 그렇듯 항상 이점만 있는 것은 아니다..

DevOps 2024.01.12

CI/CD 정리

👣 CI/CD란? CI : 지속적 통합이라는 의미로, '코드 변경 사항'이 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것. 기능 추가 혹은 수정을 매우 빈번하게 하는 경우 코드 검증 시간을 단축. CD : 지속적 배포라는 의미로, 개발자의 변경 사항이 프로덕션 환경까지 릴리즈 되는 것. - continuous delivery : 자동으로 배포 X - continuus deployment : 자동으로 배포 O 👣 CI/CD LifeCycle 1. Design 2. Develope 3. Build 4. Test 5. Deploy 6. Monitor 👣 무중단 배포 전략 Blue-Green 배포 Blue는 새롭게 생성한 어플리케이션 인스턴스, Green은 기존에 사용하던 인스턴스. Blue가 서버에 완전..

DevOps 2024.01.12