whddbsml의 등록된 링크

키자드에 등록된 총 83개의 포스트를 확인하실 수 있습니다.

Naver Blog

쿠버네티스 개요

쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 플랫폼입니다. 간단히 설명하면 다음과 같습니다 컨테이너 오케스트레이션: 여러 컨테이너를 효율적으로 관리하고 조정합니다. 자동화된 배포 및 확장: 애플리케이션을 쉽게 배포하고 필요에 따라 자동으로 확장할 수 있습니다. 선언적 구성: 원하는 상태를 정의하면 쿠버네티스가 실제 상태를 그에 맞게 조정합니다. 자가 치유: 장애가 발생한 컨테이너를 자동으로 교체하거나 재시작합니다. 서비스 디스커버리 및 로드 밸런싱: 트래픽을 여러 컨테이너에 분산시킵니다. 쿠버네티스는 복잡한 마이크로서비스 아키텍처를 효과적으로 관리하고, 개발자와 운영팀의 작업을 간소화하는 데 도움을 줍니다. 쿠버네티스를 위한 사전지식 컨테이너 기술: Docker와 같은 컨테이너 기술에 대한 기본적인 이해가 필요합니다. 리눅스 기초: 쿠버네티스는 주로 리눅스 환경에서 실행되므로, 리눅스 명령어와 개념에 대한 지식이 중요합니다. 네트워킹 기초: IP

Naver Blog

쿠버네티스 구성요소

쿠버네티스의 주요 구성요소 1. 마스터 노드 구성요소 API 서버 (kube-apiserver): 쿠버네티스 API를 노출하는 중앙 관리 지점 etcd: 모든 클러스터 데이터를 저장하는 분산 키-값 저장소 스케줄러 (kube-scheduler): 새로 생성된 파드를 노드에 할당 컨트롤러 매니저 (kube-controller-manager): 다양한 컨트롤러를 실행하여 클러스터 상태를 관리 2. 워커 노드 구성요소 kubelet: 각 노드에서 실행되며 컨테이너가 파드에서 실행되도록 관리 kube-proxy: 네트워크 규칙을 유지하고 연결 포워딩을 수행 컨테이너 런타임: 컨테이너를 실행하는 소프트웨어 (예: Docker, containerd) 3. 애드온 DNS: 클러스터 내 DNS 서비스 제공 대시보드: 웹 기반 UI를 통한 클러스터 관리 컨테이너 리소스 모니터링: 컨테이너의 리소스 사용량 모니터링 (예: Metrics Server) 클러스터 로깅: 컨테이너 로그 수집 및 중앙 집중화

Naver Blog

쿠버네티스 Pod 개요

Pod란? Pod는 쿠버네티스의 가장 작은 배포 단위입니다. 하나 이상의 컨테이너를 포함하며, 이들 컨테이너는 같은 호스트에서 실행되고 리소스를 공유합니다. Pod의 주요 특징 하나 이상의 컨테이너를 포함할 수 있습니다. 같은 Pod 내의 컨테이너들은 네트워크 네임스페이스와 스토리지 볼륨을 공유합니다. 쿠버네티스에 의해 관리되고 스케줄링됩니다. 일시적인 특성을 가지며, 언제든 삭제되거나 대체될 수 있습니다. Pod vs 컨테이너 Pod와 컨테이너의 주요 차이점: Pod는 여러 컨테이너를 포함할 수 있지만, 컨테이너는 단일 애플리케이션 인스턴스입니다. Pod는 쿠버네티스의 추상화 개념이며, 컨테이너는 실제 실행 환경입니다. Pod는 쿠버네티스에 의해 관리되고 스케줄링되는 반면, 컨테이너는 컨테이너 런타임(예: Docker)에 의해 직접 관리됩니다. Pod의 생명주기 생성: Pod가 생성되고 스케줄링됩니다. 실행: 컨테이너가 시작되고 애플리케이션이 실행됩니다. 종료: Pod가 삭제되거나

Naver Blog

쿠버네티스 Service 개요

Service: 쿠버네티스에서 Service는 Pod 집합에 대한 단일 진입점을 제공합니다. 이는 로드 밸런서의 역할을 수행합니다. 실제 네트워크 장비와 비교하면, L4 스위치(로드 밸런서)와 유사한 기능을 합니다. L4 스위치가 IP 주소와 포트 정보를 기반으로 트래픽을 분산시키는 것처럼, Service도 Pod 간에 트래픽을 분산시킵니다. 쿠버네티스의 Service 예시를 살펴보겠습니다: apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 type: ClusterIP 이 예시에서: metadata.name: 서비스의 이름을 "my-service"로 지정합니다. spec.selector: 이 서비스가 트래픽을 라우팅할 Pod를 선택합니다. 여기서는 "app: MyApp" 레이블을 가진 Pod를 대상으

