라이너

라이너

리눅스데이터베이스
라이너라이너· 23일

리눅스 서버에서 원격 접속 터미널 세션 유지하기: tmux 활용법

서버에서 중요한 작업을 수행하던 도중 터미널이 갑자기 끊긴 경험이 있는가? 얼마 전npm install을 실행하고 한참을 기다렸는데, CPU 사용량이 치솟더니 SSH 세션이 강제 종료되어 터미널 접속이 끊겨버렸다. 다시 접속해 보니 작업이 중단되어 있었고, 처음부터 다시 시작해야 하는 상황이었다. 이러한 예상치 못한 터미널 종료는 단순한 불편을 넘어 시간과 생산성에도 큰 영향을 미친다.하지만 이 문제를 해결할 방법이 있다. tmux를 사용하면 터미널 세션을 유지하면서 안정적으로 작업을 수행할 수 있다.1. 세션이 끊기는 주요 사례인터넷 연결이 불안정하여 SSH 연결이 강제 종료되는 경우터미널을 실수로 닫았을 때네트워크 환경이 바뀌거나 VPN이 끊어질 때npm install과 같은 높은 리소스를 요구하는 작업이 서버에서 실행 중일 때장시간 유지해야 하는 작업 도중 터미널이 자동으로 종료될 때이러한 문제를 해결하기 위해 tmux를 사용하면 SSH 세션이 끊겨도 터미널 작업이 계속 실행된다.2. tmux 개념과 기본 사용법tmux란?tmux는 하나의 터미널 내에서 여러 개의 세션을 관리할 수 있는 터미널 멀티플렉서이다. 이를 통해 SSH 세션이 종료되더라도 실행 중인 프로세스를 유지할 수 있다.3.1 tmux 설치대부분의 리눅스 배포판에서 tmux를 쉽게 설치할 수 있다.# Ubuntu / Debian sudo apt update && sudo apt install tmux # CentOS / RHEL sudo yum install tmux # macOS (Homebrew 사용 시) brew install tmux3.2 tmux 세션 시작하기tmux위 명령어를 입력하면 새로운 tmux 세션이 시작된다.3.3 세션 분리 (detach) 후 유지하기Ctrl + b, d위 단축키를 누르면 현재 tmux 세션에서 빠져나오면서 세션을 백그라운드에서 유지할 수 있다.3.4 기존 세션 재접속 (attach)tmux attach -t 0 # 세션 번호가 0일 경우만약 여러 개의 세션이 있을 경우 세션 목록을 확인 후 접속하면 된다.tmux list-sessions # 실행 중인 세션 목록 확인 tmux attach -t <세션명>3.5 세션 종료세션이 더 이상 필요 없다면 종료할 수 있다.exit # tmux 세션 내에서 실행또는, Ctrl + b, x를 눌러서 창을 종료할 수도 있다.3. tmux 활용 예제4.1 백그라운드에서 npm install 실행하기tmux new -s install-session npm install # 패키지 설치 실행 Ctrl + b, d # 세션 분리이렇게 하면 SSH 세션이 끊겨도 npm install이 계속 실행된다.4.2 다중 창 활용하기새 창 만들기: Ctrl + b, c창 간 이동: Ctrl + b, n (다음 창), Ctrl + b, p (이전 창)창 삭제: Ctrl + b, &4. 마무리tmux를 활용하면 SSH 연결이 끊겨도 작업이 지속되므로 서버 관리가 훨씬 안정적이고 편리해진다. 중요한 작업을 수행할 때마다 tmux 세션을 생성하고, 필요할 때 다시 접속하는 습관을 들이면 서버 운영이 더욱 원활해질 것이다. 이제 tmux를 사용하여 SSH 세션 종료 걱정 없이 리눅스 서버를 효율적으로 관리해보자!
195
1
1
라이너라이너· 3개월

S3를 컨테이너 레지스트리로 활용할 수 있다면?

