2023. 6. 2. 09:18ㆍ부트캠프/DevOps (TIL)
특징 메트릭이 임계치를 넣을 때, 수평 확장이 자동으로 진행되게 하는 것이 바람직함
Auto Scaling Group (ASG)의 원리를 파악하고 주요 메트릭의 임계치 달성 시점을 경보 형태로 제공해야 함
이를 SNS 및 람다를 통해 구현한다.
1 #!/bin/bash
2 echo "Hello, World" > index.html
3 sudo apt update
4 sudo apt install stress
5 nohup busybox httpd -f -p 80 &
- 경보 생성 레퍼런스
https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/US_AlarmAtThresholdEC2.html
- 제공받은 Lambda를 활용한 람다 함수 생성 (Python 3.x 버전)
$ stress -c 1
- 시작 템플릿 생성
=> ubuntu 20.04 LTS // t2.nano
- 키페어 및 보안그룹 선택 또는 생성
- 고급 세부 정보 -> 사용자 데이터 입력
- 이후 VPC & subnet 설정 + CloudWatch 그룹 지표 수집 활성화
- 그룹 크기 설정 및 생성 마무리
- python 3.x 확인
- 람다 코드 수정 및 배포
- 구성 -> 환경변수 추가
- 생성 -> 지표선택 -> EC2 -> 인스턴스별 지표
- EC2 찾기 + CPUUtilization 선택
- sacle-out, scale-in으로 총 2개 생성
- SNS 연결
- Scale-out, Scale-in 생성
- scale-out 확인 후 stress 명령어 종료
- scale-in 확인
전부 맞춰 설정하고 EC2에 접속해서 스트레스만 주면 되는 상황이었는데 접속이 계속 안되는 현상이 발견됐다
내용을 보니 22번포트에 접속이 제한되 연결이 안되어 타임아웃이 된 상황이었는데 보안그룹에 인바운드 규칙도 ssh 22번포트도 허용한 상태여서 더 오리무중인 상황이었다. 알고보니 서울 리전에 있는 기본 VPC의 서브넷들을 삭제한 상황이어서 EC2가 생성되도 퍼블릭 IP나 DNS가 비어있는 상황이 발생한 거였다. 서울리전에 있는 VPC을 전부 삭제하고 다른리전으로 들어갔다가 다시 들어가면 생성탭에 기본 VPC 생성이 생겨 다시 복구가 가능했다.
2023.06.07(병목 구간의 확인과 개선 기본 지식) (0) | 2023.06.07 |
---|---|
2023.06.07(가용성과 확장성 평가) (0) | 2023.06.07 |
2023.05.19(Sprint - 새 버전이 망가졌어요) (0) | 2023.05.19 |
2023.05.18(쿠버네티스 워크로드-서비스, 로드밸런싱, 네트워킹) (0) | 2023.05.19 |
2023.05.18(쿠버네티스 워크로드-디플로이먼트 (Deployment)) (0) | 2023.05.19 |