Naver Blog

쿠버네티스 볼륨(PV, PVC) 개요

볼륨(Volume)이란? 쿠버네티스에서 볼륨은 컨테이너에 데이터를 저장하고 공유하는 방법을 제공합니다. 컨테이너는 기본적으로 상태를 저장하지 않기 때문에, 볼륨을 사용하여 데이터의 영속성을 보장합니다. 영구 볼륨(Persistent Volume, PV) PV는 관리자가 프로비저닝하거나 스토리지 클래스를 사용하여 동적으로 프로비저닝한 클러스터의 스토리지 조각입니다. PV는 Pod의 생명주기와는 독립적으로 존재하는 클러스터 리소스입니다. 영구 볼륨 클레임(Persistent Volume Claim, PVC) PVC는 사용자의 스토리지 요청입니다. Pod는 PVC를 사용하여 스토리지를 요청하고, PV와 연결됩니다. PVC는 특정 크기 및 접근 모드의 스토리지를 요청할 수 있습니다. PV와 PVC의 관계 PV와 PVC는 리소스와 요청의 관계입니다. PV는 클러스터에서 사용 가능한 스토리지 리소스이고, PVC는 사용자가 그 리소스를 요청하는 방식입니다. 이를 통해 스토리지의 프로비저닝과 사용

Naver Blog

쿠버네티스 Namespace

Namespace란? Namespace는 쿠버네티스 클러스터 내에서 리소스 그룹을 논리적으로 분리하는 방법입니다. 이를 통해 여러 사용자나 팀, 프로젝트가 동일한 클러스터를 공유하면서도 서로의 리소스를 침범하지 않고 관리할 수 있습니다. Namespace의 주요 특징 리소스 격리: 각 Namespace는 독립된 환경처럼 작동하여 리소스 충돌을 방지합니다. 접근 제어: Namespace별로 다른 접근 권한을 설정할 수 있어 보안을 강화할 수 있습니다. 리소스 할당: 각 Namespace에 리소스 쿼터를 설정하여 사용량을 제한할 수 있습니다. 이름 중복 허용: 서로 다른 Namespace에서는 동일한 이름의 리소스를 가질 수 있습니다. 기본 Namespace 쿠버네티스는 기본적으로 다음과 같은 Namespace를 제공합니다: default: 별도로 Namespace를 지정하지 않은 리소스들이 속하는 기본 Namespace kube-system: 쿠버네티스 시스템에서 생성한 객체들을 위한

Naver Blog

[Linux] Setuid Setgid Sticky bit

리눅스 파일 시스템에서는 Setuid, Setgid, 그리고 Sticky bit이라는 특수한 권한 설정 옵션을 제공합니다. 이들은 각각 파일 및 디렉토리에 대한 권한 설정을 제어하는 역할을 합니다. Setuid (Set User ID) Setuid는 파일에 대해 소유자의 권한이 아닌 파일 소유자의 권한으로 실행되도록 설정하는 권한입니다. 즉, 파일을 실행하는 사용자는 파일의 소유자 권한을 갖게 됩니다. 이 권한은 일반적으로 시스템 파일에 대해서만 사용됩니다. 예를 들어, 패스워드 파일 등을 실행할 때 필요한 권한을 부여합니다. Setgid (Set Group ID) Setgid는 디렉토리에 대해 파일 생성 시 파일의 그룹 소유자가 디렉토리의 그룹 소유자로 설정되도록 하는 권한입니다. 즉, 디렉토리의 그룹 소유자 권한으로 파일이 생성됩니다. 이 권한은 파일 공유나 프로젝트 작업에서 특정 그룹의 권한을 부여하는데 사용됩니다. Sticky bit Sticky bit는 디렉토리에서만 사용되

Naver Blog

쿠버네티스 Deployments 개요

쿠버네티스 Deployment 개요 Deployment는 쿠버네티스에서 애플리케이션의 선언적 업데이트를 관리하는 핵심 리소스입니다. Deployment를 사용하면 애플리케이션의 원하는 상태를 정의하고, 쿠버네티스가 실제 상태를 원하는 상태로 변경하도록 할 수 있습니다. Deployment의 주요 특징 선언적 업데이트: YAML 또는 JSON 파일을 통해 애플리케이션의 원하는 상태를 정의합니다. 롤링 업데이트: 무중단 업데이트를 위한 롤링 업데이트 전략을 제공합니다. 롤백: 문제 발생 시 이전 버전으로 쉽게 롤백할 수 있습니다. 스케일링: 애플리케이션의 레플리카 수를 쉽게 조정할 수 있습니다. apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labe