AWS S3를 단순한 스토리지 서비스로만 생각하셨다면, 이런 가능성도 있는데요, S3를 컨테이너 레지스트리로 활용하여 Docker 이미지를 저장하고 배포할 수 있습니다. 특히 이미지 빌드와 배포 속도를 높이고자 하는 개발자들에게 유용한 방법이 될 수도 있습니다. S3를 컨테이너 레지스트리로 사용하는 방법 S3를 컨테이너 레지스트리로 활용하려면, S3 버킷을 HTTP를 통해 공개하고, 특정 경로에 이미지 파일을 업로드하면 됩니다. 이렇게 설정하면 docker pull 명령어를 통해 해당 버킷에서 이미지를 직접 가져올 수 있습니다. 예시: docker run --rm your-bucket-url/your-image 이 명령어를 실행하면 S3 버킷에 저장된 이미지를 가져와 컨테이너를 실행할 수 있습니다. S3와 ECR의 업로드 속도 비교 S3를 레지스트리로 사용하는 주요 이점 중 하나는 업로드 속도입니다. 테스트 결과, S3는 ECR보다 최대 8배 빠른 업로드 속도를 보였습니다. 이는 S3가 단일 레이어의 청크를 병렬로 업로드할 수 있기 때문입니다. 반면, ECR은 OCI 분산 사양을 준수하여 레이어를 순차적으로 업로드해야 하므로 속도가 느려집니다. 업로드 속도 비교: 서비스 최소 속도 최대 속도 ECR 24 MiB/s (8.2초) 28 MiB/s (7.0초) S3 115 MiB/s (1.7초) 190 MiB/s (1.0초) S3를 레지스트리로 사용할 때의 고려사항 S3는 전통적인 컨테이너 레지스트리가 아니므로, docker push 명령어를 직접 사용할 수 없습니다. 따라서 이미지를 S3에 업로드하려면 AWS SDK 등을 활용하여 수동으로 업로드해야 합니다. 또한, 인증 및 권한 관리를 위해 S3 버킷 정책을 적절히 설정해야 합니다. S3 버킷 정책 설정 예시: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } 이러한 정책을 통해 모든 사용자가 버킷의 객체를 읽을 수 있도록 설정할 수 있습니다. 결론 S3를 컨테이너 레지스트리로 활용하면 업로드 속도를 크게 향상시킬 수 있습니다. 다만, 전통적인 레지스트리 기능이 부족할 수 있으므로, 프로젝트의 요구사항에 맞게 적절히 활용하는 것이 중요합니다. 특히 이미지 빌드와 배포 속도가 중요한 경우, S3를 활용한 레지스트리 구축을 고려해 볼 만합니다. 출처: Using S3 as a container registry
253
0
라이너라이너· 2년

남는 안드로이드 폰에 블로그 올리기

요즘 개발자라면 남는 안드로이드폰 한대씩은 있지 않나요? 안드로이드폰에 블로그를 올리는 방법을 설명한 글이 있어 소개합니다. https://androidblog.a.pinggy.io/ 위 링크의 글도 안드로이드 폰에 올린 글이라고 합니다. 설치방법 요약 올리는 방법을 간단히 요약하자면, 일단 안드로이드 터미널 에뮬레이터인 Termux을 사용했고, 공개 URL 주소를 얻기 위해 Pinggy라는 서비스를 사용했네요. 단계별로 살펴보면 이렇습니다. 1단계: Termux 설치 Termux는 터미널과 리눅스 환경을 에뮬레이션하는 안드로이드 앱이고 루팅이 필요없습니다. F-Droid 링크를 통해 얻거나, Github에서 APK를 직접 다운로드하여 설치할 수 있습니다. 2단계: 패키지 설치 터미널로 접속해서 웹페이지를 제공하기 위해 웹 서버를 기기에 설치해야합니다. 웹서버로는 node.js를 설치하고, ssh 접속이 가능하게 하기위해 openssh도 설치합니다. pkg update pkg upgrade pkg install openssh pkg install nodejs-lts 3단계: 서버 시작과 Pinggy 터널링 index.html과 같은 HTML 블로그 페이지를 생성한 다음, http-server를 시작합니다. npx http-server & 그런 다음 Pinggy에 가입하여 공개 URL을 얻습니다. 준비가 되면 다음과 같이 ssh 터널링을 통해 https://myandroidblog.a.pinggy.io 처럼 https로 시작하는 주소로 서버를 띄울 수 있습니다. ssh -p 443 -R0:localhost:8080 <pinggy토큰값>@a.pinggy.io
395
1
1
0
sonaki84
sonaki84·2023-05-23
오.. Pinggy라..
라이너라이너· 3년

