가용성이란, 해당 시스템이나 서비스가 가동 및 실행되는 시간의 비율을 말합니다.
매우 중요한 업무 시스템이나 평상시 서비스 중지 및 다운타임을 가져갈 수 없는 시스템을 설계해야 하는 경우 인프라의 가용성을 극대화 할 수 있는 아키텍처로 인프라를 구성합니다.
확장성이란, 서비스나 응용프로그램이 증가하는 성능 요구에 맞게 향상될 수 있는 정도를 말합니다.
동시 접속자가 100명인 시스템이 있다고 가정할 때 특정 시즌이나 이벤트로 인해 동시 접속자가 10배에서 100배 이상 많이 접속하는 경우 확장성이 높은 시스템은 사용자 증가에 따라 시스템의 자원이나 리소스를 손쉽게 추가/삭제할 수 있습니다.
이러한 확장성은 물리적 하드웨어 환경에서 Scale up과 Scale out 이라는 2가지 확장성 전략을 이용하여 구현할 수 있습니다.
단일 하드웨어에 대해 시스템 리소스(프로세서, 메모리, 디스크, 네트워크 어뎁터)를 추가하거나 기존 하드웨어를 더욱 강력한 것으로 교체하는 작업
서버를 여러 대 추가하여 처리 능력을 향상시키는 방법
Amazon Auto Scaling은 Amazon Web Services에서 제공하는 서비스 중 가장 클라우드답다고 할 수 있습니다.
전세계 게이머를 대상으로 신규 모바일 게임을 오픈하는 경우 이벤트와 홍보를 통해 많은 사용자가 동시에 접속하게 됩니다.
클라우드가 아닌 일반 H/W로 시스템을 구성한다면 사용자의 접속 예상 최대치를 산정하여 H/W를 구매해야 합니다.
비용적인 측면에서 보면 많은 초기 투자가 필요하며, 사용자가 줄어 들어 더 이상 많은 시스템이 필요하지 않더라도 구매했던 H/W를 다시 처분할 수 없습니다.
Amazon Web Services의 Auto Scaling을 사용한다면 초기 H/W 구매나 투자는 필요하지 않습니다.
서비스 오픈 초기 서버의 사용자가 급증하면 Auto Scaling을 사용하여 인스턴스를 늘려 성능을 유지하고, 이용자가 줄어 평상시 상황이 유지되면 인스턴스를 자동으로 줄여 비용을 줄이는 효과를 볼 수 있습니다.
Amazon Web Services Auto Scaling은 서버나 애플리케이션을 모니터링하고 리소스를 자동으로 조정(Scale In/Scale Out)하여, 최대한 저렴한 비용으로 안정적이고 예측 가능한 성능을 유지할 수 있습니다.
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 그룹을 업데이트 해야 합니다.
인스턴스의 수를 늘리거나 줄이는 기능입니다.
조정 작업은 이벤트와 함께 시작되거나, Auto Scaling 그룹의 인스턴스를 시작하거나 종료하도록 수행하는 조정 작업과 함께 수행되빈다.
인스턴스의 조정 옵션
Auto Scaling 서비스에 사용될 ELB 사전 구성
[서비스]-[EC2]-[로드 밸런싱]-[로드밸런서]-[로드밸런서 생성]-[Classic Load Balancer 생성]
탄력적 IP주소 할당
VPC 설정
로드밸런서 이름 : tutorial-AutoScaling-ELB
LB 생성할 VPC : tutorial-vpc
서브넷 선택 : [Load Balance 처리할 퍼블릭 서브넷 선택]
보안 그룹 할당에서 Tutorial Security Group 생성 후 선택
EC2 인스턴스 추가 페이지에서 변동사항 없이 다음 단계로 이동하여 로드밸런서를 생성한다.
[Auto Scaling]-[Auto Scaling 그룹]-[Auto Scaling 그룹 생성]
시작 구성 생성 페이지 설정
[EC2]-[Auto Scaling 그룹]-[Auto Scaling 그룹 생성]
그룹 이름 : AutoScaling Group
네트워크 : tutorial-vpc
서브넷 : [기존에 생성된 퍼블릭 서브넷]
로드 밸런싱 : 기존 로드 밸런서에 연결
[Auto Scaling 그룹]으로 이동하여 정책이 정상적으로 생성되었음을 확인
[로드 밸런싱]-[로드밸런서] 페이지에서 ELB 선택 후 [상태 검사]-[상태 검사 편집]-[Ping 경로]를 /(root)로 변경
[로드밸런서]에서 확인한 ELB DNS 정보를 확인 후 페이지가 정상적으로 로드되었음을 확인
안된다....아직 Auto Scaling 그룹 상태가 용량 업데이트 중이어서 그런듯
인스턴스 생성 300초 이후 [Generate Load] 버튼을 눌러 CPU의 부하가 100%로 증가함을 확인
생성된 부하로 인해 Auto Scaling 그룹의 목표 용량이 2로 조정되면서 인스턴스가 생성되었음을 알 수 있다.
원래는 인스턴스가 1에서 2로 조정되면서 Auto Scaling이 반영됨을 확인 가능
출처 : 아마존 웹 서비스 AWS Discovery Book
https://m.blog.naver.com/PostView.naver?blogId=6yujin6&logNo=221716853151&referrerCode=0&searchKeyword=tutorial%20vpc