Naver Blog

쿠버네티스 DaemonSet 개요

쿠버네티스 DaemonSet이란? DaemonSet은 쿠버네티스의 워크로드 리소스 중 하나로, 클러스터의 모든 노드(또는 특정 노드)에 Pod의 복사본을 하나씩 실행하도록 보장합니다. DaemonSet의 주요 특징 클러스터의 모든 노드에 Pod를 자동으로 배포 새로운 노드가 클러스터에 추가될 때 자동으로 Pod 생성 노드가 클러스터에서 제거될 때 해당 Pod도 자동으로 제거 특정 노드에만 Pod를 배포하도록 설정 가능 (노드 선택기 사용) DaemonSet의 일반적인 사용 사례 클러스터 스토리지 데몬 실행 (예: glusterd, ceph) 로그 수집 데몬 실행 (예: fluentd, logstash) 노드 모니터링 데몬 실행 (예: Prometheus Node Exporter, collectd) DaemonSet vs ReplicaSet DaemonSet은 모든 (또는 일부) 노드에 정확히 하나의 Pod를 실행하는 반면, ReplicaSet은 지정된 수의 Pod 복제본을 유지합니다

Naver Blog

쿠버네티스 StatefulSet 개요

StatefulSet이란? StatefulSet은 쿠버네티스에서 상태를 가진 애플리케이션을 관리하기 위한 워크로드 API 오브젝트입니다. Pod의 고유성과 순서를 보장하며, 영구 스토리지를 사용하는 애플리케이션에 적합합니다. StatefulSet의 주요 특징 안정적이고 고유한 네트워크 식별자 안정적이고 영구적인 스토리지 순차적이고 정돈된 배포와 스케일링 순차적이고 자동화된 롤링 업데이트 StatefulSet vs Deployment StatefulSet은 상태를 유지해야 하는 애플리케이션에 적합한 반면, Deployment는 상태가 없는 애플리케이션에 더 적합합니다. StatefulSet은 각 Pod에 고유한 식별자를 부여하고 순서를 유지하지만, Deployment는 Pod를 서로 교체 가능한 것으로 취급합니다. StatefulSet 사용 사례 데이터베이스 (예: MySQL, PostgreSQL) 분산 시스템 (예: Kafka, ZooKeeper) 기타 상태를 유지해야 하는 애플리케

Naver Blog

쿠버네티스 ConfigMap 개요

쿠버네티스 ConfigMap 개요 ConfigMap은 쿠버네티스에서 설정 데이터를 애플리케이션 코드와 분리하여 저장하고 관리하는 데 사용되는 API 오브젝트입니다. 이를 통해 컨테이너화된 애플리케이션의 구성을 더욱 유연하고 이식성 있게 만들 수 있습니다. ConfigMap의 주요 특징 키-값 쌍 형태로 설정 데이터 저장 환경 변수, 커맨드라인 인자, 설정 파일 등 다양한 형태로 사용 가능 애플리케이션 코드 변경 없이 설정 변경 가능 여러 Pod에서 동일한 설정을 재사용 가능 ConfigMap 생성 예시 apiVersion: v1 kind: ConfigMap metadata: name: game-config data: game.properties: | enemies=aliens lives=3 enemy.types=flying,ground,swimming user-interface.properties: | color.good=purple color.bad=yellow allow.text

Naver Blog

쿠버네티스 Secret 개요

쿠버네티스 Secret 개요 쿠버네티스 Secret은 비밀번호, OAuth 토큰, SSH 키와 같은 민감한 정보를 저장하고 관리하기 위한 객체입니다. Secret을 사용하면 애플리케이션 코드에서 민감한 정보를 분리하여 보안을 강화할 수 있습니다. Secret의 주요 특징 Base64로 인코딩된 데이터를 저장합니다. Pod에 환경 변수나 볼륨으로 마운트할 수 있습니다. 네임스페이스에 종속되어 있어 같은 네임스페이스 내에서만 접근 가능합니다. 메모리에 저장되어 디스크에 기록되지 않습니다 (etcd에는 암호화되어 저장). Secret 생성 예시 apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: YWRtaW4= # base64 encoded "admin" password: MWYyZDFlMmU2N2Rm # base64 encoded password Secret 사용 방법 1. 환경 변수로 사용

Naver Blog

쿠버네티스 Readiness

