[AWS] Auto Scaling 이해하기

AWS강의실님의 Youtube 강좌를 듣고 정리해보앗슴미다^0^

1. Auto Scaling 이란 무엇인가.

  • 애플리케이션을 모니터링하고 용량을 자동으로 조정하여 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지
  • 몇 분 만에 손쉽게 여러 서비스 전체에서 여러 resource에 대한 application 규모 조정을 설정

2. Auto Scaling 활용

2.1. 목표

  • 최소한의 instance 사용 -> 돈
  • 원하는 만큼의 instance 개수를 목표로 유지 -> 안정성
  • Availablity Zone에 골고루 분산 될 수 있도록 instance를 분배 -> 안정성
  • 항상 service가 유지될 수 있는 instance를 확보하는 것 -> 안정성

: auto scaling 서비스 자체가 안정성과 관련된 서비스이기 때문에 목표들도 당연히 안정성과 밀접할 수 밖에 없음

2.2. 구성 (launch configuration)

  • ec2의 타입, 사이즈
  • AMI
  • security group, key, IAM
    ** IAM : 특정 요소들이 aws의 다른 어떤 서비스를 활용할 수 있고 어떤 권한이 가능한지, 어떤 액션이 가능한 지를 정의해주는 일종의 권한 managing 시스템
  • user data : ec2가 실행되자마자 자동으로 서버를 구성, 원하는 동작을 하기 위한 최소한의 구성 요건을 갖춰야 하는 action들을 가능하게 만들어줌

2.3. 조건 (Monitoring)

  • ex. cpu 점유율에 따른 instance 개수 조정
  • Cloud Watch / ELB 서비스 사용

2.4. Life Cycle Hook

  • instance가 시작되거나 종료되었을 때의 call-back
  • 다른 서비스와 연계되어 전후 처리 가능
  • CloudWatch event 발생(lambda 실행), SNS, SQS
  • instance 실행/생성/종료 직전 Life Cycle Hook 실행 instance에게 유예 시간 (3600초 = 1시간)
  • terminating wait/proceed

2.5. Auto Scaling의 순서도

  1. launch configration / Desired Capacity / ELB / Cloud Watch 등 condition setup
  2. monitoring : instance 개수, cpu, connection등 condition에 부합하는가
  3. if not condition : instance 개수 조절
  4. Life Cycle Hook 실행

3. Auto Scaling 실습

3.1. IAM role

  • 권한 정책 : AmazonS3FullAccess
  • 태그 : (key) purpose - (value) lecture_as_test

3.2. S3 bucket

  • s3 버킷 생성
    - 버킷명 : hz-as-test-01
    - region : seoul
  • 그 안에 html 파일 업로드하기 (AS-test.html)
    <!DOCTYPE html>
    <html>
    <head>
      <title>HI H2JI</title>
    </head>
    <body>
      <h1>Auto Scaling Test!!</h1>
    </body>
    </html>

3.3. Launch Template

🔷 강의에서는 시작구성(Launch Configuration)으로 진행했으나 시작템플릿으로 진행했다.
🔹검색을 해보니 둘 다 인스턴스 생성에 사용하지만 AWS에서는 템플릿으로 진행하기를 권장
🔹시작구성은 수정이 불가능한데 비해 시작 템플릿을 사용하면 파라미터(AMI, 인스턴스 유형, 보안 그룹, 키 페어 등)를 저장할 수 있으므로 새 인스턴스를 시작할 때마다 이러한 파라미터를 정의할 필요X

  • AMI : Amazon Linux 2 kernel (프리티어)
  • 인스턴스 유형 : t2.micro (프리티어)
  • 방화벽 : default
  • 키페어 : hz-key.pem
  • 스토리지 구성 : 8Gib - magnetic(standard)
  • 사용자 데이터

    #!/bin/bash
    
    yum install httpd -y
    service httpd start
    chkconfig httpd on
    
    aws s3  <cp s3://hz-as-test-01/AS-test.html /var/www/html --region ap-northeast-2

3.4. Target Group

🔷 강의에서는 바로 Load Balancer로 넘어가지만 그 안에서 target group을 사용하므로
새로운 target group 먼저 생성!

  • target type : instance
  • target group name : as-test-tg
  • health treshold : 3
  • unhelth treshold : 2
  • time out : 10
  • interval : 30

3.5. Load Balancer

  • Name : as-test-elb
  • VPC availialbity zone : ap-northeast-2a / ap-northeast-2c
  • Security Group : default
  • Target Group : as-test-tg

3.6. Auto Scaling

  • name : as-lecture
  • 시작 템플릿 : as-test
  • 네트워크 VPC : default
  • 서브넷 : ap-northeast-2a / ap-northeast-2c
  • 로드 밸런싱 : 기존 로드밸런서에 연결 > 로드 밸런서 대상 그룹에서 선택 > as-test-tg
    • 상태 확인 유형 : ELB ✔️
    • 상태 확인 유예 기간 : 60
  • 태그 : (key) purpose - (value) as_lecture

3.7. 결과

  • 초기 인스턴스 상태
  • 그룹 크기 변경

  • 크기 변경후 인스턴스 상태
    : Desired Size를 2로 지정하였기 때문에 2대의 ec2 인스턴스가 올라온 것을 확인할 수 있다.




  • DNS 접속

좋은 웹페이지 즐겨찾기