EC2의 생명주기, Autoscaling

LeeKyoungChang·2022년 4월 8일
0
post-thumbnail

AWS 유튜브 강의를 참고하였습니다.

 

📚 7. EC2의 생명주기

간단하게 EC2 생명주기에 대해 살펴보자

스크린샷 2022-04-07 오전 10 40 52
인스턴스 상태설명인스턴스 사용 요금
pending인스턴스가 running 상태로 될 준비미청구
running인스턴스 사용 중청구
stopping인스턴스가 중지 또는 최대 절전 모드로 전환 중미청구, 최대절전시 청구
stopped인스턴스가 중지 상태: 재시작 가능미청구
shutting-down인스턴스가 종료 중미청구
terminated인스턴스가 영구적으로 삭제됨미청구

 

✔️ 중지

  • 중지 중에는 인스턴스 요금 미 청구
  • 단 EBS 요금, 다른 구성요소(Elastic IP등)은 청구
  • 중지 후 재시작시 퍼블릭 IP 변경
  • EBS를 사용하는 인스턴스만 중지 가능 : 인스턴스 저장 인스턴스는 중지 불가

 

✔️ 재부팅

  • 재부팅시에는 퍼블릭 IP 변동이 없다.

 

✔️ 최대 절전모드

  • 메모리 내용을 보존해서 재시작시 중단지점에서 시작할 수 있는 정지모드
  • 종료할 때 메모리 내용을 하드디스크에 옮겼다가, 다시 시작한다면 하드디스크에 있는 내용을 메모리에 다시 옮겨 시작하는 것이다.

 

일반 종료 시작
스크린샷 2022-04-07 오전 10 34 12

 

최대 절전 모드에서 종료

스크린샷 2022-04-07 오전 10 34 16

 

📚 8. Autoscaling

📖 A. (scaling)스케일링이란?

Vertical Scale(Scale Up) 위에서 했지만 다시 한 번 복습!

✔️ Vertical Scale(Scale Up)

성능을 확장하는 것

스크린샷 2022-04-07 오전 10 58 45
  • 기존 성능에서 더 좋은 성능을 사용하고 싶을 때 Scale Up을 사용한다.
  • 단점 : 성능과 비용이 비례하지 않는다.
    • ex) 성능이 16배 올렸는데, 비용이 30배 나왔다.

 

✔️ Horizontal Scale(Scale Out)

규모를 확장하는 것

스크린샷 2022-04-07 오전 11 05 19
  • 성능이 광범위해도 사용할 수 있다.
  • 비용도 성능에 비례한다.
  • 클라우드 환경에서는 Scale Out을 염두해두어야 한다.
  • 저렴한 것을 많이 사용하고 가격을 줄여야하는데 고민을 해야 한다.
  • 단점 : 아키텍처, 소프트웨어 적으로 고민할 것들이 많다.

 

📖 B. Auto Scaling 구성

Auto Scaling : Scale Out을 위해 나온 서비스

📣 AWS Auto Scaling?

  • 애플리케이션을 모니터링하고 용량을 자동으로 조정하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지한다.
  • AWS Auto Scaling을 사용하면 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 리소스에 대해 애플리케이션 규모 조정을 설정할 수 있다.

➡️ Scaling을 자동화 해주는 시스템

 

스크린샷 2022-04-07 오전 11 14 47

이번에는 EC2 Auto Scaling에 대해 공부한다.

 

✔️ 목표

  • 정확한 수의 EC2 인스턴스를 보유하도록 보장
    • 그룹의 최소 인스턴스 숫자 및 최대 인스턴스 숫자
      • 최소 숫자 이하로 내려가지 않도록 인스턴스 숫자를 유지(인스턴스 추가)
      • 최대 숫자 이상 늘어나지 않도록 인스턴스 숫자 유지(인스턴스 삭제)
    • 다양한 스케일링 정책 적용 가능
      • 예 : CPU의 부하에 따라 인스턴스 크기를 늘리기
  • 가용 영역에 인스턴스가 골고루 분산될 수 있도록 인스턴스를 분배
  • 시작 구성(launch configurations)/시작 템플릿(launch template) : 무엇을 실행시킬 것인가?
    • EC2의 타입, 사이즈
    • AMI
    • 보안 그룹, Key, IAM
    • 유저 데이터
  • 모니터링 : Auto Scaling 언제 실행시킬 것인가? + 상태 확인
    • 예 : CPU 점유율이 일정 %을 넘어섰을 때 추가로 실행 or 2개 이상이 필요한 스택에서 EC2 하나가 죽었을 때
    • CloudWatch (and/or) ELB와 연계
      • CloudWatch : AWS에 여러 서비스를 모니터링하기 위한 서비스
      • ELB : Load를 분산해주는 역할을 한다.
  • 설정 : 얼마나 어떻게 실행시킬 것인가?
    • 최대 / 최소 / 원하는 인스턴스 숫자들을 설정할 수 있다.
    • ELB와 연동 등 설정들을 Auto Scaling에 적용해서 구성하게 된다.

 

