22.06.23
목차
1. 초기 세팅
2. Auto Scaling
- 이미지 생성
- 시작 템플릿 생성
- Auto Scaling 그룹 생성
- 부하 설정하여 테스트
- LoadBalancer 생성 후 AutoScale Group에 Association
- Jmeter 툴로 부하 설정하여 테스트
- Windows
- Linux
초기 세팅
- Bastion, WEB-A 인스턴스 생성
- RDS를 통해 DB 생성(MySQL) 및 Wordpress 연동
- Bastion으로 외부에서 접속하여 내부 인스턴스에 ssh로 접속하여 설정을 위해 공인 IP할당
- WordPress 연동확인 및 설치를 위해 WEB-A에도 공인 IP할당
- RDS 생성 시, 데이터베이스를 wordpress라는 이름으로 미리 생성
- Bastion에서 WEB-A 인스턴스로 접속하기 위해 Private Key 받아오기
- httpd, wordpress, php7.2 설치
- 메인페이지 출력파일을 html에서 php로 변경
Auto Scaling
- 시스템 자원들의 메트릭 값을 모니터링하여 서버 사이즈를 자동으로 조절
이미지 생성
- 이미지 생성 전에 enable을 통해 따로 httpd를 시작하지 않아도 영구적으로 되도록 설정
- 오토스케일링을 사용하기 위해서는 이미지가 필요하다
- Auto Scaling Group으로 묶기 위해 이미지가 필요
시작 템플릿 생성
- 시작 템플릿 배너에서도 생성 가능
Auto Scaling 그룹 생성
- 인스턴스 유형 요구 사항에서 시작 템플릿 확인
- 로드 밸런서는 따로 구현하지 않아서 패스
- 상태 확인 유예 기간 변경
- 상태 확인 유예 기간 : 얼마만에 검사할꺼냐라는 의미
- 모니터링 툴인 CloudWatch를 통해 그룹 지표 수집
- 원하는 용량은 1부터!
- 용량을 처음부터 주면 지정한 수에따라 인스턴스가 생성되므로
- 평균 CPU 사용률을 지표로 두어 50%가 넘어가면 인스턴스가 깨어나도록 설정
- WEB-A의 이미지를 그대로 받아 시작템플릿을 만들었으므로,
Auto Scaling 그룹에서 생성된 인스턴스들은 바로 Wordpress에 접속이 가능하다
부하 설정하여 테스트
- stress 패키지를 이용하여 테스트 진행
- stress 설치를 위해서는 epel이 설치되어야한다
- top 명령어를 통해 확인이 가능
LoadBalancer 생성 후 AutoScale Group에 Association
Jmeter 툴로 부하설정하여 테스트 - Windows
http://jmeter.apache.org/download_jmeter.cgi
Apache JMeter - Download Apache JMeter
Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava
jmeter.apache.org
- 해당 위치에서 Jmeter 설치(.zip 파일)
- JAVA 8+ 이상이 요구 된다
- 여기서의 Thread Group은 하나의 작은 작업 단위를 뜻함
- 동시 접속자 수 100명으로 설정
- Loop Count 무한대로 설정
- Infinite로 놓고 테스트를 진행하면 정상 진행은 되나 오래걸림
- Server Name에 로드 밸런서의 DNS를 넣어준다
- 로드밸런싱을 통해 페이지가 바뀌나 많은 동시 접속자들 및 무한 루프로 인해
데이터베이스 오류, 페이지 접속 불가 창이 뜨는 웹 서버가 존재함
- 만약, Health Check가 제대로 작동되지 않는다면 인스턴스 재부팅!
- 부하를 너무 쌔게 줘서 맛탱이가 간 느낌..ㅎ
Jmeter 툴로 부하설정하여 테스트 - Linux
- Jmeter 실행을 위해 java openjdk11이 필요
- amazon-linux-extras로 설치
- wget을 통해 웹에서 파일 다운로드
- 인스턴스 생성 시 t2.micro를 사용하기 때문에 1GB의 메모리로는 실행이 되지 않는 것
- Jmeter 실행까지 완료
- 옵션 찾아서 부하 테스트 해볼 예정..