1216 - AWS Instance, Auto Scaling, Load Balancer
교제 p32 05 부터 시작
aws홈페이지 접속하고
내꺼 인스턴스 켜주고
퍼블릭ip복사해서
mobaxterm으로 들어간 다음
세션 - ssh
ip에 퍼블릭ip넣고
옆에 계정에 ec2-user넣고
개인키는 저번에 다운받아서 둔 바탕화면 폴더 안에 키를 넣으면된다
여기에 이 파일 두개 있는지 확인
이게 들어가있으면 된다
그래야 명령어를 쓸 수 있다.
.
이렇게 나오는데
엔터를 누르면 계속함
!누르면 이렇게 변함
선택이 되면 별표가 생김
node.js만 체크하고 나머지는 해제
이렇게 하고 엔터
여기서 멈추는데
시스템에 가상 메모리가 부족해서 문제가 발생한다고 경고하는 문구라서
ctrl+c누르고 취소
그리고 위에서 복사해서
이 명령어들 실행
그리고 다시 설치하고
엔터
node.js만 선택하고 엔터
다운로드 하면서 nginx설치할거냐 1누르고 엔터
nginx어디에 설치될건지 묻는건데 /opt/nginx에 설치할거라 엔터
하면
퍼미션 오류가 떠서 멈춘다
위에 명령어들을 실행해줘야한다
우선 이 명령어를 먼저 실행하고 위의 명령어들을 실행한다
이 다음에 asdf global ruby 3.1.1을 실행하고
다시 passenger-install-nginx-mudule써서 아까 설정 그대로 설치함
나는 여기서 오류떠서 선생님 이미지를 받기로함
exit써서 ec2-user로 바꾼다음
sudo vi /opt/nginx/conf/nginx.conf 들어가서
내용 전부 지우고
worker_processes 1;
events{
worker_connections 1024;
}
http{
server_names_hash_bucket_size 128;
passenger_root /var/passenger/passenger-6.0.12;
passenger_roby /home/ec2-user/.asdf/installs/ruby/3.1.1/bin/ruby;
include mime.type;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name <내 인스턴스 퍼블릭ip>;
root /var/www/aws-exercise-a/public;
passenger_enable on;
passenger_app_type node;
passenger_startup_file /var/www/aws-exercise-a/app.js;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root him;
}
}
}
를 입력한다
그 다음
sudo /opt/nginx/sbin/nginx를 해서 nginx를 실행하고
웹브라우저에서 퍼블릭ip로 접속하면 홈페이지가 나온다
cd /etc/init.d
로 이동해서
sudo vi nginx파일로 들어간다
이 안에 내용을 복사해서 붙여넣는다
sudo chmod 755 nginx 써서 퍼미션을 바꿔주면
이제
sudo service nginx stop
sudo service nginx start
sudo service nginx restart
이런식으로 쉽게 조작할 수 있다
sudo chkconfig --add nginx 시작 서비스 관리툴에 nginx추가
sudo ntsysv를 써서 gui환경을 킨다
nginx에 space로 체크하고 나가면 추가된다
이제 이렇게 만든게 원본이다
지금부터는 스냅샷 만드는거
일단 실행중인 인스턴스를 중지하고
이렇게 하고 이미지 생성하면 된다
만든 이미지는 여기에
이렇게 나온다
이미지를 만들었으니 내 인스턴스 종료(삭제)
스냅샷을 가보면
이런식으로 나오는데 백업파일 이라고 생각하면 된다
오토스케일링 그룹의 인스턴스 만들려고
시작 템플릿을 만듬
ec2 - 시작탬플릿 - 시작탬플릿 생성
네트워크는 시작 탬플릿에서 의미가 없음(나중에 만들어봐야 알수있음)
보안그룹만 추가
이렇게 설정하고 생성하면 된다
이렇게 생성된 목록이 보인다
여기서 auto scaling 그룹 생성
다음
오토스케일링그룹 만들때는
가용영역을 걸쳐서 만든다
로드밸런스도 없음하고 다음
1대가 돌아가는데 용량이 부족하면 하나씩 늘려가면서 최대 3대까지
다음
다음
만들고나면 볼 수 있는데
여기서 체크하고 활동보면
정상적으로 다 만들었다고 나온다
만들어 진게 확인되면
ec2에 인스턴스로 가면
인스턴스에 새로 만들어 진걸 볼 수 있다
이제 퍼블릭 주소 복사해서 mobaxterm으로 접속
원래라면 오토 스케일 그룹을 프라이빗에 둬야함
그래서 오토 스케일 그룹에 접속을 하고싶으면 로드밸런스에 접속을 해야한다
아까 만든 이미지가 여기 들어있음
모니터링을 보면
이런식으로 나오는데 60%이상 나오면 추가가됨
임의로 60%로 올려볼 것임
설치한 다음 이 명령어를 쓰면
cpu사용률이 올라가게 되는데
cpu 사용률이 60이상으로 올라간상태에서 지속되면
이런식으로 인스턴스 하나가 추가가 됨
스트레스가 끝나서 cpu가 떨어지고 시간이 지나게 되면
만들어진 인스턴트들이 지워진다
만들었다 지워진 기록이 보인다
만든지 오래된 애부터 지워진다
로드밸런스
1번으로 생성
오토 스케일링 그룹과 같은 a,c
ssh는 로드밸런스타고 안들어가기때문에 http만
대상그룹생성
다음
오토 스케일 그룹과 연결하는 이유
인스턴스로 연결하면 나중에 인스턴스가 늘거나 줄면 대상이 달라지기때문에
오토 스케일로 연결하면 줄어들든 늘어나든 연결이 되기때문에 오토 스케일 그룹과 연결됨
생성하고
등록한다
이상태로 등록하려고하면 인증서를 달라고하는데
https를 제거하고
생성한다
생성이 완료됨
여기서 편집
업데이트한다
연결된게 확인됨
로드밸런스로가면 대상그룹으로 가고 대상그룹에서 인스턴스로 연결시켜주는것
로드밸런서 접속확인법
여기가서 dns이름 복사
새로운 탭에 주소 붙여넣으면
접속된다
router 53 접속
dns관리 숫자클릭
jinlabs.net클릭
레코드 생성
생성하고 나서
도메인으로 하면 접속된다
집에 갈때
편집
ec2에 가서 삭제하는게 아니라 오토 스케일에 가서 0 0 0으로 설정하고 간다