Cloudest - 블로그 이사했습니다
노션으로 블로그를 옮겼습니다.
흥미로운 포스팅이 올라옵니다!
cloudest.oopy.io
🛠
준비물 : 이전 포스팅의 결과로 생성된 결과물, SSH 접속 프로그램
시작 전
- 목적 : Auto Scaling을 통해 새로운 인스턴스가 실행될 때 자동으로 모든 인스턴스에 명령 실행하기
- 이를 통해서 정해진 AMI를 베이스로 인스턴스를 실행하는 Auto Scaling 서비스에서 기존 인스턴스 내부의 내용이 바뀌었을 때, 새로운 인스턴스에도 명령을 통해 변경점들을 적용시키고 모두 같은 상태로 유지할 수 있을 것이다.
- 이 포스팅은 Run-Command 기능 확인을 위한 최소한의 환경만 구성하였다.
CloudWatch
- CloudWatch를 사용하여 Auto Scaling의 Scale Out 상황을 감지하고 그에 따른 이벤트를 수행시킬 수 있다. 이벤트를 사용해 모든 서버에 일괄명령을 적용할 것이다.
테스트
테스트2
- SSH접속후 동일 명령 실행시 정상 적용 되는것을 확인 후 인스턴스가 생성되는 동시에 명령이 적용되어 제대로 적용이 안 되었다고 생각했다.
- Linux의 sleep 명령을 활용하여 Run-Command가 1분뒤에 작동하도록 CloudWatch Event를 수정하였다.
- sleep 은 기본적으로 단위가 없으면 초 단위로 인식한다.
sleep 1 # 1초간 휴식 sleep 1s # 1초간 휴식 sleep 1m # 1분간 휴식 sleep 1h # 1시간 휴식 sleep 1d # 1일간 휴식
- sleep 은 기본적으로 단위가 없으면 초 단위로 인식한다.
- 대상의 Commands와 ExecutionTimeout 값을 변경
sudo sleep 1m
는 맨 앞에 위치해야 sleep 명령을 사용하는 목적에 부합한다.
- Execution Timeout값을 60에서 변경하지 않으면
sudo sleep 1m
명령 실행중 60초가 지나 다음 명령을 수행하지 못하고 종료될 것이다.
- 모든 인스턴스에 index.html2의 내용이 index.html로 변경되어 적용된 것을 확인했다.
결론
- CloudWatch를 통해서 Auto Scaling Instance가 Scale-Out 될 때 Run-Command를 자동으로 적용시킬 수 있다.
- 한계 : 기존 AMI에 /var/www/html/index.html2 파일이 있었기 때문에 명령을 실행할 수 있고,
echo Change page | sudo tee /var/www/html/index.html
와 같은 명령을 통해 기존파일 없이도 일괄적으로 명령을 내릴 수는 있다.
- 다음 포스팅에서는 Auto Scaling Instance와 EFS를 연동하여 수정된 파일을 EFS에 업로드하면 cp 명령의 source파일을 EFS에서 가져오는 실습을 할 예정이다.
Uploaded by Notion2Tistory v1.1.0