728x90
반응형

DevOps 54

다중화(Redundancy) - 3 웹 서버의 다중화 (IPVS를 이용한 LB)

LB와 DNS 라운드로빈 차이 LB → 하나의 IP 주소에 대해 복수의 서버로 분산 DNS 라운드로빈 → 웹 서버마다 다른 글로벌 주소를 할당해야했음 → 웹 서버 측면에서의 다중화 구성이 필요 -> LB가 나온 배경 도입 장벽을 낮추기 위한 SaaS 상품이 많지만 유지 비용이 들어감 직접 OSS로 구축하는 방법도 존재 AWS - ELB를 많이 써봤다면 어떤 것인지 짐작이 갈 것임 예를 들면 아래와 같은 IPVS를 이용할 수 있음 IPVS Linux에서는 특별한 소프트웨어 없이 라우터로 이용 가능함 방화벽으로서도 충분히 운용가능한 패킷 필터링 기능이 있음 IPVS(IP Virtual Server) 라는 부하분산 기능을 제공하는 모듈도 포함되어 있음 LB의 종류 크게 L4, L7로 나눔 L4 → IP 주소 ..

DevOps 2023.12.21

다중화(Redundancy) - 2. 웹서버 다중화(LB 없이)

다중화 방법 중 DNS query를 이용한 다중화에 대해서 알아보자 DNS 라운드로빈의 단점 서버의 수만큼 글로벌 주소가 필요(Domain Name) IP 주소가 많이 필요함 균등하게 분산되는 것은 아님 예를 들어 모바일에서는 캐리어 게이트웨이라고 하는 프록시 서버를 경유함 프록시 서버에서는 일정시간 동안 캐싱되어 프록시 서버를 통한 접속은 항상 같은 서버로 접속됨 PC 브라우저에서도 DNS query 결과를 캐싱해서 균등하게 부하 분산이 된다고 보기 어려움 DNS TTL을 짧게 설정함으로 어느정도 개선할 수 있지만 클라이언트의 캐싱을 해제하는 것은 아니므로 근본적인 해결책은 아님 서버가 다운되어도 감지하지 못함 부하나 접속 수로 제어하는 것이 아님 즉, 다운된 서버로도 계속 부하 분산을 하는 문제가 생..

DevOps 2023.12.20

다중화(Redundancy) - 1. 다중화 개념

다중화란? 다중화(Redundancy)란, 장애가 발생하더라도 예비 운용 장비로 시스템의 기능을 지속할 수 있는 것을 말함 -> 즉, 서비스가 중단되지 않게 하는 것임 다중화의 본질 장애를 상정 장애를 대비해 예비 장비 준비 장애 발생 시, 예비 장비를 운용할 수 있는 운용체제 정비 장애를 상정하는 여러가지 경우 라우터 장애 라우터의 예비 장비(cold standby) 빈번하게 설정을 변경할 일이 없음 서버 장애 서버의 예비 장비 (hot standby) 빈번하게 설정이 바뀜 이 외에도 여러가지 장애가 존재하지만 여기서는 간단하게 2가지만 알아봄 장애 극복 극복을 위해 VIP를 이용함 즉, 웹서비스는 VIP로 제공하게 됨 *VIP : Virtual IP 장애 발생 → VIP를 인계 클라이언트는 정상적으로..

DevOps 2023.12.20

Prometheus - Practice

우선 프로메테우스는 Pulling이기 때문에 Exporter들과 통신할 수 있는 장비에 설치하는 것이 좋다. 즉, 아무 곳이나 설치해서 Exporter들과 하나씩 통신을 다시 뚫는 불상사는 없어야 할 것이다. 너무 많은 곳과 통신을 하면 성능이 안좋아지므로.. Prometheus를 다시 Pulling 하는 구조 또한 고려할 수 있다. 기본적으로 프로메테우스 오피셜 사이트에서 설명하는 프로메테우스는 아래와 같다. 고성능이 요구되는 분야 중 게임을 예로 들자 -> 물론 클라이언트의 성능이 높아야 되는 경우가 더 많지만 오히려 MMORPG와 같이 대규모 온라인 게임은 Server side도 고려해야할 것들이 많다. Naver Cloud Platform이 제공하는 그림을 보자 여기서 프로메테우스로 메트릭을 모니..

DevOps/Prometheus 2023.07.09

Filebeat - Dockerfile

맨날 다운받아서.. 서비스로 이용하다보니까 귀찮아서 도커파일로 말아서 어디서든 쓸 수 있게 만들고 싶다. 알아보자 Dockerfile # 공식적인 이미지 사용 FROM docker.elastic.co/beats/filebeat:7.13.2 # Filebeat Configuration 경로 환경변수 -> 여기서 정의한 ENV 같은 변수들은 Container 내부에서 쓰이거나 Dockerfile에서 쓰임 ENV FILEBEAT_CONFIG_PATH /usr/share/filebeat/filebeat.yml # Filebeat Configuration 파일 ★★★ COPY filebeat.yml ${FILEBEAT_CONFIG_PATH} # 추가적인 Configuration 파일 필요하면 복사 # COPY m..

DevOps/ELK 2023.07.01

Elasticsearch

정의 고가용성의 확장 가능한 문서 기반의 데이터 저장소 기존에는 Full-Text 검색엔진으로 활용했고 최근에는 웹/앱 서버의 로그나 매트릭을 모아서 집계, 분석하는데 사용하는 분석 엔진으로 사용됨 JSON이 Elasticsearch가 지원하는 유일한 형식 구조 Elasticsearch는 여러 대의 노드(서버)로 구성된 분산 데이터 저장소 각 노드는 역할에 따라 마스터 노드와 데이터 노드로 구분하며, 운영 환경에서는 최소 3대의 마스터 노드와 데이터 사용량을 기준으로 여러 대의 데이터 노드를 사용하여 클러스터를 배포 사용자가 저장하는 데이터는 인덱스에 저장되며 인덱스는 여러 개의 샤드로 분리되어 여러 노드에 걸쳐서 저장 이를 통해 데이터의 분산 저장과 복제본 관리 용도 검색 엔진 검색엔진으로 Elasti..

DevOps/ELK 2023.04.01

zsh vs bash

기본적으로 Unix 계열에선 bash Mac 계열에서는 zsh을 사용한다. 그렇기 때문에 기존에 터미널에서 작동하는 명령어가 그대로 실행되기를 기대하는 것은 어렵다. 그래서 차이를 알아보려고 한다. 차이를 알아보자 탄생 중요하지 않지만 참고는 하자. 더군다나 zsh은 학생이 만듦 bash Later in 1989, Brian Fox created the Bash shell for the GNU Project as a viable software alternative for the Bourne shell. Bash introduced significant improvements over its predecessor. Most prominent of these improvements was its capac..

DevOps/Shell 2023.03.01

Logging Application 비교

Fluentd Open-source Collect - Processing 여러 Input 여러 Output 가능 Elasticsearch, Kibana와 통합시켜 사용 가능 Rsylog Open-source Collect - Forward 여러 Input 여러 Output 가능 Filter, Processing 지원 syslog-ng Open-source Collect - Parse -Forward 가능 여러 source Input 여러 Target Output 가능 Filter, Processing 지원 Elasticsearch, Logstash, Graylog와 통합시켜 사용 가능 Log4j Open-source Logging For Java Application → 자바에 특화 여러 Source에서..

DevOps 2023.01.21
728x90
반응형