본문 바로가기
반응형

nginx8

2. Github Action & AWS Beanstalk 배포하기 - profile=local로 배포하기 지난 시간에 만들어둔 Github Action을 통해 profile=local로 Beanstalk에 배포를 진행해보겠습니다. profile=local, 즉, 운영 DB와 구글&네이버 OAuth 를 사용하지 않는 간단한 테스트 용도로만 배포할 예정입니다. 실제 운영 배포는 다음 시간에 진행할 예정입니다. Github Action과 Beanstalk 연동된 환경 (즉, 이번 시간에 설정된 환경)를 구성하고 이를 기반으로 개선하는 과정으로 진행할 예정입니다. 지난 시간과 마찬가지로 모든 애플리케이션 코드 (Java & Gradle)는 저의 저서 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 기반으로 합니다. 2020.12월 기준이기 때문에 시간이 지나면 AWS의 UX 변경이 있을 수 있습니다. 최대한 키워.. 2021. 1. 16.
EC2 (Amazon Linux 2) 에 Jenkins 설치하기 기존에 작성된 EC2 (Amazon Linux 1) 에 Jenkins 설치하기 이 있지만, 현재 AWS에서 Amazon Linux2가 메인 이미지가 되었기에 해당 버전으로 설치하는 법을 진행하겠습니다. 아시다시피 Amazon Linux 2는 CentOS 7.x 호환입니다. 1. 버전 확인 먼저 현재 자신의 서버가 Amazon Linux2가 맞는지 확인합니다. 기억이 안나신다면 서버에서 아래 명령어로 버전을 확인합니다. cat /etc/*release 2. Jenkins 설치 Jenkins 설치는 크게 달라진 점은 없습니다. 다만, Jenkins 설치에 필요한 Java가 기본 설치되어 있지 않습니다. Amazon Linux 1에서는 Java7이 기본 설치되어 있었습니다. 그래서 기존처럼 Java7을 삭제할.. 2020. 12. 31.
AWS Beanstalk Linux2 에서 Nginx 설정이 안될때 기존에 AWS Beanstalk을 사용할 경우 아래와 같이 nginx.config 파일을 교체하라고 가이드를 받는데요. (AWS 공식 문서)그래서 실제로 프로젝트 구조를 다음과 같이 잡고 배포를 진행합니다.배포할때 사용하는 스크립트 (travis.yml 혹은 githubAction.yml) 역시 이 구조를 그대로 가져가기 위해 다음과 같이 설정합니다. - name: Generate deployment package run: | mkdir -p deploy cp build/libs/*.jar deploy/application.jar cp Procfile deploy/Procfile cp -r .ebextensions deploy/.ebextensions cd deploy && zip -r deploy.zi.. 2020. 12. 22.
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 -y 그리고 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.

728x90