본문 바로가기

Personal

(107)
90DaysOfDevOps Monitoring 81일차 Day 81 - Fluentd & FluentBitFluentd- 오픈소스 통합 로깅 레이어깨끗하고 안정적인 로깅 파이프라인을 구축하는 데 적합한 네 가지 주요 기능1. JSON을 사용한 통합 로깅: json으로 구조화하려고 노력한다.2. 플러그 가능한 아키텍처: 300개 이상의 플러그인으로 로그를 즉시 더 효과적으로 활용 가능3. 최소한의 리소스 필요: C와 Ruby의 조합으로 작성된 30~40MB의 메모리에서 실행되며 초당 13,000개의 이벤트를 처리할 수 있다.4. 내재된 안정성: 메모리 및 파일 기반 버퍼링을 지원하여 데이터 손실을 방지한다.위의 3가지 로깅 데이터 유형을 허용하고 이를 수집, 처리하여 대상(예: Elastic, MongoDB 또는 Kafka 데이터베이스)으로 로그를 전송할 수 ..
90DaysOfDevOps Monitoring 79~80일차 Day 79 - The Big Picture: Log Management로그 관리 및 집계- 로그 집계다양한 서비스에서 애플리케이션 로그를 수집하고 태그를 지정하여 쉽게 검색할 수 있는 단일 대시보드에 저장하는 방법ELK- 3가지 구성 요소Elasticsearch: 텍스트 쿼리를 위한 효율적인 데이터베이스Logstash: 모든 서비스에서 로그를 전송받는 대상Kibana: Elasticsearch에 연결하는 웹 서버로그 관리 도구 예시- Elasticsearch- Logstash- Kibana- Fluentd: 인기 있는 오픈 소스 선택- Datadog: 대기업에서 일반적으로 사용되는 호스팅 제품- LogDNA: 호스트형 제품- Splunk- 클라우드 제공 업체: AWS CloudWatch Logs, MS..
90DaysOfDevOps Monitoring 77~78일차 Day 77 - The Big Picture: Monitoring모니터링- 모니터링이란?전체 인프라를 면밀히 주시하는 프로세스- 필요한 이유애플리케이션 서버, 데이터베이스 서버, 웹 서버와 같은 다양한 특수 서버를 포함하여 수천 대의 서버를 관리할 때, 그리고 퍼블릭 클라우드나 K8S를 비롯한 다양한 플랫폼으로 인해 복잡하다.- 3가지 방법1. 모든 서버에 수동으로 로그인하여 서비스 프로세스 및 리소스에 대한 모든 데이터 확인2. 서버에 로그인하고 데이터를 확인하는 스크립트 작성3. 모니터링 솔루션 이용- 쉽게 사용할 수 있는 모니터링 솔루션: Nagios, ZabbixNagios- 인프라 모니터링 도구- 도구의 오픈소스 버전은 Nagios core이며, 상용 버전은 Nagios XI이다.- 모니터링으로..
90DaysOfDevOps IaC 60~62일차 Day 60 - Docker Containers, Provisioners & ModulesDocker 컨테이너- nginx 컨테이너에 로컬에서 액세스할 수 있도록 하는 테라폼 코드이다.Provisioners- 선언적일 수 없는 경우에 배포에 파싱할 수 있는 방법을 제공하기 위해 존재한다.모듈- 함께 사용되는 여러 리소스를 위한 컨테이너이다.- 모듈은 동일한 디렉터리에 있는 .tf 파일 모음으로 구성된다.Day 61 - Kubernetes & Multiple Environments간단한 Kubernetes 데모- 쿠버네티스 클러스터 내에 3개의 새로운 리소스, 네임스페이스, 배포 및 서비스를 생성하는 코드이다.- 네임스페이스에 nginx가 추가된 걸 볼 수 있다.Terraform workspaces: 단일..
90DaysOfDevOps IaC 58~59일차 Day 58 - HashiCorp Configuration Language (HCL)HashiCorp 구성 언어(HCL)- 공급자: main.tf- Terraform 리소스: 하나 이상의 인프라 개체(EC2, VPC 등)를 설명하는 구성 요소- terraform init 명령어: 정의된 공급자를 다운로드하여 설치- terraform plan 명령어: 인프라에 적용하려는 변경 사항을 미리 볼 수 있게 해준다.- terraform apply 명령어: 작업을 수행하는 명령어로 yes를 입력해야 코드가 배포된다.- 코드에서 정의한 출력이 Outputs: 에 출력된다.- terraform destroy 명령어: 프로젝트에서 생성한 리소스를 파괴한다.- Terraform state: .tfstate 확장자로 디렉터..
90DaysOfDevOps IaC 56~57일차 Day 56 - The Big Picture: IaC IaC- 코드를 사용하여 전체 환경을 재구축할 수 있다.- 여러 테스트 및 개발 환경의 복잡성을 추가하는 모든 작업을 처음부터 끝까지 자동화- 인프라를 자동으로 프로비저닝소프트웨어 초기 설치 및 구성- 새 서버 스핀업- 네트워크 구성- 로드 밸런서 생성- 인프라 수준에서 구성IaC 도구의 차이점- 절차적: 단계별 지침 / 서버 생성 > 서버추가 > 변경하기- 선언적: 결과 선언 / 서버 2개Day 57 - An intro to TerraformTerraform 소개- 인프라를 안전하고 효율적으로 구축, 변경, 버전 관리할 수 있는 도구- 수백 개의 클라우드 서비스를 관리하기 위한 일관된 CLI workflow를 제공하는 코드 소프트웨어 도구로서 오픈 ..
90DaysOfDevOps 쿠버네티스 49~50일차 Day 49 - The Big Picture: KubernetesKubernetes- 컨테이너 오케스트레이터로 애플리케이션과 서비스의 부하에 따라 자동화된 방식으로 확장 및 축소- 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식 가능하고 확장 가능한 오픈소스 플랫폼- 선언적 구성과 자동화를 모두 용이하게 한다.[제공하는 이점]- Services discovery 및 로드 밸런싱: DNS 이름 또는 IP 주소를 사용하여 컨테이너를 노출할 수 있다. 트래픽이 많을 경우 로드 밸런싱하고 분산하여 배포가 안정적으로 이루어지도록 함 - 스토리지 오케스트레이션: 로컬 스토리지, 퍼블릭 클라우드 제공자 등 원하는 스토리지 시스템 마운트- 자동화된 롤아웃 및 롤백: 배포된 컨테이너에 대해 원하는 상태를 설명할 수 ..
90DaysOfDevOps 39~41일차 Day 39 - Viewing, unstaging, discarding & restoring보기, 스테이징 해제, 삭제 및 복원- git diff --staged 명령어로 우리가 수행한 모든 변경 사항과 추가하거나 삭제한 모든 새 파일이 표시된다.히스토리 보기- git log 명령어로 작업 중인 branch와 작성자, 날짜, commit 메시지를 확인할 수 있다.commit 보기- git show 명령어를 사용하면 commit을 검사하고 볼 수 있다.파일 스테이징 해제- git add . 을 사용했지만 아직 commit 하고 싶지 않은 경우 git restore --staged [파일 이름] 으로 해제가 가능하다.로컬 변경 사항 삭제하기- 변경을 했지만 변경이 마음에 들지 않아서 버리고 싶을 때 git ..