본문 바로가기
반응형

DevOps76

3. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - Nginx 튜닝 지난 시간에 보셨던것처럼 AWS Elastic Beanstalk은 기본적으로 Nginx을 갖고 있습니다. 이 내용을 모르시는 분들 입장에선 성능 튜닝시 Nginx 부분은 놓치실 수 있는데요. 그래서 이번 시간에는 Nginx와 Spring Boot 간의 성능 튜닝 과정을 진행해보겠습니다. 모든 코드는 Github에 있습니다. 3-1. 여전히 많은 TIME_WAIT 소켓 지난 시간에 net.ipv4.tcp_tw_reuse 값을 수정하여 로컬 포트 고갈 문제를 해결하였습니다! 그리고 수정된 버전으로 다시 한번 성능 테스트를 진행했는데요. Vuser 50으로 맞추고 테스트를 하니 TPS가 4700까지 올라갔습니다! 중간에 DB Connection이 부족한것이 발견되어 DB Connection Pool Size와.. 2018. 7. 23.
2. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - 커널 파라미터 튜닝 지난 시간에 Nginx에 엄청난 양의 에러로그가 발생하면서 부하 테스트가 강제 종료되었습니다! (Nginx log) 이번 시간엔 해당 문제를 해결하는 과정을 진행하겠습니다. 2-1. TIME_OUT과 소켓 로그를 자세히 보면 아래와 같습니다. 2018/07/19 08:03:23 [crit] 2872#0: *338613 connect() to 127.0.0.1:8080 failed (99: Cannot assign requested address) while connecting to upstream, client: 13.125.61.131, server: , request: "GET /availablePoint/1 HTTP/1.1", upstream: "http://127.0.0.1:8080/availab.. 2018. 7. 20.
1. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - DB Connection Pool 안녕하세요 이번 시간에는 AWS Beanstalk을 이용한 웹 어플리케이션 서버 성능 튜닝 시리즈를 시작합니다. 모든 코드는 Github에 있으니 참고하시면 됩니다. 신규 서비스를 출시할때마다 성능 테스트와 튜닝을 꼭 진행해야합니다. 이번에 신규 프로젝트를 준비하면서 이것 저것 시도해본 내용을 샘플 예제로 정리합니다. 0. 테스트 환경 테스트 환경은 아래와 같습니다. AWS Elastic Beanstalk c5.large 1대 t2.large 보다 저렴합니다. AWS Aurora RDS AWS와 같은 클라우드 환경에 최적화 r4.large AWS Aurora 도입전에 알아야 할 몇가지 사실 참고 Spring Boot 2.0.3 DataSource Hikari CP 설정 X (기본값) 사용한 쿼리 sele.. 2018. 7. 17.
Travis CI와 AWS ElasticBeanstalk 연동하기 안녕하세요? 이번 시간에는 Travis CI를 이용하여 Spring Boot를 AWS Beanstalk에 배포하는 과정을 소개드리겠습니다. 모든 내용은 Github에 있기 때문에 코드를 참고하시면 도움이 되실것 같습니다. AWS에서는 heroku와 같은 일체형 서비스를 지원하고 있습니다. 그게 바로 AWS ElasticBeanstalk인데요. EC2처럼 하나하나 설정할 필요없이 웬만한 기능들은 다 자동화 되기도 하고, 추가 설정들은 config 파일로 해결할 수 있어서 빠르게 구축할 수 있는 장점이 있습니다. 만약 개인 프로젝트를 AWS ElasticBeanstalk에 구축한다면 Travis CI와 함께 이용하시면 젠킨스나 Code Pipeline등을 별도로 구축할 필요 없이 편하게 개발 환경이 완성됩니.. 2018. 7. 13.
tcpdump 기본 사용법 CentOS/RHEL에서 설치하기 sudo yum install tcpdump 자주 사용하는 옵션 옵션 설명 -nn 출력 결과의 포트를 변환 없이 그대로 출력한다. 옵션을 적용하지 않으면 가장 대중적인 프로토콜로 보여준다. ex) 80 -> http, 443 -> https -vvv 패킷의 모든 정보 (TTL 등을 보여준다. 단, 데이터는 볼 수 없다. Request Body, Response Body 등) -A 패킷의 내용을 ASCII 형태로 출력한다. 데이터가 암호화 되지 않았다면, 데이터도 보여준다. (Request Body, Response Body 등) -G 패킷 정보를 저장하는 파일을 일정 주기로 갱신한다. 기본 단위는 s (초) -C 패킷 정보를 저장하는 파일을 일정 크기로 갱신한다. 기본 .. 2018. 7. 8.
3. AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기 - 젠킨스 연동 4. 배포 Jenkins 환경 설정 여기서는 Batch가 아닌 배포 Jenkins 페이지로 이동합니다. 배포 Jenkins에서 Github에 올라간 코드를 가져오려면 Github과 연동이 필요합니다. Jenkins와 Github 연동은 이전에 작성된 포스팅를 참고해서 진행하시는것을 추천드립니다. 연동이 되셨으면 배포 Job을 생성하겠습니다.매개변수 (파라미터)에는 Choice Parameter를 선택합니다. 여기서는 member-batch 모듈만 있어서 member-batch 만 등록했지만, member-api, member-admin 등 여러 모듈이 있다면 다 등록하시면 됩니다. 소스코드 관리에서는 배포할 프로젝트의 Github 주소를 등록합니다.배포 스크립트 내용은 좀 길어서 아래 코드를 그대로 복사.. 2018. 7. 7.

728x90