쿠버네티스 Readiness Probe 개요 Readiness Probe는 쿠버네티스에서 컨테이너가 요청을 처리할 준비가 되었는지 확인하는 메커니즘입니다. 이를 통해 트래픽을 받을 준비가 된 파드에만 서비스 요청을 보냅니다. Readiness Probe 주요 옵션 1. 프로브 유형 httpGet: 지정된 HTTP 엔드포인트로 GET 요청을 보냅니다. tcpSocket: 지정된 포트에 TCP 연결을 시도합니다. exec: 컨테이너 내에서 지정된 명령을 실행합니다. 2. 타이밍 설정 initialDelaySeconds: 컨테이너 시작 후 프로브 시작까지의 대기 시간 periodSeconds: 프로브 실행 주기 timeoutSeconds: 프로브 타임아웃 시간 3. 임계값 설정 successThreshold: 실패 후 성공으로 간주되기 위한 연속 성공 횟수 failureThreshold: 실패로 간주되기 위한 연속 실패 횟수 Readiness Probe 설정 예시 readinessProb

Naver Blog

쿠버네티스 Liveness Probe 개요

쿠버네티스 Liveness Probe 개요 Liveness Probe는 쿠버네티스에서 컨테이너의 건강 상태를 주기적으로 확인하는 메커니즘입니다. 이를 통해 애플리케이션이 정상적으로 동작하고 있는지 모니터링하고, 문제가 발생했을 때 자동으로 재시작할 수 있습니다. Liveness Probe 주요 옵션 1. 프로브 유형 httpGet: 지정된 HTTP 엔드포인트로 GET 요청을 보내 상태를 확인합니다. tcpSocket: 지정된 포트에 TCP 연결을 시도하여 상태를 확인합니다. exec: 컨테이너 내에서 지정된 명령을 실행하여 상태를 확인합니다. 2. 타이밍 설정 initialDelaySeconds: 컨테이너 시작 후 프로브 시작까지의 대기 시간 periodSeconds: 프로브 실행 주기 timeoutSeconds: 프로브 타임아웃 시간 3. 임계값 설정 failureThreshold: 연속 실패 횟수가 이 값을 초과하면 컨테이너를 재시작합니다. successThreshold: 실패

Naver Blog

쿠버네티스 Labels과 Selectors

들어가기전..사전에 쿠버네티스 Metadata에 대한 설명입니다. 쿠버네티스에서 metadata는 객체에 대한 추가 정보를 제공하는 중요한 부분입니다. metadata는 주로 다음과 같은 정보를 포함합니다: 이름(name): 객체의 고유 식별자 네임스페이스(namespace): 객체가 속한 논리적 그룹 레이블(labels): 객체를 식별하고 구성하는 데 사용되는 키-값 쌍 주석(annotations): 객체에 대한 추가 정보를 제공하는 키-값 쌍 metadata는 쿠버네티스 YAML 파일에서 다음과 같이 정의될 수 있습니다: metadata: name: my-app namespace: default labels: environment: production app: nginx annotations: description: "This is my application" 이러한 metadata를 통해 쿠버네티스는 객체를 효과적으로 관리하고, 사용자는 객체를 의미 있는 방식으로 구성하고 선택

Naver Blog

쿠버네티스 Tolerations 및 Taints 개요

쿠버네티스 Tolerations 및 Taints 쿠버네티스에서 Tolerations와 Taints는 노드 선택 및 파드 스케줄링을 제어하는 중요한 메커니즘입니다. 이들은 특정 노드에 특정 파드만 스케줄링되도록 하거나, 특정 파드가 특정 노드에 스케줄링되지 않도록 하는 데 사용됩니다. Taints (테인트) Taint는 노드에 적용되는 키-값 쌍입니다. Taint가 설정된 노드는 해당 Taint를 허용하는 파드만 스케줄링할 수 있습니다. Taint 설정 예시: kubectl taint nodes node1 key=value:NoSchedule 이 명령은 'node1'에 'key=value:NoSchedule' Taint를 설정합니다. Tolerations (톨러레이션) Toleration은 파드에 적용되며, 특정 Taint를 가진 노드에 스케줄링될 수 있도록 합니다. Toleration 설정 예시: apiVersion: v1 kind: Pod metadata: name: my-pod

Naver Blog

쿠버네티스 백업 전략과 프로세스

쿠버네티스 백업의 중요성 쿠버네티스 클러스터의 안정성과 데이터 보호를 위해 정기적인 백업은 필수적입니다. 특히 ETCD 데이터의 중요성 때문에 백업 전략을 수립하고 실행하는 것이 중요합니다. ETCD 백업 ETCD는 쿠버네티스 클러스터의 모든 상태 정보를 저장하는 핵심 구성 요소입니다. ETCD 데이터의 백업은 다음과 같이 수행할 수 있습니다: 쿠버네티스에서 제공하는 ETCD 스냅샷 기능 활용 ETCD 스냅샷 생성 및 저장: 다음 명령어를 사용하여 ETCD의 스냅샷을 생성하고 저장할 수 있습니다. ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ snapshot save /backup/etcd-s

