카테고리 없음

1216 - AWS Instance, Auto Scaling, Load Balancer

초보공부 2024. 12. 16. 16:07

교제 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파일로 들어간다

https://git.io/JeMFD

이 안에 내용을 복사해서 붙여넣는다

 

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으로 설정하고 간다