[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의 순서도
- launch configration / Desired Capacity / ELB / Cloud Watch 등
condition setup
monitoring
: instance 개수, cpu, connection등 condition에 부합하는가- if not condition : instance 개수 조절
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 접속
Author And Source
이 문제에 관하여([AWS] Auto Scaling 이해하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@h222ji/AWS-Auto-Scaling-이해하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)