📖 C. 동작하는 방법

스크린샷 2022-04-07 오전 11 34 09

갑작스레 EC2 하나가 죽어버렸다.

이거를 AutoScaling이 감지하고, 시작 구성에 맞는 EC2를 하나 생성해서 Autoscaling Cluster에 넣어준다.

 

📖 D. 실습

스크린샷 2022-04-07 오전 11 36 06

시작 템플릿 : Autoscaling 그룹에서 어떤 인스턴스를 어떻게 올릴 것인지 정의하는 템플릿이다.

 

스크린샷 2022-04-07 오전 11 36 41

시작 템플릿 이름 및 설명
시작 템플릿 이름 : MyTemplate
템플릿 버전 설명 : 오토스케일링 테스트
EC2 Auto Scaling에 사용할 수 있는 템플릿을 ~ : 체크

 

스크린샷 2022-04-07 오전 11 38 24

시작 템플릿 콘텐츠
Amazon Linux 2 AMI (HVM) - Kernel 5.10

 

스크린샷 2022-04-07 오전 11 39 06

인스턴스 유형
t2.micro

 

스크린샷 2022-04-07 오전 11 42 45

네트워크 인터페이스 추가
네트워크 인터페이스 : 새 인터페이스
퍼블릭 IP 자동 할당 : 활성화
종료 시 삭제 : 예

이렇게 해야 EC2에 집적 접속할 수 있다.

 

💡 참고
네트워크 인터페이스에서 보안 그룹을 설정하였기에 보안 그룹을 추가로 넣을 필요가 없다.

 

완료 후, 다음 버튼 클릭하여 Auto Scaling 그룹에서 작업

스크린샷 2022-04-07 오전 11 52 14
  • 그룹 이름 : MyASG
  • 시작 템플릿 : MyTemplate

 

스크린샷 2022-04-07 오전 11 57 49
  • VPC 추가
  • 가용 영역 및 서브넷 추가

 

스크린샷 2022-04-07 오후 12 01 20
  • 원하는 용량, 최소 용량, 최대 용량 : 전부 2로

 

스크린샷 2022-04-07 오후 12 04 52
  • 태그를 추가할 시, Auto Scaling 모든 인스턴스에 적용이 된다.

 

고급 오션 구성은 pass
알림 추가 pass

 

이제 완료, Auto Scaling 그룹 생성 클릭!

하나의 Scaling에 두 개의 인스턴스가 생성되었다.

스크린샷 2022-04-07 오후 12 13 27 스크린샷 2022-04-07 오후 12 13 33

 

인스턴스 두 개가 생성된다.

스크린샷 2022-04-07 오후 12 15 56
  • 만약에 AutoScaling에 있는 하나의 인스턴스를 종료할 시, AutoScaling에서 최소 개수 제한을 확인한 후, 최소 개수보다 관리하는 인스턴스 개수가 적을 경우 개수를 맞추기 위해 자동으로 인스턴스를 하나 생성한다.

 

인스턴스 태그에서 AutoScaling이 누구인지 알 수 있다.

스크린샷 2022-04-07 오후 12 23 06

AutoScaling을 사용할 시, 유지보수를 할 수 있는 가장 큰 장점이 있다.
이런 인스턴스들 각각에 대해 트래픽을 넣어주어야 한다.

트래픽 : 서버와 클라이언트간의 주고 받는 데이터의 양

ELB : AutoScaling에 생성한 인스턴스들의 트래픽을 조절하는 서비스이다.

 

✔️ AutoScaling 테스트 끝낸 후
스크린샷 2022-04-07 오후 12 32 19

원하는 용량 : 0
최소 용량 : 0

으로 수정한다. (사용하지 않는 EC2 종료하기 위해)

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글