Logic in Code,
Freedom in Travel.

인생 뭐 있나 사람 사는거 다 똑같지

분류 전체보기

Computer Science/Server

SSH Key 으로 서버 접속하기

아래와 같이 ~/.ssh/config 경로에 ssh config 파일을 작성하여 서버에 쉽게 접속할 수 있다. Host server1 Hostname ~~~.~~~.~~~.~~~ User ubuntu Port 22 IdentityFile ~/.ssh/id_rsa_1Password Host server1 Hostname ~~~.~~~.~~~.~~~ User ubuntu Port 22 IdentityFile ~/.ssh/id_rsa_1Password Host * HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa Host * IdentityAgent "~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/a..

2024. 2. 11. 13:29
사이드 프로젝트

디스크 이슈로 인한 서버 이전 회고

2년간 운영하던 서버의 디스크 160GB 까지 가득 차는 문제가 발생했다. 문제의 원인으로는 2가지가 있다. 1. Docker Registry 서버를 Private 으로 운영했기 때문에 Docker Image 가 너무 많았다. 2. SMTP 서버를 구축해 놓았기 때문에 Log 가 너무 많았다. 그간 디스크가 90프로 정도 찰 때마다 불필요한 이미지를 정리하고 logrotate 을 통해 로그를 관리하였고 마지막 영혼을 불태워 Docker Registry 서버를 가성비 좋은 S3 로 이전하려 했으나 디스크가 기다려주지 않아 서버를 확장하게 되었다. 아래는 마지막 순간까지 살아 있던 내 서비스들이다. ****@vps-*****:~$ ll drwxrwxr-x 6 **** **** 4096 May 14 2023 ..

2024. 2. 11. 13:23
Database/RDBMS

MySQL Master-Slave Replication with Docker

Master-Slave Replication 이란 MySQL Master-Slave Replication 은 데이터베이스의 한 인스턴스에서 다른 인스턴스로 데이터베이스를 복제하는 하나의 방식이다. Master-Slave Replication 을 통해 3가지의 이점을 얻을 수 있다. 데이터의 일관성을 유지 데이터 백업 시스템의 부하 분산 Amazon RDS, Google Cloud SQL, Azure Database for MySQL 등에서도 이러한 기능을 제공해주고 있다. Docker & Docker Compose 이란 Docker와 Docker Compose는 이러한 Replication 를 설정하고 관리하는 데 사용할 수 있는 오케스트레이션 도구이다. MySQL Master-Slave Replicat..

2024. 2. 11. 13:00
Algorithm/알고리즘 응용

[페이지네이션] - 커서 기반 vs 오프셋 기반

페이지네이션 페이지네이션은 대량의 데이터를 작은 일부분으로 분할하여 사용자에게 보여주는 방식이다. 이를 통해 사용자는 한번에 모든 데이터를 로드하지 않고도 필요한 만큼의 데이터만 로드하여 랜더링할 수 있다. 페이지네이션을 사용할 경우 서버와 클라이언트 간의 트래픽 부하가 감소하여 클라이언트는 빠르게 데이터를 전달받을 수 있고 이로 인해 적절량의 데이터를 화면에 랜더링할 수 있다. 이러한 과정속에 불필요한 리소스를 줄여 서버 비용을 절감시킬 수 있으며 사용자는 대기 시간 없이 빠르게 화면을 볼 수 있어 사용자 경험에도 좋다. 페이지네이션을 하지 않을 경우 대량의 데이터를 다루는 경우, 모든 데이터를 한 번에 불러오 경우 성능에 부정적인 영향을 줄 수 있다. 이는 서버 리소스 비용 증가와 네트워크 대역폭을..

2024. 2. 10. 15:27
Computer Science/Server

[Linux] 리눅스 호스트네임 설정 - hostnamectl

리눅스를 설치하면 기본 호스트네임은 localhost.localdomain 가 된다. 리눅스 장비를 식별하기 위해 hostnamectl 을 통해 서버마다 호스트네임을 지정할 수 있다. 호스트네임 지정을 통해 docker-swarm 설정을 진행할 때 호스트 구분하기가 쉬워진다. 호스트네임 확인 hostnamectl 은 시스템의 호스트네임을 관리할 수 있는 명령어로 옵션없이 사용하거나 status 옵션을 주면 현재 정보를 출력한다. 터미널에 hostnamectl 을 입력하면 다음과 같은 결과를 확인할 수 있다. ubuntu@server-no1:~$ hostnamectl Static hostname: server-no1 Icon name: computer-vm Chassis: vm Machine ID: d78..

2024. 2. 10. 14:56
실무 경험/실무 개발 & 협업

2022 - TLS 1.0, TLS 1.1 지원 중단으로 인한 TLS 버전 업그레이드 회고

상황글 작성하기 2년전 wss 통신에서 장애가 발생했다. 해당 서비스는 초당 50 만건 이상의 트래픽을 감당하고 있을만큼 장애가 발생할 경우 문제가 큰 서비스였다. 당시 서버 로그를 확인해서 SSL 인증서에 문제가 있다는 것을 확인했다.원인을 확인했으니 2가지를 확인해봤다. 1. 인증서 기간 확인2. OpenSSL 버전 확인 인증서 기간에는 문제가 없었지만 Host 에서 TLS 에 대한 이슈가 있다는 것을 확인했고 OpenSSL 1.0.2g 에서는 TLS 1.2 이상을 지원하지 않았으며 Docker Daemon 에서도 TLS 1.2 / 1.3 을 지원하지 않았다. 우선 원활한 서비스를 위해 wss 통신하던걸 모두 ws 통신으로 변경했더니 서비스가 정상으로 돌아왔다. 원인TLS 1.0, TLS 1.1 지..

2024. 2. 10. 13:22