Naver Blog

[Linux] 대체 리눅스

CentOS EOS CentOS는 Red Hat Enterprise Linux(RHEL)의 무료 버전으로 유명한 리눅스 배포판 중 하나 입니다. 그러나 2020년 12월에 CentOS 프로젝트는 CentOS Linux 8을 기준으로 2021년 말을 기점으로 CentOS Linux를 종료하고 CentOS Stream으로 전환한다고 발표했다. 이에 따라 CentOS Linux의 사용자들은 다른 대체 리눅스 배포판을 선택할 필요가 있습니다. 대체 Linux 가장 인기 있는 대체품으로는 CentOS Linux의 대안으로 Rocky Linux와 AlmaLinux가 있다. 이들은 CentOS Linux의 코드를 기반으로 만들어진 무료 RHEL 버전이 있습니다. 따라서 RHEL과 완벽하게 호환되며, 사용자들은 RHEL과 같은 엔터프라이즈급 기능과 지원을 기대할 수 있습니다. 또 다른 대체품으로는 Oracle Linux와 CloudLinux가 있습니다.. Oracle Linux는 RHEL과 완벽하

Naver Blog

1. Ansible 설치

Ansible Ansible 이란? Ansible은 파이썬 및 YAML(YAML Ain't Markup Language) 포맷 기반으로 만들어진 오픈소스 IT 자동화 툴로서, 프로비저닝, 구성 관리, 애플리케이션 배포, 오케스트레이션, 기타 여러 가지 수동 IT 프로세스를 자동화해주는 Tool 입니다 내부 구조가 Python이기는 하지만, Ansible 모듈을 직접 개발하지 않는 이상 Python 코딩을 할 필요는 없습니다. 주요 특징 Agentless : Host에 Agent를 설치 하지 않고 SSH 프로토콜 및 인증으로 Host에 명령을 수행 멱등성 (冪等性, idemportent) : 연산(작업)을 여러 번 적용하더라도 결과가 달라지지 않는 성질 Ansible 설치 구성 환경 Cloud: MS Azure 가상 머신 OS: CentOS 8 Control Server 1ea Agent Server 10ea Control Server에 Ansible 설치 yum install -y

Naver Blog

2. Ansible playbook

Ansible Playbook이란? Ansible 명령어를 정책화 하여 (ymal 형식의 파일 작성) Host에게 task를 수행하는 자동화 정책 파일이다. 10대의 Agnet(Host)에 작업할 일이 있어서 한번 작성해봤습니다. Playbook 간단한 테스트 ping.yml --- - name: ping test hosts: ALL gather_facts: no tasks: - name: ping ping: Ping 모듈을 사용하여 호스트와의 통신 체크 Playbook 예제 Diskusage.yml --- - name: disk_usage hosts: ALL tasks: - name: disk_usage command: "df -h" register: df - debug: var: df.stdout_lines register: Playbook 에서 수행 결과를 변수로 사용하기 위해 사용되는 모듈로, debug를 통해 표춘 출력을 지원 본 작업 요건 ngrinder-agent con

Naver Blog

[Docker]Dockerfile Build 시 apt update 및 패키지 설치 오류(solve)

Dockerfile에 apt update 및 추가 패키지를 설치할 있이있어서 Dockerfile을 수정해서 gitlab 배포를 해봤습니다. Dockerfile 예 ##docker image FROM tomcat:9.0.27-jdk12-adoptopenjdk-hotspot ##remove default directory RUN rm -rf /usr/local/tomcat/webapps ##create directory RUN mkdir -p /usr/local/tomcat/webapps RUN mkdir -p /logs /data #ROOT.war COPY ./build/libs/was-0.0.1.war /usr/local/tomcat/webapps/ROOT.war #패키지 설치 추가 구문 RUN apt update RUN apt install -y fontconfig Dockerfile을 Jenkins를 통해서 Build를 진행하는데 아래와 같은 에러 발생하였습니다. WARNING:

Naver Blog

[자동차] 팰리세이드 계약부터 인수까지

안녕하세요 임파파 입니다. 패밀리카를 알아보던 중 여러 SUV를 비교하다가 결국 팰리세이드 가솔린 3.8...

Naver Blog

[MSSQL] MSSQL mdf 파일 Attach

안녕하세요 임파파 입니다. MSSQL mdf 파일을 Attach/복구하는 방법입니다. 플랫폼: AWS OS: wi...

Naver Blog

[MSSQL] MSSQL User 생성 및 혼합 인증 모드 변경

안녕하세요 임파파 입니다. MSSQL Login 유저 생성 및 혼합 인증 모드 변경 방법입니다. 플랫폼: A...

Naver Blog

[Oracle] Oracle DB Listener Log 관리 하기

안녕하세요 임파파 입니다. Oracle을 운영하다 보면 Disk 용량의 제약사항이 있을 때 리스너 로그를 관리...

Naver Blog

[Jenkins] Jenkins 수동으로 최신 업데이트 해보기

안녕하세요 임파파 입니다. Jenkins 버전이 낮아서 수동으로 업데이트를 진행 해봤습니다. 1. 최신 jenkin...

Naver Blog

[Jenkins] Simple Theme Plugin 로 테마 색깔 변경 해보기

안녕하세요 임파파 입니다 Jenkins 테마 색상 변경을 위해 Simple Theme Plugin을 설치해봤습니다. 설...

Naver Blog

[Jenkins] Slack으로 Jenkins 빌드 Step 알림 받아 보기

안녕하세요 임파파 입니다. Jenkins에서 소스 빌드 및 배포 진행에 대한 알림을 Slack과 연동하여 알림을...

Naver Blog

[APM] whatab 모니터링 솔루션 Tomcat 적용 (trial버전)

안녕하세요 임파파 입니다. 서버 마이그레이션을 하면서 APM 모니터링 이슈로 SaaS 형 whatab APM ...

Naver Blog

[Apache] CentOS7 Apache 소스 설치 (SSL, mod_jk 모듈)

안녕하세요 임파파 입니다. 서버 마이그레이션을 진행하면서 Apache 소스설치를 진행해봤습니다. OS: C...

Naver Blog

[Tomcat] rotatelogs를 이용한 Catalina.out 날짜 별 저장하기

안녕하세요 임파파 입니다. Apache 기능인 roatatelogs 를 사용하여 Tomcat Catalina.out 로그를 날짜별...

Naver Blog

[Linux] find 명령어를 활용한 오래 된 로그 삭제 하기

안녕하세요 임파파 입니다. find 명령어를 활용하여 오래 된 로그 삭제 스크립트를 만들어서 Crontab에 적...

Naver Blog

[Redis] Spring Redis 에러 해결

안녕하세요 임파파 입니다. AWS Elasticache를 사용해서 tomcat Session Clustering 용도로 Spring ...

Naver Blog

[AIX] AIX Filesystem

안녕하세요 임파파 입니다. AIX Filesystem에 대해 정리한 내용 입니다. 1. AIX는 JFS2를 사용 (...

Naver Blog

[kubernetes] Metrics Server를 통한 모니터링

안녕하세요 임파파 입니다. kubernetes Cluster 노드 및 Pods 에 대한 CPU Memory 리소스 모니터링을...

Naver Blog

[Prometheus] Elasticsearch 모니터링 구성

안녕하세요 임파파 입니다. Elasticsearch 클러스터에 대해 모니터링을 하기 위해 진행 해본 내용 입니다....

Naver Blog

[Prometheus] Redis 모니터링 구성

안녕하세요 임파파 입니다. Redis Application 대해 모니터링을 하기 위해 진행 해본 내용 입니다. Redi...

Naver Blog

[Docker] Docker-Compose 설치 및 기본 명령어

안녕하세요 임파파 입니다. Docker-Compose 설치 및 기본 명령어에 대해 알아봤습니다. Docker-Compose...

Naver Blog

[AWS] AWS Cloudfront Cache invalidation(Purge/무효화/갱신) 하기

안녕하세요 임파파 입니다. AWS Cloudfront를 사용할 때 동일한 이름의 파일을 수정/갱신하여 재 업로...

Naver Blog

[C언어] C언어 팩토리얼을 활용한 순열&조합

안녕하세요 임파파 입니다. C언어 팩토리얼을 활용한 순열&조합 코드를 만들어 봤습니다. 순열과 조합...

Naver Blog

[C언어] C언어 문자열 역방향 출력

안녕하세요 임파파 입니다. C 언어 문자열 역방향 출력 하는 코드 작성 해봤습니다. 자세한 설명은 주석에...

Naver Blog

[AIX] AIX LVM Basic

안녕하세요 임파파 입니다. AIX에서 Disk 사용을 위한 LVM 관련 요약 내용 입니다. AIX LVM ...

Naver Blog

[ELK] Curator로 Elasticsearch 인덱스 주기적으로 삭제하기

안녕하세요 임파파 입니다. Elasticsearch를 운영하다보면 인덱스를 주기적으로 삭제하는 로직이 필요합니...

Naver Blog

[Docker] CentOS 7 Docker 설치

안녕하세요 임파파 입니다. CenOS7 버전에서 Docker 설치를 해봤습니다. 1. yum update 업데이트 중.. ...

Naver Blog

[AIX] AIX 및 Power System 개요

안녕하세요 임파파 입니다. AIX 및 Power 시스템, AIX에서 쓰는 용어에 대해서 요약하여 간략하게 ...

Naver Blog

[AIX] AIX 시스템 구성 및 장치(디바이스) 명령어

안녕하세요 임파파 입니다. AIX에서 시스템 구성 및 장치(디바이스)에 관련된 명령어 요약 입니다. 1. l...

Naver Blog

[AIX] AIX ODM 기초 (Basic)

안녕하세요 임파파 입니다. AIX ODM에 대해 정리 해봤습니다. ODM (OBJECT DATA MAN...

Naver Blog

[Linux] CentOS 7 Bonding 개념 및 구성

안녕하세요 임파파 입니다. CentOS7 Bonding 개념에 대해 알아보고, 구성을 진행해봤습니다. 테스트 구...

Naver Blog

[Linux] CentOS 7 방화벽 firewalld 명령어

안녕하세요 임파파 입니다. CentOS 7 기본 OS 방화벽인 firewalld 개념 및 명령어를 알아보겠습니다. ...

Naver Blog

[Mysql] CentOS 7 Mysql 데이터 경로 변경

안녕하세요 임파파 입니다. Mysql 설치 이후 데이터 경로 변경이 필요해서 데이터 경로 변경 작업을 해봤...

Naver Blog

[python] 파이썬 List(배열) 중복 제거

안녕하세요 임파파 입니다. 파이썬 List에서 중복 제거하는 방법을 알아보겠습니다. 1. 집합 자료형 set ...

Naver Blog

[Oracle] Oracle DB RMAN으로 AWS S3에 백업 받기

안녕하세요 임파파 입니다. 오늘은 Oracle RMAN을 이용하여 AWS S3에 백업하는 방법을 알아보겠습...

Naver Blog

[Tomcat] Tomcat 헤더 정보 노출 제거

안녕하세요 임파파 입니다 오늘은 Tomcat 헤더 정보가 노출되는 부분을 제거해보겠습니다. 헤더 정보가 노...

Naver Blog

[APM] 제니퍼(Jennifer) 이벤트 알람 Slack 으로 받기

안녕하세요 임파파 입니다. Application 모니터링 솔루션 제니퍼를 사용하고 있는데요 Application 모니...

Naver Blog

[AWS] AWS Chatbot 서비스로 Slack 메세지 받기

안녕하세요 임파파 입니다. 예전에는 Lambda 서비스를 활용하여 Slack으로 AWS 리소스를 모니터링을 ...

Naver Blog

Prometheus 모니터링 시스템 구축 - 설치 (1)

안녕하세요 임파파 입니다. 오픈소스 모니터링 시스템 솔루션인 Prometheus를 활용하여 인프라 모니터링 ...

Naver Blog

Prometheus 모니터링 시스템 구축 - 설치 (2)

안녕하세요 임파파 입니다. 두번째로 시스템 모니터링 대상에 Node Exporter를 설치해보겠습니다. 저의 ...

Naver Blog

Prometheus 모니터링 시스템 구축 - 설치 (3) 완료

안녕하세요 임파파 입니다. 세번째로 알람을 위한 Alertmanager를 설치해보겠습니다. 첫번째 포스트에 Gr...

Naver Blog

Prometheus 모니터링 시스템 구축 - 구성 (1)

안녕하세요 임파파 입니다. Prometheus에서 각 Client에 설치된 Node_exporter의 메트릭을 수집하는 방...

Naver Blog

Prometheus 모니터링 시스템 구축 - 구성 (2)

안녕하세요 임파파 입니다. Alertmanager Slack 연동과 Alertmanager 룰 설정과 대해 다뤄보겠습니다. ...

Naver Blog

[Oracle] Oracle DB 재기동 절차 및 방법

안녕하세요 임파파 입니다. Oracle DB 재기동 절차에 대해 알아보겠습니다. Oracle DB 재기동 전에 ...

Naver Blog

Prometheus 모니터링 시스템 구축 - 구성 (3)

안녕하세요 임파파 입니다. 이번에는 Grafana와 Prometheus 연동 및 Grafana 대시보드를 간단하게 만드...

Naver Blog

[Apache] mod_expires로 css, javascript Cache 해보기

안녕하세요 임파파 입니다. WEB 서버를 운영하다 보면 CDN을 사용하는 경우가 많은데요, apache 모듈...

Naver Blog

[Apache] mod_evasive로 DDOS 차단 하기

안녕하세요임파파 입니다. 보통 기업에서 서버 앞 단에 IPS/IDS 장비를 두는 네트워크 IPS/IDS...

Naver Blog

[Matomo] 0. 웹분석 솔루션 이해

안녕하세요 임파파 입니다. 웹분석솔루션이란? 웹분석 솔루션은 웹사이트를 방문한 사용자들의 활동을 추적...

Naver Blog

[Matomo] 1. Matomo 아키텍처 및 사전 패키지 설치 (Apache,php,MariaDB)

안녕하세요 임파파 입니다. matomo 설치를 위한 서버 스펙 및 사이징은 아래를 참고하여 산정하였습니다. m...

Naver Blog

[Matomo] 2. Matomo 설치

안녕하세요 임파파 입니다. 이어서 Matomo 웹 분석 솔루션을 설치해보겠습니다. - AP 서버에서 진행 (이...

Naver Blog

[Python] 파이썬 json 파일 AWS S3 업로드

안녕하세요 임파파 입니다. 로컬 서버에서 json 형태의 출력 결과를 AWS S3에 업로드 해봤습니다. 1. b...

Naver Blog

[Matomo] 3. Matomo 기본 Tracking 코드 삽입

안녕하세요 임파파 입니다. 기본 Tracking 코드를 삽입하여 분석을 진행해보겠습니다. 1. matomo에 수집 ...

Naver Blog

[Matomo] 4. Matomo eCommerce(전자상거래) Tracking 코드 삽입

안녕하세요 임파파 입니다. 마토모에서 전자상거래 분석 기능은 무료로 제공되나 사용을 위해 추가적인 jav...

Naver Blog

[Matomo] 5. Matomo 데이터 수집 주기 설정

안녕하세요 임파파 입니다. 웹사이트를 수백 번 이상 방문하는 경우 Matomo가 데이터를 처리하기를 기다리...

Naver Blog

[kubernetes] 로컬 VMware에 쿠버네티스 구성

안녕하세요 임파파 입니다. 쿠버네티스 테스트를 위해 제 로컬 PC VMware에 쿠버네티스 마스터 노드와 ...

Naver Blog

[AWS] AWS CLI S3 와일드 카드 사용

안녕하세요 임파파 입니다. 특정 날짜의 톰캣 Catalina 로그 파일을 S3로 복사하기 위해 와일드카드를 사...

Naver Blog

[AWS/Python] 파이썬 패키지 AWS Lambda Layer 올리기

안녕하세요 임파파 입니다. AWS Lambda에서 파이썬을 사용하다 보면 필요한 패키지(라이브러리)를 Lam...

Naver Blog

[Python] 파이썬 문자열 특수문자 제거

안녕하세요 임파파 입니다. 파이썬 문자열 데이터를 깔끔하게 보여주기 위해 특수문자를 제거해봤습니다. ...

Naver Blog

[Linux] CentOS 7 Nginx 설치

안녕하세요 임파파 입니다. 오늘은 CentOS 7 버전에 Nginx 웹서버를 설치해 보겠습니다. 1. nginx 패키...

Naver Blog

[Linux] CentOS 7 Mysql 5.7 설치 및 초기 패스워드 설정

안녕하세요 임파파 입니다. CentOS 7에 Mysql 5.7을 설치해보겠습니다. 1. mysql 5.7 rpm 패키지 다운...

Naver Blog

[Logstash] Logstash Oracle DB 연동

안녕하세요 임파파 입니다. ELK 스택에서 Logstash를 활용하여 Oracle DB에 있는 데이터를 Elastic...

Naver Blog

Prometheus ADMIN API 사용을 통한 불필요한 데이터 삭제

안녕하세요 임파파 입니다. Prometheus에서 사용하지 않는 Job이나 잘못 작성된 불필요한 데이터를 삭제...

Naver Blog

[AWS] AWS Backup 서비스를 사용하여 AWS EFS 백업/복구 하기

안녕하세요 임파파 입니다. 오늘은 AWS Backup 서비스로 AWS EFS를 백업/복구를 해봤습니다. * ...

Naver Blog

[Elasticsearch] Elasticsearch Node 당 샤드 개수 증가

안녕하세요 임파파입니다. Elasticsearch 7 버전에서 기본 값으로 Node 당 샤드 개수를 1,000개로 제한 ...

Naver Blog

[ELK] Tomcat 로그 Elasticsearch 저장 및 Kibana 분석

안녕하세용 임파파 입니다. 오늘은 Logstash로 실시간 Tomcat Catalina.out 로그를 Elasticsearch로 저...

Naver Blog

[Redis] Redis maxmemory policy 설정

안녕하세요 임파파 입니다. Redis를 운영하게되면 필수로 확인하고 설정해야되는 옵션이 maxmemory-policy...

1