처음 시작하는 Docker

처음 시작하는 Docker dev.epiloum.net 도커를 간단히 설치해보면서 개념을 이해해보는 글
1.1K
2
0
라이너라이너· 3년

SQL을 공부할 때 가장 헷갈리는 문법 JOIN, 벤다이어그램으로 간단하게 정리

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN) 조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부 조인)은 두 테이블을 조인할 때... hongong.hanbit.co.kr SQL을 공부할 때 가장 헷갈리는 문법 JOIN, 벤다이어그램으로 간단하게 정리한 글
1.7K
1
0
라이너라이너· 3년

Amazon S3 + CloudFront에 대해

[프론트엔드 서버] Amazon S3 + CloudFront에 대해 Amazon S3 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스. 특징 모든 종류의 데이터를 원하는 형식으로 저장 저장할 수 있는 데이터의 전체 볼륨과 객체 수에는 제한이 없음 Amazon S3는 간단한 Key 기반의 객체 스토리지이며, 데이터를 저장 및 검색하는데 사용할 수 있는 고유한 객체 키를 할당. Amazon S3는 간단한 표준 기반 REST 웹 서비스 인터페이스를 제공 안전함 CloudFront Amazon CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스 CDN(Content Delivery Network) CDN(콘.. jayprogram.tistory.com S3와 CloudFront에 대해 요약 설명이 잘 되어 있네요^^
1.3K
2
0
라이너라이너· 4년

AWS 예상 비용 알람 받기

22.AWS 예상 비용 알람 받기 AWS는 사용한 만큼 비용을 낸다. 테스트로 몇 개 만들어 놓고 지우지 않으면 비용이 계속 발생한다. 서버 자동생성 코딩을 잘못해서 고비용이 발생할 수 있다 이를 모니터링하기 위해 기본적으로 특정 금액 이상 요금 발생 시나 예산 범위 요금 초과 발생하는 경우 모니터링 메일이나 SNS를 받도록 설정할 수 있다. 이러한 리스크에도 불구하고 그만큼 편리하기 때 brunch.co.kr AWS 사용 도중 실수로 인해 많은 비용이 청구될 수도 있다.👽 돈이 새는 것을 방지하기 위해 특정 비용에 도달하면 알림을 받을 수 있는 설정을 하도록 하자. 😻
1.2K
2
0
라이너라이너· 4년

10분 만에 훑어보는 TCP와 UDP

10분 만에 훑어보는 TCP와 UDP - 재그지그의 개발 블로그 OSI 4계층에서 동작하는 TCP와 UDP의 특징과 차이점에 대해 간략히 정리해봅니다. wormwlrm.github.io TCP와 UDP를 자세하면서도 쉽게 설명한 글
1.2K
2
0
라이너라이너· 4년

zx - 쉘스크립트를 자바스크립트로 만드는 툴 (구글 제공)

GitHub - google/zx: A tool for writing better scripts A tool for writing better scripts. Contribute to google/zx development by creating an account on GitHub. github.com 쉘스크립트 짤 때 번거로우셨죠? 쉘스크립트를 자바스크립트로 만들 수 있는 툴입니다. 구글에서 제공하는 오픈소스네요. 아래는 zx를 이용하여 자바스크립트로 만든 쉘스크립트 예제입니다. #!/usr/bin/env zx await $`cat package.json | grep name` let branch = await $`git branch --show-current` await $`dep deploy --branch=${branch}` await Promise.all([ $`sleep 1; echo 1`, $`sleep 2; echo 2`, $`sleep 3; echo 3`, ]) let name = 'foo bar' await $`mkdir /tmp/${name}`  
1.6K
1
0
라이너라이너· 4년

셀프 호스팅용 오픈소스 모음 - 자체 서비스 구축용 오픈소스

GitHub - awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hosted on your own servers A list of Free Software network services and web applications which can be hosted on your own servers - GitHub - awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and ... github.com 클라우드나 SaaS 서비스를 이용하지 않고 자체적으로 호스팅하는 서비스를 만들고자 할 때 용도별로 사용할 수 있는 오픈소스 모음입니다. 엄청 많이 정리되어 있어요ㅋ
1.7K
0