본문 바로가기

nginx5

EC2 (Amazon Linux 1) 에 Jenkins 설치하기 아마존 리눅스 1에서 Jenkins 설치 하는 방법이 여기저기 퍼져있어, 하나의 글로 정리합니다. 1. 버전 확인 먼저 현재 자신의 서버가 아마존 리눅스 1이 맞는지 확인합니다. 기억이 안나신다면 서버에서 아래 명령어로 버전을 확인합니다. cat /etc/*release Linux2가 적혀있지 않다면 1이 맞으니 그대로 진행하시면 됩니다. Linux1의 경우 실제로 Centos 6.x 버전이라 Centos 6을 쓰시는 분들도 동일하게 쓰시면 됩니다. 2. Jenkins 설치 먼저 yum update로 최신화 합니다. sudo yum update 그리고 Jenkins를 설치해보겠습니다. 여기서 다른 서비스들 처럼 yum으로 Jenkins를 설치하려고 하실텐데요. 기본 패키지에는 Jenkins가 포함되어 있.. 2019. 8. 13.
4. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - 기타 자 이번 시간엔 이 시리즈에서 자세히 다루진 않지만, 꼭 해야할 여러 설정 포인트를 정리하겠습니다. 4-1. Open Files 예를 들어 @Async 혹은 CompletableFuture 와 같은 비동기 쓰레드를 많이 사용해야하거나, 응답시간이 오래 걸리는 외부 API 요청이 대량으로 발생하는 경우 등등 대규모 트래픽 서비스에서 자주 발생하는 것이 Too many open files 에러입니다. 좀 더 자세한 내용은 이전에 작성한 Java, max user processes, open files 를 참고해보세요! EC2, IDC 에서의 설정 방법이 해당 포스트 최하단에 있습니다. 위 이슈 등으로 인해 기본적으로 Linux 서버에 설정해줘야하는 값이 바로 Open Files 입니다. AWS Beansta.. 2018. 7. 26.
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.
7) 스프링부트로 웹 서비스 출시하기 - 7. Nginx를 활용한 무중단 배포 구축하기 이번 시간엔 무중단 배포 환경을 구축하겠습니다. (모든 코드는 Github에 있습니다.) 7-1. 이전 시간의 문제점? 이전 시간에 저희는 스프링부트 프로젝트를 Travis CI를 활용하여 배포 자동화 환경을 구축해보았습니다. 이젠 Master 브랜치에 Push만 되면 자동으로 빌드 & 테스트 & 배포가 자동으로 이루어집니다. 하지만! 배포하는 시간 동안은 어플리케이션이 종료가 됩니다. 긴 시간은 아니지만, 새로운 Jar가 실행되기 전까진 기존 Jar를 종료시켜놓기 때문에 서비스가 안됩니다. 하지만 최근 웹 서비스들은 대부분 배포하기 위해 서비스를 정지시키는 경우가 없습니다. 어떻게 서비스의 정지 없이 배포를 계속 할 수 있는지 이번 시간에 확인하고 서비스에 적용해보겠습니다. 7-2. 무중단 배포? 예전.. 2018. 2. 2.
Nginx Cache 문제 해결 시리즈 안녕하세요? 이번 시간에는 제가 최근에 zum.com을 운영하면서 실수했었던 내용들 중, Nginx에 관련된 내용들을 정리하였습니다. (Nginx외에도 정말 많은 실수를 했지만 이번엔 Nginx만 하였습니다^^;) 본문 시작전에 간단히 zum.com의 서버구조를 소개드리면, (아주 간단하게 그린 줌닷컴 구조) L4를 Load Balancer로 사용하여 28대의 서버에 균등하게 요청을 분배하고 있습니다. 이때 각 서버는 Nginx와 Tomcat을 함께 가지고 있으며, Nginx를 리버스 프록시 서버로 사용하고 있습니다. 리버스 프록시 서버란? 일정 수준 이상의 규모를 가진 웹 서비스에서는 웹 서버(Nginx)와 웹 어플리케이션 서버 (Tomcat)를 분리하여 웹 서버를 프록시 서버로 두어 사용자의 요청을 .. 2016. 11. 8.