목록개발이야기/서버 (8)
기억하기 프로젝트
www.slideshare.net/awskorea/2017-aws-startup-day-spot-deepdive-81455290 [2017 AWS Startup Day] AWS 비용 최대 90% 절감하기: 스팟 인스턴스 Deep-Dive 연사: AWS 윤석찬 Tech Evangelist & 레진코믹스 DevOps팀 신근우님 https://aws.amazon.com/ko/events/start-up/ www.slideshare.net
gunju-ko.github.io/http/httpclient/2019/01/23/Apache-HttpClient.html Apache HttpClient Connection Management Apache HttpClient Connection Management 아파치 HttpClient는 지속 커넥션을 지원한다. HttpConnectionManager Http 커넥션은 복잡하고, stateful하며 thread-safe하지 않다. 따라서 제대로 동작하게 하기 위해서는 제대로 gunju-ko.github.io www.baeldung.com/httpclient-connection-management HttpClient Connection Management | Baeldung How to open, m..
medium.com/@dudwls96/localstack-%ED%99%9C%EC%9A%A9%ED%95%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0-9b81ec51749c LocalStack 활용한 테스트 환경 구성하기 요즘 클라우드가 대세이고 다양한 클라우드 서비스에 위에 우리는 개발을 하고 있습니다. 또한 개발에서 클라우드 서비스와 함께 연동해서 사용하는 경우가 많아지고 있어서 단위 테스트가 점 medium.com
Exponential Backoff 로 재시도 하기 위함이에요. 최초 1초 지연하고, 이후 2배씩 늘려가며 지연을 해요. Retryable이 기본 3번 시도하니깐, 호출 실패 -> 1초 대기 -> 호출 실패 -> 2초 대기 -> 호출 실패 -> 4초 대기 -> 호출. 이렇게 넘어가겠죠. SES의 API 호출은 1초에 1건씩 호출 할 수 있다고 해요. (Service quotas in Amazon SES) 운이 나쁘면 여러 곳에서 호출함으로 인해 실패를 할 가능성이 있어요. 그런 이유로 재시도가 필요하고 발송을 제외한 모든 호출에 대해 제한이 있으므로, 조금씩 재시도 타이밍의 차이를 두기 위함입니다. 요청량이 많아진다면 좀 더 진지하게 Jitter 를 도입해서 랜덤성을 좀 더 둬야 겠으나, 지금은 충돌이 ..
L4에서 수동으로 서버 내리거나 올릴 때- /sbin/ifconfig -a 명령어를 통해, L4로묶여있는 링크명 알아내서 이것이 만약 x라고 하면 /sbin/ifdown x 라는 명령어로 L4에서 해당 서버를 내린다.다시 서버를 올리기 위해서는 /sbin/ifup x 라는 명령어를 날려야 한다./sbin/ifdown, /sbin/ifup 명령어 모두 root권한에서 수행이 가능하므로 명령어 날릴 때 sudo를 붙여주어야 한다. L4의 목적L4 스위치의 목적은 로드밸런싱인데 스위치로 들어온 패킷을 적절하게 분배 및 전송해주는 기능을 한다.TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류 별로 처리하고(HTTP, FTP, SMTP ...)세션관리, 서버/방화벽 로드밸런싱, 네트워크 서비스..
톰캣 Document Root 설정방법server.xml 설정을 보면 태그 내의 appBase설정과, 그 하위 태그인 태그의 docBase 설정이 있다.둘 다 도큐먼트 루트 설정으로 보이는데, 어떤 차이가 있을까? 하고 문서를 찾아보았다. 1. 기본 Document Root톰캣의 기본 Document Root는 webapps/ROOT 이다. (default설정 - http://localhost:8080/ -> webapps/ROOT) 태그 속성인 appBase는 $CATALINA_HOME 디렉토리 밑 상대경로를 인자로 받는다.예를들어, appBase="webapps"로 설정한다면 $CATALINA_HOME/webapps 로 기본 도큐먼트 루트가 설정된다. - 태그가 생략되어 있으면 ROOT를 자동으로 D..
쉘 스크립트 첫 라인의 #!/bin/sh (여기서 '#'는 주석이 아님~) : 스크립트 파일의 실행을 bash쉘로 한다는 말을 뜻함이 라인을 기재하지 않아도 실행된다면, 리눅스 배포판은 기본적으로 bash쉘로 설정되어 있어서 bash쉘 상에서 무리없이 동작하는 경우이다.#!/bin/sh을 미리 선언해줘서 bash쉘 파일임을 미리 알려주는 것이다른 쉘 간에 오류를 피하는 방법이다. : 결론적으로, /bin 하위의 sh가 심볼릭 링크로 bash를 지정하고 있으므로, #!/bin/sh#!/bin/bash 둘 다 동일하게 실행된다고 볼 수 있다. 참고하여 요약 :) http://blog.whenji.com/278
Apache MPM 이란Multi Processing Module 다중처리 모듈을 뜻하며, apache가 받은 요청을 분배하는 방식을 말한다.많은 MPM 종류들 중, 대표적인 두 가지를 말하자면 prefork방식과, worker방식이 있는데리눅스 기반에서 apache를 처음 설치하면 default(기본으로)는 prefork 방식으로 설정 되어있다. prefork 방식한 자식 프로세스 당 하나의 쓰레드를 사용하는 방법으로, 기본 사용 메모리가 worker보다 높으며, 프로세스간 메모리를 공유하지 않는 독립형태이므로 안정적이다. worker 방식한 자식 프로세스 당 여러개의 쓰레드를 사용하는 방법으로, 기본 사용 메모리는 prefork보다 낮으며, 쓰레드간에 메모리를 서로 공유한다.