본문 바로가기

728x90
반응형

Infra

(12)
k6 부하 테스트 가이드 신규 프로젝트 운영 반영 전, 예상 트래픽을 기준으로 성능과 병목을 미리 점검했습니다. 사전에 구성한 Grafana 대시보드와 k6 부하 테스트를 이용해 실제 트래픽 수준을 재현했고, 그 과정에서 헷갈리기 쉬운 용어들을 정리했습니다. 아래에 k6 핵심 개념과 지표 해석 기준을 설명합니다.k6자바스크립트로 시나리오를 작성하는 CLI 기반 부하테스트 도구VU(가상 사용자) 모델과 도착률(RPS) 모델 모두 지원influxDB/Prometheus/JSON 등으로 메트릭을 보내 Grafana 시각화 가능용어트래픽·사용자 관련VU (Virtual User): 가상 사용자. 동시 접속자 수에 해당. 각 VU는 JS 스크립트의 default 함수를 반복 실행Iteration: VU가 default 루프를 한 번 수행..
PM2 restart vs reload pm2 restart모든 프로세스를 중단 후 다시 시작프로세스가 죽고 새로 뜨기 때문에 다운타임(downtime) 발생클러스터 모드(instances > 1)에서도 프로세스 전체가 동시에 종료 → 요청이 잠시 끊김개발 환경에서 코드 변경을 빠르게 반영할 때 많이 사용운영 환경에서는 트래픽이 잠깐이라도 끊기기 때문에 가급적 지양pm2 restart ecosystem.config.jspm2 reload무중단(Zero-downtime) 재시작 방식클러스터 모드에서 워크 프로세스를 하나씩 교체한다.ex) 4개 instance → 1번부터 순서대로 교체 → 서비스 중단 없이 업데이트이 방식으로 서비스 중단 없이 배포 가능싱글 인스턴스(instances = 1)일 경우, 교체할 프로세스가 하나뿐이라 결국 resta..
AWS vs Tencent Cloud 서비스 매핑 비교 분류AWSTencent Cloud설명컴퓨팅EC2 (Elastic Compute Cloud)CVM (Cloud Virtual Machine)가상 서버 인스턴스 서비스LambdaSCF (Serverless Cloud Function)서버리스 함수 실행 서비스ECS (Elastic Container Service)TKE (Tencent Kubernetes Engine)컨테이너 오케스트레이션스토리지S3 (Simple Storage Service)COS (Cloud Object Storage)객체 스토리지EBS (Elastic Block Store)CBS (Cloud Block Storage)블록 스토리지EFS (Elastic File System)CFS (Cloud File Storage)공유 파일 시스템DB ..
ppk to pem window 에서 주로 사용하는 ppk 를 전달받아 pem 으로 변환해서 사용해야하는 일이 있었습니다.아래는 ppk -> pem 변환 방법입니다.Homebrew를 이용하여 putty를 설치합니다.brew install puttyputtygen을 이용하여 ppk 파일을 pem 파일로 변환합니다.puttygen {변환ppk파일명}.ppk -O private-openssh -o {변환pem파일명}.pem새로운 키에 퍼미션 등록합니다.chmod 600 {key}.pempem 키를 이용하여 ssh로 접속 합니다.ssh -i key.pem {userName}@{host}
Docker 명령어 정리 (image, container, compose) Docker 실행# 도커 실행 방법1 sudo systemctl status docker# 도커 실행 방법2sudo /etc/init.d/docker startDocker Image 관련 명령어이미지 빌드Dockerfile을 이용해서 이미지 생성docker build -t {이미지명:태그명} {Dockerfile의 경로}이미지 삭제# 도커 단일 이미지 삭제docker image rm {이미지 ID or 이름}# 모든 도커 이미지 삭제 (컨테이너가 있어서 이미지 삭제가 안될 경우 -f 옵션으로 강제 삭제가능)docker rmi {옵션} {이미지 ID or 이름}# 불필요한 이미지 `` 제거docker image prune -f이미지 조회# 도커 이미지 목록docker images# 현재 이미지 목록dock..
Github Actions + ECS vs Github Actions + CodeDeploy + EC2 GitHub Actions + ECS 배포와 GitHub Actions + CodeDeploy + EC2 배포는 둘 다 AWS 인프라에 애플리케이션을 배포하는 방법이지만, 각각의 설정 방식과 관리 방식에서 차이점이 있습니다. 아래에서 이 두 가지 방법의 장단점과 차이점을 비교해 보겠습니다.1. GitHub Actions + ECS 배포GitHub Actions와 AWS ECS(Amazon Elastic Container Service)를 결합하여 컨테이너 기반 애플리케이션을 배포하는 방식입니다.장점컨테이너 관리의 간소화:컨테이너 기반 배포이기 때문에 애플리케이션의 의존성, 환경 설정 등을 Docker 이미지로 캡슐화하여 일관된 배포 환경을 유지할 수 있습니다.AWS Fargate 지원:AWS Fargat..
hombrew 설치 및 zsh: command not found 해결 터미널에서 버전확인을 위해 npm -v 입력했을 때 이런식으로 나오길래 당황해서 구글링으로 해결했는데 나중에 똑같은 에러가 발생했을 때를 위해 기록해 두려고한다.zsh: command not found: npmzsh: command not found: node또는 homebrew 설치를 위한 brew를 입력하면 똑같이 zsh 에러가 나타나는것을 확인할 수 있는데/opt/homebrew 디렉토리 삭제 후 아래 방법으로 다시 설치하니 해결 됬었다. 1. /opt 디렉토리 이동cd /opt 2. Homebrew 디렉토리를 만든다 (root 권한 필요)sudo mkdir homebrew 3. /opt/homebrew 디렉토리의 소유권을 부여(root 권한이 필요 없도록)sudo chown -R $(whoami)..
빌드의 자동화를 위한 Jenkins(젠킨스) 오늘은 개발을 위한 빌드부터 배포까지 자동화 해주는 Jenkins에 대해 간략하게 알아보려고한다.개발자가 서버에 기능을 추가하려면 먼저, 개발자의 PC를 통해 개발을 하고 테스트까지 한 뒤, 이상이 없다고 판단이 되면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영을 한다.여기서 서버에 반영하는 것을 배포(Deploy)라고 하며, 배포 하기 위한 준비 과정을 빌드(Build)라고 한다. 빌드의 자동화?위에서 설명 된 것 처럼 빌드는 서버에 올릴 수 있는 상태로 만드는 것을 의미한다.그렇다면 빌드는 하루에 한번을 할 수 있으며, 안할 수도 있지만 1주일, 1달로 계산하면 꽤 많이 하게된다. 그리고 이 시간이 점차 늘어나 1년으로 된다면 상당히 많은 시간이라고 할 수 있다.예를 들어 예전에는 Java를 ..

728x90
반응형