소프트웨어-이야기/인프라 썸네일형 리스트형 [uWsgi] harakiri 옵션 - 지나치게 오래걸리는 요청 제어하기 harakiri 하라키리는 워커의 Request 처리 지연을 예방할 수 있는 uWsgi의 기능이다. Request 처리 시간이 uWsgi에 설정한 값보다 오래 소요되는 경우, 해당 Request는 제거되고, 워커는 재사용된다. 사용법 uwsgi 설정 [uwsgi] http = 0.0.0.0:80 harakiri = 30 ...nginx 설정 nginx의 timeout은 harakiri 설정과 동일해야, 각 기능이 기대한대로 동작하게 된다. 예를 들어, harakiri 값이 더 높으면, nginx timeout 설정이 의미 없게 된다. 반면, harakiri 설정값이 더 낮으면, harakiri 설정이 의미 없게 된다. location / { proxy\_pass http://my\_uwsgi\_upstr.. ElasticSearch Remote Reindex - ES 버전업과 마이그레이트 Remote Reindex란?Elasticsearch의 Reindex API를 사용하면 도큐먼트를 새로운 인덱스로 복사할 수 있다. Remote Reindex를 사용하면, 도큐먼트를 원격 클러스터의 인덱스로 복사할 수 있다. 때문에 이 기능을 사용하면 Elasticsearch 버전업을 수월하게 할 수 있다. Rolling Upgrade가 불가능한 버전 업을 해야하는 경우, 실시간으로 구 클러스터와 신규 클러스터의 인덱스를 동기화해야하는 경우에 유용하게 쓰일 수 있다. POST _reindex { "source": { "remote": { "host": "http://oldhost:9200", "username": "user", "password": "pass" }, "index": "source", "q.. (Istio) Traffic Management - Network resilience Istio의 Traffic Management 기능은 네트워크의 탄력성 (resilience)을 높이는 역할을 담당하고 있다. 이를 위해 failure recovery 기능과 fault injection feature 기능을 지원한다. 특정 노드에서 네트워크 오류가 발생하면, Istio는 의도적으로 결함을 일으킨다. 그리고 그동안 서버가 복구될 수 있는 시간을 확보한다. 이러한 방식은 특정 노드의 장애가 전체 노드에 전파되는 것을 막는다. 이는 Fault tolerant 시스템을 가능하게 해준다. 덕분에, 일부 서비스에서 결함이 발생하더도, 전체 서비스는 잘 운영될 수 있다. Timeouts Envoy proxy가 서비스 노드에서 응답받아야하는 최대 시간을 의미한다. 이 시간내에 응답하지 않으면, HTT.. ngrok - 외부에서 로컬 컴퓨터에 접속할 수 있게 만들기 ngrok 로컬에서 실행중인 서버를 외부에서 접속할 수있도록 도와주는 프로그램이다. ngrok은 로컬에서 개발 중인 API와 웹페이지를 다른 컴퓨터에서 조회해야할 때 유용하다. 예를 들어, 로컬에서 띄운 포트인 "localhost:3000"를 "a6fee076.ngrok.io" 처럼 도메인을 만들어주고, 도메인을 통해 외부에서 접속도 가능하게 해준다. 설치 ngrok 사이트, npm, brew 등으로 설치하면 된다. npm install ngrok 실행 ngrok http 3000 [Varnish] Vary User-Agent HTTP Header가 캐시 퍼포먼스에 미치는 영향 Vary HTTP Header란? vary: Accept-Language, User-Agent, Cookie, Accept-Encoding 동일한 URL에서 사용자 에이전트에 따라 다른 응답을 내려줄 때 가용되는 Header이다. Vary User-Agent HTTP Header가 Cache Hit에 미치는 영향 과거의 웹 환경에서는 에이전트 환경 별로 보여주는 HTML이 달랐다. 그래서 Vary Header의 User-Agent 값을 활용하여 클라이언트 별로 다른 데이터를 내려줬다. 그러나 오늘날에는 에이전트별로 다른 HTML을 내려주지 않는다. 그리고 현대 웹 개발에서는 JSON 데이터으로 데이터를 주고받기 때문에, 유저 에이전트 별로 데이터가 다른 경우는 흔치 않다. 때문에 Vary HTTP Hea.. [APM]Elastic APM Agent 튜닝하기 최근에 회사에서 Elastic APM을 도입했다 ! 호호 🙉 쌩으로 도입한 후, 1주일 지켜본 결과. 몇가지 튜닝이 필요한듯하여 관련 자료를 찾아보았다! ( 튜닝을 안하니 APM Queue가 가득 찼다는 오류가 난다 🙈 ) 1. Sample Rate APM 에이전트에서 기본적으로 샘플링된 트랜잭션을 수집하긴 하지만, 수집 비율을 조정할 수 있다. transaction_sample_rate 설정을 조정하면 스토리지 비용과 APM 운영으로 인한 부하를 줄일 수 있다. 100% 샘플링을 하더라도 Agent가 API 응답시간에는 영향을 미치지 않는다. 그리고 샘플링되지 않은 트랜잭션이더라도 응답시간 같은 기본 정보들은 수집된다. https://www.elastic.co/guide/en/apm/agent/java.. AWS CodeDeploy와 AWS CodeDeploy Agent (2) - B. CodeDeployAgent B. CodeDeployAgentEC2에 저장된 CodeDeployAgent 로그 위치/var/log/aws/codedeploy-agent EC2에 저장된 CodeDeployAgent 프로그램 파일 위치/opt/codedeploy-agent CodeDeployAgent는 루비로 되어있다. 그래서 CodeDeployAgent를 실행시키려면 루비가 설치되어있어야한다.루비는 인터프리터 언어여서, 별도의 빌드작업이 필요하지 않다. CodeDeployAgent 소스코드 변경하고 싶으면, 저 위치에 있는 소스코드 수정 후, code deploy agent를 재가동해주면 된다. 배포된 프로젝트 파일이 저장되는 곳/opt/codedeploy-agent/deployment-root/{배포-애플리케이션-식별자}/{배포-유.. AWS CodeDeploy와 AWS CodeDeploy Agent (1) - 1. CodeDeploy 요즘 AWS CodeDeploy Agent 오픈소스 커미터되기 스터디를 하고 있다. AWS CodeDeploy Agent 코드를 분석하면서 알게 된 내용들을 틈틈이 정리해보고자 한다 👩🎓 1. CodeDeploy CodeDeploy의 기본적인 구동 방식 ( 참고 링크 ) 1. AWS CodeDeploy Agent 코드를 다운받아서, AWS EC2에 실행시켜두기 2. AWS CodeDeploy 에서 배포하기 3. AWS CodeDeploy에서 배포되었다는걸, Agent가 감지하면 코드를 EC2에 복사시켜준다. EC2에 CodeDeploy 세팅하는 방법 https://jojoldu.tistory.com/281 CodeDeploy에서 배포할 코드를 가져오는 방법 1. S3에 배포할 파일 압축해서 올려두기 압.. 이전 1 2 3 4 5 다음