Wisdom’s Cloud

[AWS] 18. Amazon Auto Scaling 본문

AWS/Beginner

[AWS] 18. Amazon Auto Scaling

지혜로운지혜쓰 2021. 3. 10. 12:52

구분 내용
서비스명 Amazon Auto Scaling
설명 성능과 비용을 최적화하도록 애플리케이션 규모 조정
주요 특징 - Auto Scaling을 사용하면 애플리케이션 가용성을 간편하게 관리
- 사용자가 정의한 조건에 따라 EC2 용량이 자동으로 확장/축소
- 실행 중인 EC2 인스턴스의 수를 원하는 수준으로 유지 가능
- 수요가 급증할 경우 인스턴스의 수를 자동으로 증가(Scale In)
- 수요가 적을 경우 자동으로 용량을 감소시켜 비용 낭비를 최소화(Scale Out)
- 수요 변화가 많지 않은 애플리케이션과 사용량이 시, 일, 주 단위로 변하는 애플리케이션 모두에 알맞은 상품
프리티어(Free Tier) Auto Scaling의 사용은 무료이지만, AWS 리소스에 대한 비용과 Cloudwatch 비용은 발생됨

 

Amazon Auto Scaling 그룹
  • Amazon Auto Scaling 그룹은 인스턴스의 조정 및 관리 목적으로 구성된 논리적 그룹으로, Auto Scaling을 수행하는 인스턴스의 모음이다.
  • 예를 들어, B2B용 웹 사이트를 여러 인스턴스에서 서비스한다면 애플리케이션의 성능을 향상시키기 위해 Auto Scaling 그룹을 사용하여 지정된 조건에 따라 자동으로 인스턴스 수를 늘리거나, 비정상적으로 동작하는 경우 고정된 수의 인스턴스를 유지하거나, 비용 절감을 위해 인스턴스의 수를 자동으로 조정할 수 있다.
  • 이러한 Auto Scaling 그룹은 인스턴스의 수를 조건에 따라 자동 조정 및 관리하는 Amazon Auto Scaling의 핵심 기능이다.

 

시작 구성
  • 시작 구성은 Auto Scaling 그룹에서 인스턴스를 시작하는 데 사용하는 템플릿이다.
  • 시작 구성을 생성하는 경우 Amazon Machine Image(AMI), 인스턴스 유형, 키 페어, 하나 이상의 보안 그룹, EBS 등 인스턴스에 대한 정보를 지정한다.
  • 시작 구성은 여러 개의 Auto Scaling 그룹에 지정될 수 있으나, Auto Scaling 그룹은 하나의 시작 구성만을 지정할 수 있으며, 시작 구성은 한 번 생성한 이후에는 수정 및 변경할 수 없다.
  • 따라서 시작 구성을 변경하여 Auto Scaling 그룹에 적용하고자 한다면, 시작 구성을 새롭게 생성하여 Auto Scaling 그룹을 업데이트해야 한다.

 

Amazon Auto Scaling 그룹 조정
  • Amazon Auto Scaling 그룹 조정은 인스턴스의 수를 늘리거나 줄이는 기능이다.
  • 조정 작업은 이벤트와 함께 시작되거나, Auto Scaling 그룹의 인스턴스를 시작하거나 종료하도록 수행하는 조정 작업과 함께 수행된다.
  • 인스턴스의 조정 옵션에는 현재 인스턴스 수준 유지 관리, 수동 조정, 일정을 기반으로 조정, 온디맨드 기반 조정이 있다.

 

실습: ELB 설정하기

 

1. AWS 계정으로 로그인한 후 서비스 메뉴에서 컴퓨팅의 [EC2]로 이동한다. 그리고 로드 밸런서로 이동한 후 [Load Balancer 생성] 버튼을 클릭한다.
2. 로드 밸런서 유형 선택 페이지에서 Classic Load Balancer의 [생성] 버튼을 클릭한다.
3. 로드 밸런서 정의 페이지에서 Load Balancer 이름은 "AutoScaling-EBL"로 작성하고, LB 생성할 VPC는 "tutorial-vpc"로 선택한 후 [다음: 보안 그룹 할당] 버튼을 클릭한다.
4. 다음 페이지에서 Load Balance를 처리할 퍼블릭 서브넷을 선택한 후 [다음: 보안 그룹 할당] 버튼을 클릭한다.
5. 보안 그룹 할당 페이지에서 "Tutorial Security Group"을 선택한 후 [다음: 보안 설정 구성] 버튼을 클릭한다. 그리고 보안 설정 구성 페이지에서 [다음 상태 검사 구성] 버튼을 클릭한다.
6. 상태 검사 구성 페이지에서 [다음: EC2 인스턴스 추가] 버튼을 클릭한다.
7. EC2 인스턴스 추가 페이지에서 인스턴스를 추가하지 않고 [다음: 태그 추가] 버튼을 클릭한다.
8. 태그 추가 페이지에서 태그를 추가하지 않고 [검토 및 생성] 버튼을 클릭한다.
9. 검토 페이지에서 [생성] 버튼을 클릭한다.

 

