상세 컨텐츠

본문 제목

[AWS] Auto Scaling | Image | 시작 템플릿 | 부하테스트 | Load Balancer

IT/AWS

by o_zeew 2022. 6. 23. 19:21

본문

(0) 초기 세팅

(1) Auto Scaling

     - Image 생성

     - 시작 템플릿 생성

     - Auto Scaling 생성

     - 부하 테스트

     - LoadBalancer 생성 후 AutoScale Association


0. 초기 세팅

 

1. 인스턴스 생성

bastion, wordpress-a 생성

 

2. RDS 생성

  - 엔진 : mysql

  - 클래스 : t2.micro

 

  - mysql 버전 5.7.21

  - 마스터 사용자 이름 : admin

 

3. bastion에 private 키 올리기

 

4. php 설치

bastion에서 web-a로 접속
httpd 설치
php7.2 사용 설정
lamp-mariadb10.2-php7.2 사용 설정
php 파일들 설치

 

5. wordpress 설치

wordpress 압축 파일 다운
압축 파일 확인
wordpress 압축 파일 해제
wordpress의 모든 파일을 /var/www/html/로 복사 후 권한 수정

 

6. conf 파일 수정

/etc/httpd/conf/httpd.conf 파일 수정

 

7. wp-config.php 파일 수정

sample 파일을 복사해서 wp-config.php 파일 생성

 

  - RDS의 DNS를 사용해 nslookup으로 DNS 조회를 하면 RDS가 돌아가는 서버의 IP를 알 수 있음

데이터베이스의 엔드포인트 확인
nslookup을 통해서 데이터베이스가 돌아가고 있는 서버의 IP 주소 확인

 

  - DB 호스트 : RDS가 돌아가고 있는 서버의 IP 주소 입력

/var/www/html/wp-config.php 파일 수정

 

8. http 시스템 재시작

 

9. wordpress 가입

워드프레스 설치

 

10. DB 연동 확인

  - mysql client 설치 후 진행

데이터베이스의 IP로 로그인
wordpress db 확인
위에서 가입한 사용자의 정보 확인 가능

 

 


 

 

 1. Auto Scaling 

  - 가용 영역간 인스턴스를 균일하게 분산, Amazon EC2 인스턴스 모음

 

1. Image 생성

  - 오토 스케일링을 사용하기 위해서 이미지 필요

  - Wordress_A를 사용해 이미지 생성

    → [systemctl enable httpd] 명령어를 통해 이미지를 통해 생성되는 모든 인스턴스들이 httpd가 자동시작 되도록 설정

enable 명령어를 통해 httpd가 자동으로 시작되도록 설정
Wordpress_A - 이미지 및 템플릿 - 이미지 생성
이미지 이름, 설명 작성
이미지 생성 완료

 

2. 시작 템플릿 생성

Auto Scaling 그룹 생성 클릭
시작 템플릿 생성 클릭

 

  - 시작 템플릿 생성을 클릭하면 새로운 브라우저 창이 열림

시작 템플릭 이름, 설명 작성

 

  - 템플릿을 생성할 때 쓸 이미지는 위에서 생성한 내 AMI 사용

Wordpress_A를 사용해 생성한 wordpress AMI 사용
인스턴스 유형, 키 페어 설정
서브넷, 보안 그룹 설정
시작 템플릿 생성 완료

 

3. Auto Scaling 생성

  - 시작 템플릿 창을 끄고 다시 Auto Scaling 생성 창으로 이동

생성한 시작 템플릿 사용
VPC, 가용 영역 설정
로드 밸런서 없음 설정

 

  - 원하는 용량 : 1 (2로 설정하면 처음부터 2개의 인스턴스 생성)

  - 최소 용량 : 1 (인스턴스가 생겨날 시 용량 1)

  - 최대 용량 : 10 (용량 1의 인스턴스가 최대 10개까지 생성됨)

 

  - 대상 추적 크기 조정 정책을 활성화 해야 실습 진행 가능

  - CPU의 사용량이 50%가 넘어가면 인스턴스가 자동으로 새로 생성됨

Auto Scaling 그룹 생성 완료

 

  - Auto Scaling 그룹을 생성했기 때문에 인스턴스가 새로 생성됨

  - Wordpress 연동을 한 Wordpress_A 인스턴스로 이미지를 만들어서 시작 템플릿을 생성했기 때문에 새로 생성된

    인스턴스는 자동으로 Wordpress 연동 설정이 다 되어있는 상태

새롭게 생성된 인스턴스의 공인 IP 확인
공인 IP로 wordpress 접속 가능

 

4. 부하 테스트 

  - CPU 사용량이 50%가 넘어갔을 때 인스턴스가 생성되도록 설정 했기 때문에 CPU 사용량이 높아질 때 인스턴스가 

    생성되는지 확인

epel 사용 설정
epel enabled 확인
epel-release 설치
스트레스를 주기 위해 stress 설치
cpu에 부하 설정

 

  - xShell을 세션 복제 하여 [top] 명령어로 cpu 사용량 확인

cpu의 사용량 100 확인

 

  - CPU의 사용량이 50% 이상으로 올라가자 잠자고 있던 인스턴스가 생김

 

5. LoadBalancer 생성 후 AutoScale Association

  - Load Balancer 생성

대상 그룹 생성 후 진행
인터넷 연결
VPC의 서브넷은 2개 이상
default 보안 그룹
외부에서 80번 포트로 접속 시 대상그룹 실행
로드 밸런서 생성 완료

 

  - 대상그룹의 health check

정상 확인
접속할 수 있는 DNS 확인

 

  - Auto Scaling 그룹 생성

Auto Scaling 그룹 생성
이름 설정
위에서 생성한 시작 템플릿 사용
VPC, 가용영역 및 서브넷 설정
생성한 로드밸런서에 연결
상태 확인 유예 기간 30초 설정

 

  - cpu 과부하가 걸리면 인스턴스 최대 10개 생성

그룹 크기 설정

 

   - 평균 cpu 사용률이 50%가 넘으면 잠자고 있던 인스턴스 생성(최대 10개)

Auto Scaling 그룹 생성
Auto Scaling 그룹 생성 완료

  - Auto Sacling 그룹을 생성시 설정한대로 1개의 인스턴스가 생성됨

 

  - Wordpress_A 인스턴스로 이미지를 만들었기 때문에 Auto Scaling 그룹으로 인해 생기는 인스턴스들은

    Wordpress 연동이 되어있는 상태

새롭게 생성된 인스턴스에 별다른 설정을 하지 않아도 wordpress 연동 확인 가능

 

6-1. 부하 테스트 (Windows)

Apache JMeter - Download Apache JMeter

 

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 설치 (JAVA 8+ 이상 필요)

jmeter.bat 실행

 

  - 스레드 그룹 : 하나의 테스트 케이스. 아래의 여러 Sampler들의 합으로 이루어져있음

Thread Group 생성

 

  - Number of Threads : 실행할 스레드의 갯수 (동시에 몇개의 트렌젝션을 실행시킬 지 = 동시 접속 효과)

  - Loop Count : 스레드의 반복 횟수

10명의 동시접속자를 1000번 반복

 

  - Sampler : 하나의 작은 작업 단위

HTTP Request Sampler 생성
Server Name : 로드밸런서의 DNS 주소
재생 버튼으로 부하 시작
cpu 사용량 증가
Auto Scaling 그룹의 잠자고 있던 인스턴스 생성 확인
대상 그룹에서도 확인 가능

관련글 더보기