Infra

    조립식 PC 부팅이 안 될 때, RAM 상태를 확인하기

    조립식 PC 부팅이 안 될 때, RAM 상태를 확인하기

    나는 조립식 PC를 쓰고 있다. 조립식 PC를 구매하면 좋은 점은, 내가 원하는 맞춤형 사양을 비교적 저렴하게 구매할 수 있다는 것. 다만 단점은 PC가 맛이 갔을 때 해결은 내가 해야한다는 점이다. * 내돈내산으로 구매했던, 다나와 PC 견적 사이트 -- [바로가기] 내 PC도 어쩌다 한 번씩 부팅이 잘 안 될 때가 있다. 대체로 원인은 RAM이 더러워져서 발생하는 경우가 많았다. 그럴 때 해결하는 법. [방법1] 일단 RAM을 꺼냈다가 다시 끼워본다.  - RAM을 반대로 끼울 때도 있다. 그래서 안 될 수도 있음- RAM이 완전히 안 껴졌을 때가 있다. 그러면 안 됨  [방법2] RAM 끝을 확인해본다. 드럽다면 손으로 한 번 닦아준다. 그래도 안 되면 "깨끗한" 지우개로 한 번 지운다. * 대신,..

    윈도우와 맥 모두 호환되는 키보드

    윈도우와 맥 모두 호환되는 키보드

    요즘 취미로 글쓰기 모임을 시작했다. 가볍게 릴레이로 글을 쓰는데 손맛이 좋은 키보드를 갖고 싶었다. 와중에 코딩도 해야해서 윈도우랑 맥이 호환되는 키보드를 찾았다. 엑토 레트로2 블루투스 키보드 B307  옛날 타자기에 대한 로망을 갖고 있었는데 일단 비주얼에서 만족했다. 누를 때 소음이 좀 나는 편이라서 회사에서 쓰기는 그렇고, 집에서 쓰기 좋다. PC뿐 아니라 블루투스로 핸드폰이나 태블릿을 연결할 수 있어서 유용하게 쓰고 있다.

    [Docker] Prometheus와 Grafana를 통해 실시간 로그 확인

    [Docker] Prometheus와 Grafana를 통해 실시간 로그 확인

    1. Prometheus란? - 관련된 신화 : 신으로부터 불을 훔친 자로써, 형벌로 동생에게 판도라라는 여성을 보내 판도라의 상자 사건이 일어남 - 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 오픈 소스 모니터링 시스템이다. - 프로메테우스로 모니터링을 하려면 모니터링 항목 수집을 위해 Exporter라고 하는 Agent가 수행되어야 한다. ex. node_exporter, mysql_exporter, postgre_exporter, redis_exporter, kafka_exporter..... 2. Dockerfile로 mysqld_exporter와 node_exporter가 포함된 MySQL 컨테이너 생성하기 - Prometheus에서 모니터링을 하려면 MySQL 컨테이너..

    [Docker] Proxy Layer 구성하기

    [Docker] Proxy Layer 구성하기

    1. Proxy Layer란 - Proxy Layer : 대리층 - ProxySQL : C++로 짜여진 오픈 소스 Proxy 프로그램으로 총 4개의 database schema를 가지며, Proxy를 컨트롤하고 모니터링할 수 있게 한다. - Proxy Layer를 두는 이유 : 앞서서 Orchestra 설정을 해두면 Master(db001)이 샷다운 되더라도 Slave(db002)이 자동으로 Master로 승격되어 고가용성, 곧 시스템이 지속될 수 있도록 할 수 있었다. 하지만, Application 입장에서는, Application의 자체 설정에 따라 기존의 Master(db001)을 계속해서 바라볼 수 있다. 이를 해결하기 위해 중간층인 Proxy Layer를 둘 수 있는데, MySql은 Proxy ..

    [Docker] Orchestra를 통해 High Availability(HA) 구축하기

    [Docker] Orchestra를 통해 High Availability(HA) 구축하기

    1. 고가용성이란? - 가용성 = Uptime / (uptime + downtime) - 고가용성 = 바람직한 정도로 긴 시간 동안 지속적인 운영이 가능한 시스템 또는 컴포넌트 - 고가용성의 시스템을 구축한다는 건 = 서비스가 다운되는 타임을 최소화하는 시스템을 구축한다는 것 2. HA 수동 설정 [1] Orchestra를 Docker로 생성하기 - Orchestra는 MySQL용 복제 토폴로지 관리자로서, 고가용성 및 복제 관리 툴을 말한다. - GUI/CLI/API를 통해서 상태를 확인하고 작업을 수행할 수 있다. docker run -it --name orchestrator -h orchestrator \ --net mybridge --net-alias=orchestrator \ -p 3000:30..

    [Docker] 브리지를 통해 컨테이너 통신

    1. 브리지 생성 [1] 도커 네트워크 확인 & 브리지 생성 [root@dev opc]# docker network ls NETWORK ID NAME DRIVER SCOPE 697ad12cd5fa bridge bridge local d955f1181bf5 host host local 30e9346c2d17 none null local [root@dev opc]# docker network create --driver bridge mybridge [2] data,log 삭제하고 도커 컨테이너 재생성 docker run -it --name db001 -p 3306:3306 -h db001 \ --net mybridge --net-alias=db001 \ -v /home/opc/db/db001/data:/va..

    [Docker] Master-Slave Replication 구성

    [Docker] Master-Slave Replication 구성

    Master/Slave 구조를 사용하는 이유 서버에 트래픽이 몰려들 때 해결하는 방법으로, 컴퓨터 성능을 1) Scale-up 하거나, 컴퓨터를 여러대 두는 2) Scale-out이 있다. DB로 다수의 트랜잭션이 몰리면 race condition이 발생할 수 있다. Replication(복제)으로 Master/Slave 구조를 형성하면 DB에 가해지는 부하를 분산하여 이러한 race condition을 미연에 방지할 수 있다. 일반적으로 Master에서 write(쓰기)를 하도록 하고, Slave에서는 read(읽기)를 하도록 하여, 부하를 분산한다. MySQL에서 Master/Slave가 동작하는 방식은 아래와 같다. [1] Insert/Update/Delete 트랜잭션이 들어오면 Master에서 이..

    [Docker] 호스트OS에 log, config 연결 (+my.cnf)

    [Docker] 호스트OS에 log, config 연결 (+my.cnf)

    호스트 OS에 log/config를 연결하기 위한 순서 [1] 호스트 OS에서 log,conf 파일 경로를 먼저 생성 [2] mysql 기본 설정 파일(my.cnf)을 호스트 OS의 conf 경로에 저장 * 주의 ) 이 때, my.cnf 파일의 설정값은 컨테이너를 기준으로 한다. 예를 들어, basedir=/var/lib/mysql 로 설정한다면, 이는 컨테이너의 /var/lib/mysql 경로를 의미한다. [3] 컨테이너를 재생성하며 -v 옵션을 통해 호스트 OS의 log/conf 경로와 컨테이너 log/conf 경로를 연결 * my.cnf 에서 설정했던 log 경로가 곧 컨테이너 log 경로이다. 컨테이너 conf 경로는 my.cnf이 저장되는 아무 경로로 설정하면 된다. 호스트 OS에 log/con..

    [Docker] Docker란? Docker로 Mysql 설치해보기

    [Docker] Docker란? Docker로 Mysql 설치해보기

    Docker와 VM의 차이 * VM : Virtual Machine 가상 머신으로, 분할 공간의 가상 환경을 제공한다. * 호스트 OS : 서버 OS * 게스트 OS : VM이 서버 OS위에 올리는 가상 OS * 하이퍼바이저 : 게스트 OS를 구동하고 모니터링하는 소프트웨어 -> 유형 1 : Native/Bare-Metal 하이퍼바이저, 호스트 OS 없이 게스트 OS들만 존재 ex. VMware의 ESXi, Citrix의 Xen, Microsoft의 Hyper-V -> 유형 2 : Hosted 하이퍼바이저, 호스트 OS 위에 게스트 OS들을 둔다. ex. VmWare의 Workstation, Oracle의 VirtualBox 가상 머신(VM)의 경우, 하이퍼바이저를 통해 호스트 OS 위에 게스트 OS들을..

    오라클 클라우드로 무료 서버 만들어보기

    WSL를 통해서 리눅스를 접속 후 Docker를 사용해보려 하는데 이래저래 설정할게 많아 짜증이 나 그냥 클라우드를 써보기로 했다. AWS는 프리티어 기간이 지나면 비용이 발생하는데, 사이드프로젝트를 하는데 비용을 내는게 싫어서 무료 클라우드를 찾아봤다. 클라우드 서버는 AWS, Azure, Redhat... 다양하게 있었는데 그 중에서 평생 무료로 쓸 수 있는 오라클 클라우드를 쓰기로 했다. 오라클 클라우드에서 무료 인스턴스를 생성하는 방법은 어렵지 않았다. 아래 유투브를 따라하면서 CentOS 인스턴스를 하나 만들어줬다. https://www.youtube.com/watch?v=AgJgEnQv6cw