실습: Auto Scaling 구성하기

 

1. E2의 Auto Scaling 그룹에서 [Auto Scaling 그룹 생성] 버튼을 클릭한다.
2. 시작 구성으로 전환하고 [시작 구성 생성] 버튼을 클릭한다.
3. 시작 구성 생성 페이지에서 시작 구성 이름은 "AutoScaling-EC2"으로 작성하고, AMI는 "ami-0df7659587273dd64"로, 인스턴스 유형은 "t2.micro"로 선택한다.
4. 고급 세부 정보를 클릭한 후 사용자 데이터에 다음의 정보를 입력한다.

#!/bin/sh
yum -y install httpd php mysql php-mysql
chkconfig httpd on
etc/init.d/httpd start
cd /tmp
wget https://s3.ap-northeast-2.amazonaws.com/cftest20180909/autoscaling-source.zip
unzip autoscaling-source.zip
sudo mv *.php /var/www/html

 

5. 보안 그룹에서는 [기존 보안 그룹 선택]을 체크한 후 이전에 생성한 "tutorial-securitygroup"을 선택한다.
6. 키 페어에서는 기존 키 페어로 "AWS_Study_Key"와 체크 박스를 선택한 후 [시작 구성 생성] 버튼을 클릭한다.
7. 다시 Auto Scaling 그룹 생성 페이지로 이동하여 이름은 "AutoScaling Group"으로 작성하고, 시작 구성은 방금 만든 시작 구성으로 선택한 후 [다음] 버튼을 클릭한다.
8. 설정 구성 페이지에서 네트워크는 "tutorial-vpc"를 선택하고, 서브넷은 "Tutorial public"을 선택한 후 [다음] 버튼을 클릭한다.
9. 고급 옵션 구성 페이지에서 로드 밸런싱은 "기존 로드 밸런서에 연결"로 선택하고, 기존 로드 밸런서에 연결은 "Classic Load Balancer에서 선택"과 바로 전에 생성한 로드 밸런서를 선택한 후 [다음] 버튼을 클릭한다.
10. 그룹 크기 및 조정 정책 구성 페이지에서 그룹 크기의 최대 용량을 "3"으로 바꾸고, 조정 정책을 "대상 추적 조정 정책"으로 선택한 후 [다음] 버튼을 클릭한다.
11. 알림 추가 페이지에서는 [다음] 버튼을 클릭한다.
12. 태그 추가 페이지에서도 [다음] 버튼을 클릭한다.
13. 검토 페이지에서 [Auto Scaling 그룹 생성] 버튼을 클릭한다.
14. Auto Scaling 그룹에서 Auto Scaling 그룹 정책이 정상적으로 생성됨을 확인한다.
15. 로드 밸런서에서 ELB를 선택한 후 상태 검사에서 [상태 검사 편집] 버튼을 클릭한다.
16. Ping 경로를 "/"로 변경한 후 [저장] 버튼을 클릭한다.
17. 로드 밸런서에서 DNS 정보를 확인한 후 복사한 후 ELB의 도메인으로 접속하여 페이지가 정상 로드됨을 확인한다.
18. 생성된 부하로 인해 Auto Scaling 그룹의 원하는 용량이 2로 조정되면서 인스턴스가 생성된 것을 확인할 수 있다.
19. 인스턴스 페이지에서 신규로 생성된 인스턴스를 확인할 수 있다.

 


그동안 업데이트 돼서 그런지 Auto Scaling 그룹 생성할 때 책에 나온 방식과 너무 달라서 많이 헤맸다 ㅠㅠ
그리고 경보 설정을 위한 경보 생성 페이지를 아무리 찾아봐도 없어서 그냥 생성하였는데
ELB 도메인으로 접속했을 때 접속은 되지만 페이지가 제대로 로드되지 않아서
원하는 용량을 수동으로 조절하여 인스턴스를 생성했다 ㅠㅠ
덕분에 여러 번 생성과 삭제를 반복하였더니 생성 방법은 정말 안 잊어버릴 것 같다 ㅋㅋ


'AWS > Beginner' 카테고리의 다른 글

[AWS] 20. Amazon CloudFront  (0) 2021.03.11
[AWS] 19. 클라우드 용어 정리(8)  (0) 2021.03.10
[AWS] 17. 클라우드 용어 정리(7)  (0) 2021.03.05
[AWS] 16. Amazon ELB  (0) 2021.03.05
[AWS] 15. 클라우드 용어 정리(6)  (0) 2021.03.04