Artillery 부하테스트
·
AWS
1. Artillery란?(Aritllery 로 부하테스트를 진행한 이유 + 웹에서 리포트 및 그래프 확인 가능) 2. Artillery 설치 및 yml 작성sudo apt updatesudo apt install nodejs npm -ysudo npm install -g artillery 설치가 완료되면, 다음 명령어를 통해 설치를 확인할 수 있다.npx artiller --version artillery를 사용하기 위한 load-test.yml파일 작성한다. 테스트 환경에 따라 arrivalRate를 변경해가며 사용한다.config: target: "[부하를 보낼 ALB/인스턴스 주소]:[포트번호]" phases: - duration: 60 # 테스트 시간: 60초 ..
[AWS][트러블슈팅] EC2 CPU100% 문제 해결
·
AWS
현재 프리티어를 사용해서 프로젝트를 진행중인데, EC2에서 자꾸 CPU 100%를 찍는 문제가 발생했었다.이렇게 되면 서비스가 아예 죽거나, 상태검사에서 통과하지 못해 ssh 접속이 아예 안된다는 문제가 있었다.문제를 해결하려 방법을 찾아보던중, SWAP 메모리를 추가해 메모리 공간을 추가해줄 수 있다는 블로그 글을 발견했다. 1. Swap 메모리?Swap 메모리는 리눅스 시스템에서 물리적 메모리(RAM)가 부족할 때를 대비한 가상 메모리 공간이다. 따라서 RAM이 부족할 때 디스크에 데이터를 임시 저장하여, 시스템이 계속 동작할 수 있도록 도와주는 보조 메모리 공간이라고 할 수 있다. 스왑의 동작 원리는 다음과 같다.사용 중인 RAM이 가득 차면,리눅스 커널은 덜 자주 쓰이는 메모리 페이지를 디스크에 ..
[AWS]기존 EC2로 AMI 이미지 만들고, AutoScaling 그룹에 ELB 연결하기
·
AWS
대용량 트래픽을 처리하기 위해서는 AutoScaling이 필요하고, 부하를 분산시켜주기 위한 로드밸런서도 필요하는 사실을 알고 있었다. 하지만 실습을 통해 이를 실제로 만들다 보니, 구현하기 위해 필요한 서비스들이 더 많았고 처음보는 개념도 있었다. 0. 전체 구조 설명 Elastic Load Balancer (ELB)외부/내부에서 들어오는 트래픽을 한 개의 엔드포인트를 통해 수신한다.트래픽을 여러 EC2 인스턴스 등에 자동으로 분산할 수 있도록 한다.로드밸런싱 알고리즘에 따라 트래픽을 Target Group으로 전달한다.Target GroupELB와 실제 EC2 인스턴스 사이를 연결하는 중간 매개체실제 트래픽을 전달할 대상(EC2 인스턴스, Lambda 함수, IP 등)의 목록을 관리하고, 상태를 감..
[AWS] 로드밸런서 유형과 구성요소
·
AWS
1. 로드밸런싱AWS에는 두가지 종류의 로드밸런서가 존재한다.1.1 ALB vs NLBALB(Application Load Balancing) ➡️ L7애플리케이션 계층에서의 요청을 분석HTTP, HTTPS 트래픽을 이해하고, URL, 쿠키, 쿼리 문자열 등을 기반으로 라우팅 가능어플리케이션 데이터 분석 필요 -> 부하 발생으로 상대적으로 느림NLB(Network Load Balancin) ➡️ L4네트워크 계층에서 패킷을 그대로 전달IP 주소와 포트 기반으로 트래픽을 분배개별 요청을 분석하지 않고, 연결(TCP/UDP) 자체를 로드밸런싱패킷을 가공하지 않고 그대로 전달 -> 속도가 빠름✅ Spring 어플리케이션을 AWS에 올려서 사용하는 것이므로, ALB가 적합하다! 1.2 로드밸런서의 구성요소리스너..
[AWS]Spring boot 프로젝트 EC2로 배포하기
·
AWS
1. EC2 인스턴스 생성하기1.0 서울 리전으로 설정하기 (np-north)1.1 인스턴스 이름 및 이미지 선택1.2 키페어 생성 키 페어가 생성되면, .pem 파일이 자동으로 다운로드된다.이 키는 2에서 SSH 연결에서 사용된다! 나머지는 기본으로 설정하고, 인스턴스 생성하기1.4 보안그룹 수정하기EC2 서버를 생성할 때, 보안그룹 새로 생성이 포함되었기 때문에 EC2탭 > 네트워크 및 보안 > 보안그룹을 확인해보면함께 생성된 보안그룹이 존재한다. (만약 보안그룹을 새로 생성하지 않았다면, 보안그룹 생성을 클릭하여 생성해주면 된다.)이름이 없는 보안그룹의 이름을 설정해준다. EC2 서버를 띄워서 접속하는 것이 목적이므로, 인바운드 규칙만 설정해주면 된다. 규칙 설정 후, EC2 인스턴스 > 보안 ..
[AWS][트러블슈팅] S3 정적 웹사이트 호스트 오류 발생 (403 forbidden, 404 nosuchkey 오류)
·
AWS
1. 403 forbidden 오류 = 버킷 정책을 설정하지 않아서 발생하는 오류'S3 > S3객체 > 권한 > 버킷 정책 편집 > 정책 생성기' 클릭한다. 버킷 정책 생성에서, - GetObject, PutObject로 설정해준다.- ARN + 맨 뒤에 /* 를 붙여서 규칙을 생성한다. 생성된 규칙을 복사/붙여넣기 하고, 변경사항을 저장한다.2. 404 nosuchkey 오류 = 에러페이지를 지정하지 않아서 발생하는 오류인덱스 문서와 오류 문서를 동일하게 지정해주면 에러는 해결된다. 하지만 사실상, 원인 모를 오류가 발생하기때문에 내가 원래 연결하고자하는 페이지(인덱스 문서)로 연결이 안되는 상황에서 오류 문서로 가는 리디렉션 페이지를 내가 원하던 페이지와 동일하게 지정해주는 것이다. 따라서 근본적인 ..