AWS - AutoScaling

jsbak·2023년 4월 27일
0

Cloud

목록 보기
38/59

AutoScaling

  • Amazon EC2 용량을 사용자가 정의한 조건에 따라 자동으로 확장 또는 축소하여 실행 중인 Amazon EC2 인스턴스의 수를 원하는 수준으로 유지
  • ASG; Auto Scaling Group 라는 인스턴스 모음을 생성
  • 각 ASG의 최소 인스턴스 수를 지정할 수 있으며, Auto Scaling에서는 그룹의 크기가 이 값 아래로 내려가지 ❌
  • 각 ASG의 최대 인스턴스 수 크기를 지정 가능하며 Auto Scaling에서는 그룹의 크기가 이 값을 넘지 ❌
  • 원하는 용량(; Desired capacity)을 지정한 경우 그룹을 생성한 다음에는 언제든지 오토스케일링에서 해당 그룹에서 이 만큼의 인스턴스를 보유 가능 ⭕
  • 처음부터 계획하고 구성해야함.
  • 수평적 확장; Scale Out
  • 수직적 확장; Scale Up
  • 수평적 축소; Scale In
  • 중요 ❗ 시작 템플릿 생성하기
    • 스냅샷
      • AMI

아키텍처

ASG

  • Auto Scaling Group
  • 우발적으로 모든 인스턴스 제거시 자동으로 최소 용량만큼의 새로운 인스턴스를 생성해 준다.
  • EC2 대시보드 - Auto Scaling - Auto Scaling Group

ASG 생성

  • Auto Scaling 그룹 생성 클릭

시작 템플릿 또는 구성 선택

인스턴스 시작 옵션 선택

  • 네트워크
    • 생성한 VPC 와 private subnet 선택(외부 노출 ❌ (노출방지))
  • 인스턴스 유형 요구 사항

고급 옵션 구성

  • 로드 밸런싱
    • 새 로드밸런서에 연결
    • 인스턴스를 지정하는 것이 아니고 인스턴스 관리를 ASG가 처리한다.
      • 로드밸런서의 서브넷은 Public 서브넷으로 설정
  • 상태 확인
    • Elastic Load Balancer 상태 확인 켜기 체크 ❗ ; 결함발생한 인스턴스를 배제하여 새로운 인스턴스를 띄움
    • 상태 확인 유예 기간; 인스턴스가 생성되는데 걸리는 시간이 얼마인지 모르지만 그 상태를 체크하는데 일정 시간 유예함
  • 추가 설정

그룹 크기 및 크기 조정 정책 구성

  • Auto Scaling 그룹의 용량 제한 설정
  • 그룹 크기
  • 크기 조정 정책; 대상 추적 크기 조정 정책(지표 유형에 따른 크기 조정 ex.평균 CPU 사용률)
  • 인스턴스 축소 보호: Scale-In 여부

알람 추가

  • sns으로 알림 받을 이메일


검토

  • 흝어보고 Auto Scaling 그룹 생성 클릭

생성 결과

  • 대상 그룹 오류가 나는 경우 수동으로 대상 등록 처리해준다.
  • 보안 그룹 확인
  • 서브넷 위치 확인
    • 대상 등록
  • Route 53에 등록
  • 접속 확인

ASG 동적 크기 조정 정책

정책 설정

  • 동적 크기 조정 정책 설정

경보 생성

  • 지표 선택 클릭
    • EC2
    • Auto Scaling 그룹별
    • CPUUtilization
  • 지표 및 조건 지정

    • 지정 70 설정 후 그래프
  • 작업 구성,
  • 이름 및 설명 추가
  • 미리 보기 및 생성 - 경보 생성 클릭

경보 생성 결과

동적 크기 조정 정책 설정 마무리

  • 경보가 울리고 유예 시간(300~600s)이 지나면 인스턴스를 추가
  • 정책 생성 결과

ScaleInPolicy 정책 추가

  • 정책 설정

지표 생성

  • CPUUtilization 지표 선택 후 조건 설정
  • 작업 구성
  • 이름 지정
  • 미리보기 & 생성 - 경보 생성 클릭

정책 추가 결과

Bastion Host 생성

  • 프라이빗 서브넷의 EC2 인스턴스에 접속하기 위한 Bastion Host 생성






ASG 확인 해보기

Bastion Host로 EC2 Instance에 부하 발생

  • sudo yes > /dev/null &
    • 부하 발생, yes 라는 출력을 계속 /dev/null 쓰레기 통에 버림 이것은 & 백그라운드 실행
  • top
    • 리눅스 시스템의 운용상황을 실시간으로 전반적인 상황을 모니터링하거나 프로세스 관리를 할 수 있는 유틸리티
  • sudo pkill -9 yes
    • yes 커맨드 프로세스 죽이기

리소스 제거

ASG 삭제

  • AWs Management Console 에 접속 - "Auto Scaling Groups(Auto Scaling 그룹)" 메뉴로 이동, 해당 Auto Scaling 그룹 체크박스 활성화 하여 Delete(삭제) 버튼 클릭
  • ASG 선택 - 삭제 클릭

시작 템플릿 삭제

  • "시작 구성" 메뉴로 이동, 작업 버튼을 클릭하여 "시작 구성 삭제" 를 선택

cloudwatch 삭제

  • 경보 선택 - 삭제 클릭

SNS 삭제

  • 구독 삭제후 주제 삭제
    • 간혹 주제를 먼저 삭제하면 일주일 뒤에 구독이 자동 삭제(직접 삭제가 ❌ 되는 경우가 존재)
  • 구독 삭제

  • 주제 삭제

기타

  • ASG 생성시, 로드밸런서 보안 그룹 설정하는 것은 없나?? ASG 네트워크 매핑 부분 public 서브넷으로 설정해보기(이게 맞았네)
  • top: 리눅스 시스템의 운용상황을 실시간으로 전반적인 상황을 모니터링하거나 프로세스 관리를 할 수 있는 유틸리티
  • sudo yes > /dev/null &: 부하 발생, yes 라는 출력을 계속 /dev/null 쓰레기 통에 버림 이것은 & 백그라운드 실행
  • sudo pkill -9 yes: yes 커맨드 프로세스 죽이기
profile
끄적끄적 쓰는곳

0개의 댓글