본문 바로가기

infra9

[TIL] js pm2 패키지 Linux에서 nohup을 이용해서 백그라운드로 프로세스를 전환하고, 구동할 수 있다. 이에 더해 웹서버가 죽었을 때에도 다시 살아나는 기능이 필요해 패키지를 찾아보던 중 가장 대중적으로 사용되는듯 해서 써보고 정리해 두고자 한다. golang으로 프로세스 데몬화하고 재실행하는 스크립트를 직접 구현했는데 이 패키지만 있으면 굳이 추가 구현이 필요 없을 듯 하다. 참고 문서: https://www.npmjs.com/package/pm2 개요 PM2(Process Manager 2)는 스크립트를 지속적으로 실행할 수 있도록 하는 패키지이다. 어플리케이션을 계속 살아있게 해주고, 다운타임 없이 리로드할 수 있게 해준다. 설치 npm install -g pm2 시작 pm2 start app.js 프로세스는 데몬.. 2023. 11. 5.
무중단 배포 프로세스 서비스를 무중단으로 배포하는 프로세스가 어떻게 될까 공부하면서 크게 3가지 전략이 존재한다는 것을 알게 되었다. Rolling Update 롤링 업데이트는 트래픽을 점진적으로 구버전에서 신버전으로 옮기는 것이다. 크게 1) scale out후 scale in하는 방법과 2) scale in 후 scale out하는 방법이 있다. scale out 후 scale in연결이 완료되면 v1을 서비스하는 서버 하나를 제거한다. 모든 트래픽이 v2를 서비스할 때까지 이 과정을 반복한다. v1 → v2로 배포가 이루어질 때, v2를 서비스하는 서버를 하나 생성해 로드 밸런서에 연결한다. scale in 후 scale out해당 서버의 서비스를 v1 → v2로 변경한다.모든 트래픽이 v2를 서비스할 때까지 이 과정을.. 2023. 9. 17.
컨테이너 보안 1. 컨테이너 보안 위협 컨테이너는 응용프로그램과 프로그램이 의존하는 모든 것을 하나로 묶어서 실행하는 호스트와 격리한다. 이 격리는 다른 컨테이너와도 의존성을 분리한다. 컨테이너에서 공격이 가능한 경로는 다양하다. 응용 프로그램 코드 취약점 컨테이너 이미지 설정 오류 이미지 레지스트리 공격 호스트 취약점 비밀 정보 노출 네트워킹 컨테이너 탈출 취약점 보안에는 몇 가지 기본 원칙이 있다. 최소 권한 심층 방어: 여러 겹의 보안 경계 공격 표면 축소: 공격이 들어올 수 있는 구멍 자체를 줄인다. 폭발 반경 제한: 공격이 들어오더라도 영향을 미칠 수 있는 부분을 줄인다. 직무 분리 2. 리눅스 시스템 호출, 접근 권한, 능력 리눅스 시스템에서 보안의 토대는 파일 접근 권한이다. 리눅스 세상에는 “모든 것은 .. 2023. 7. 14.
[TIL] GSLB(Global Server Load Balancing) 서비스로 가는데 부하를 분산하기 위해서 Load Balancer를 사용하는 것이 일반적이다. 대기업에서는 Load Balancer를 한 대만 사용하지는 않을 것이고, 여러 대를 사용할 것이다. 그렇다면 로드밸런서로 가는 트래픽을 어떻게 분산할 것인가? ‘메타’ 로드 밸런서 같은 것이 필요할 듯하다. 찾아보니 실제로는 GSLB(Global Server Load Balancing) 기술을 이용해서 분산한다고 한다. DNS 방식의 로드 밸런싱 dns 서버가 라운드 로빈 방식으로 시간에 따라 다른 ip 주소를 알려주는 방식이다. dns 레코드를 여러 개 추가하게 되면 dns 방식의 로드 밸런싱이 가능하게 된다. 한번 dns 레코드를 요청하고 캐시가 만료되어 다시 요청할 때에는 dns 서버로부터 (아마) 다른 i.. 2023. 3. 30.