탄력성 자동화

빌드업웍스
12 min readFeb 28, 2020

--

https://AWS.amazon.com/ko/

[ 고지 사항 (Disclaimer) ]

본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.

본 문서는 Automating Elasticity (2018, 영문) 내용에 기반하여 작성 되었습니다.

이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

요약

이 문서는 클라우드 여행을 지원하도록 설계된 일련의 백서 중 여섯 번째입니다. 이 백서는 투자 가치를 극대화하고 예측 정확도 및 비용 예측 성을 향상 시키며 소유 문화 및 비용 투명성을 창출하며 지속적으로 최적화 상태를 측정 할 수 있도록 합니다.

이 백서에서는 AWS 리소스를 최대한 활용하고 비용을 최적화하기 위해 탄력성을 자동화하는 방법에 대해 설명합니다.

소개

기존의 데이터 센터 기반 IT 모델에서는 인프라가 일단 배치되면 일반적으로 사용 여부에 관계없이 필요에 따라 실행되고 모든 용량에 대한 비용이 지불됩니다. 클라우드에서 리소스는 탄력적이므로 특정 애플리케이션의 요구 사항에 맞게 즉시 커지거나 줄어들 수 있습니다.

탄력성을 통해 비용이 많이 드는 리소스 공급을 수요에 맞출 수 있습니다. 클라우드 리소스는 사용량에 따라 요금이 지불되므로 비용 최적화를 위해서는 사용량과 일치해야합니다. 수요에는 일정 기간 동안 웹 사이트를 방문한 고객 수와 같은 외부 사용과 개발 및 테스트 환경을 사용하는 응용 프로그램 팀과 같은 내부 사용이 모두 포함됩니다.

탄력성에는 시간 기반과 볼륨 기반의 두 가지 기본 유형이 있습니다. 시간 기반 탄력성은 업무 시간에만 필요한 개발 환경과 같이 리소스를 사용하지 않을 때 리소스를 끄는 것을 의미합니다.

볼륨 기반 탄력성은 컴퓨팅 코어, 스토리지 크기 또는 처리량에 관계없이 규모를 수요의 강도에 일치시키는 것을 의미합니다.

모니터링, 태깅 및 자동화를 결합하여 AWS 리소스를 최대한 활용하고 비용을 최적화 할 수 있습니다.

AWS 서비스 사용 및 비용 모니터링

탄력성을 사용할 기회를 식별하기 위해 서비스 사용 및 비용을 모니터링하는 데 사용할 수있는 몇 가지 도구가 있습니다.

비용 최적화 모니터를 사용하면 클라우드 아키텍처를 배포 및 운영 할 때 서비스 사용 및 비용에 대한 통찰력을 제공하는 보고서를 생성 할 수 있습니다. 여기에는 AWS Billing and Cost Management 콘솔에서 액세스 할 수 있는 자세한 청구 보고서가 포함됩니다. 이 보고서는 기간, 계정, 리소스 또는 사용자 지정 리소스 태그별로 다른 방식으로 분류하여 월별 요금을 모니터링하고 예측할 수 있는 예상 비용을 제공합니다. 이 정보를 분석하여 인프라를 최적화하고 탄력성을 사용하여 투자 수익을 극대화 할 수 있습니다.

비용 탐색기는 비용을 보고 탄력성을 활용할 수 있는 방법을 찾는 데 사용할 수 있는 또 다른 무료 도구입니다. 지난 13 개월까지의 데이터를 보고, 향후 3 개월 동안 지출 할 금액을 예측하고, 예약 인스턴스 구매에 대한 권장 사항을 얻을 수 있습니다. 또한 비용 탐색기를 사용하여 시간이 지남에 따라 AWS 리소스에 소비하는 비용의 패턴을 보고, 추가 문의가 필요한 영역을 식별하고, 비용을 이해하는 데 도움이 되는 추세를 확인할 수 있습니다. 또한 데이터의 시간 범위를 지정하고 일별 또는 월별 시간 데이터를 볼 수 있습니다.

태그 지정 리소스

리소스에 태그를 지정하면 팀 및 애플리케이션별로 클라우드 IT 비용을 몇 초에서 몇 초까지 가시성과 제어 할 수 있습니다. 태깅을 사용하면 인스턴스, 이미지 및 기타 리소스에 사용자 지정 메타 데이터를 할당 할 수 있습니다. 예를 들어, 소유자, 목적 또는 환경별로 자원을 분류하여 자원을 구성하고 비용 책임을 지정할 수 있습니다.

리소스에 정확하게 태그가 지정되면 자동화 도구는 탄력성을 관리하는 데 필요한 해당 리소스의 주요 특성을 식별 할 수 있습니다. 예를 들어 많은 고객이 업무 시간 이외의 시간 동안 개발 환경을 해제하는 자동화 된 시작 / 중지 스크립트를 실행하여 비용을 절감합니다. 이 시나리오에서 Amazon EC2 (Amazon Elastic Compute Cloud) 인스턴스 태그는 계속 실행해야하는 개발 인스턴스를 식별하는 간단한 방법을 제공합니다.

탄력성 자동화

AWS를 사용하면 볼륨 기반 및 시간 기반 탄력성을 모두 자동화하여 크게 절약 할 수 있습니다. 예를 들어, 10 시간 근무 외 시간에 EC2 인스턴스를 종료 한 회사는 하루 24 시간 운영하는 것과 비교하여 70 %를 절약 할 수 있습니다. 환경의 규모가 커지고 복잡 해짐에 따라 자동화의 중요성이 점점 커지고 있습니다.

자동화는 강력하지만주의해서 사용해야합니다. 필요한 작업을 수행하는 데 필요한 최소한의 액세스 수준 만 사람과 시스템에 제공하여 위험을 최소화하는 것이 중요합니다. 또한 자동화 계획에 대한 예외를 예상하고 다른 일정 및 사용 시나리오를 고려해야합니다. 한 부서에 맞는 접근 방식은 같은 부서 내에서도 거의 현실적이지 않습니다. 필요에 맞게 유연하고 사용자 정의 가능한 접근 방식을 선택하십시오.

시간 기반 탄력성 자동화

대부분의 비 프로덕션 인스턴스는 사용하지 않을 때 중지 할 수 있으며 중지해야 합니다. 사용하지 않는 인스턴스를 수동으로 종료 할 수 있지만 더 큰 규모에서는 실용적이지 않습니다. 시간 기반 탄력성을 자동화하는 몇 가지 방법을 고려해 봅시다.

AWS 인스턴스 스케줄러

AWS Instance Scheduler는 EC2 인스턴스에 대한 자동 시작 및 중지 일정을 생성 할 수 있는 간단한 솔루션입니다. 이 솔루션은 AWS CloudFormation 템플릿을 사용하여 배포되며,이 템플릿은 계정의 모든 AWS 리전에서 EC2 인스턴스를 자동으로 시작 및 중지하는 데 필요한 구성 요소를 시작 및 구성합니다.

초기 배포 중에는 단순히 AWS Instance Scheduler 기본 시작 및 중지 파라미터와 원하는 간격을 정의하면 됩니다. 이 값은 Amazon DynamoDB에 저장되며 필요에 따라 재정의하거나 수정할 수 있습니다. 사용자 지정 리소스 태그는 AWS 인스턴스 스케줄러 작업을 받아야하는 인스턴스를 식별합니다. 솔루션의 반복 AWS Lambda 함수는 적절하게 태그가 지정된 EC2 인스턴스를 자동으로 시작하고 중지합니다. 솔루션의 사용자 지정 Amazon CloudWatch 지표를 검토하여 AWS 인스턴스 스케줄러 작업 기록을 볼 수 있습니다.

Amazon EC2 API tools

Amazon EC2 API, 특히 StopInstancesTerminateInstances 작업을 사용하여 프로그래밍 방식으로 인스턴스를 종료 할 수 있습니다. 이 API를 사용하면 고유 한 일정 및 자동화 도구를 구축 할 수 있습니다. 인스턴스를 중지하면 루트 디바이스와 인스턴스에 연결된 다른 디바이스가 지속됩니다. 인스턴스를 종료하면 인스턴스 시작 시 연결된 루트 장치 및 기타 장치가 자동으로 삭제됩니다. 인스턴스 재부팅, 중지 및 종료의 차이점에 대한 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 수명주기를 참조하십시오.

AWS Lambda

AWS Lambda 서버리스 기능은 사용하지 않을 때 인스턴스를 종료하는 데 사용할 수 있는 또 다른 도구입니다. 특정 시간 또는 사용률 임계 값과 같은 Amazon CloudWatch Events에 의해 트리거 될 때 인스턴스를 시작 및 중지하도록 Lambda 함수를 구성 할 수 있습니다. 자세한 정보는 지식 센터 주제를 읽으십시오.

AWS Data Pipeline

AWS Data Pipeline은 온 프레미스 데이터 소스뿐만 아니라 다른 AWS 컴퓨팅 및 스토리지 서비스간에 지정된 간격으로 데이터를 안정적으로 처리하고 이동할 수 있는 웹 서비스입니다. 설정된 일정에 따라 AWS CLI (명령 줄 인터페이스) 파일 명령을 실행하여 Amazon EC2 인스턴스를 중지하고 시작하는 데 사용할 수 있습니다. AWS Data Pipeline은 AWS Identity and Access Management (IAM) 역할로 실행되므로 주요 관리 요구 사항이 없습니다. 이 방법을 사용하는 방법에 대한 지침은이 자습서를보십시오.

Amazon CloudWatch

Amazon CloudWatch는 AWS 클라우드 리소스 및 AWS에서 실행하는 애플리케이션에 대한 모니터링 서비스입니다. Amazon CloudWatch를 사용하여 지표 및 로그 파일을 수집 및 추적하고 경보를 설정하며 AWS 리소스의 변경 사항에 자동으로 대응할 수 있습니다. Amazon CloudWatch 경보를 사용하여 오랫동안 사용하지 않거나 사용률이 낮은 EC2 인스턴스를 자동으로 중지하거나 종료 할 수 있습니다. 루트 디바이스로 Amazon Elastic Block Store (Amazon EBS) 볼륨이 있는 경우 인스턴스를 중지 할 수 있습니다. 중지 된 인스턴스는 인스턴스 ID를 유지하며 다시 시작할 수 있습니다. 종료 된 인스턴스가 삭제됩니다. 인스턴스 중지와 종료의 차이점에 대한 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 중지 및 시작을 참조하십시오.

예를 들어, 인스턴스가 8 시간 동안 사용률이 낮은 개발자에게 전자 메일 알림을 보낸 다음 24 시간 후에 사용률이 개선되지 않으면 해당 인스턴스를 종료하는 경보 그룹을 만들 수 있습니다. 이 방법 사용에 대한 지침은 Amazon CloudWatch 사용 설명서를 참조하십시오.

볼륨 기반 탄력성 자동화

볼륨 기반 탄력성을 활용하여 용량에 맞게 리소스를 확장 할 수 있습니다. 이 작업을 수행하기위한 가장 좋은 도구는 Amazon EC2 Auto Scaling입니다. 수요 급증 시 EC2 인스턴스 수를 자동으로 늘리고 소멸 시 용량을 줄여 비용을 줄임으로써 성능을 최적화하는 데 사용할 수 있습니다. Amazon EC2 Auto Scaling은 안정적인 수요 패턴이 있는 애플리케이션과 시간별, 일별 또는 주별 변동성이 있는 애플리케이션에 적합합니다.

Amazon EC2 Auto Scaling 외에도 AWS Auto Scaling을 사용하여 다음을 비롯한 다른 AWS 서비스의 리소스를 자동으로 확장 할 수 있습니다.

· Amazon Elastic Container Service (Amazon ECS) — AWS Auto Scaling을 사용하여 CloudWatch 경보에 대한 응답으로 원하는 카운트 업 또는 다운을 조정하도록 Amazon ECS 서비스를 구성 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.

· Amazon EC2 스팟 집합 — 스팟 집합은 하나 이상의 조정 정책에 따라 선택한 범위 내에서 인스턴스를 시작하거나 (스케일 아웃) 인스턴스를 종료 (스케일 인) 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.

· Amazon EMR 클러스터 — Amazon EMR의 Auto Scaling을 사용하면 스케일링 정책에서 지정한 규칙에 따라 클러스터의 코어 및 작업 노드에서 프로그래밍 방식으로 스케일 아웃 및 스케일링 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.

· Amazon AppStream 2.0 스택 및 집합 — 다양한 사용률 지표를 기반으로 집합의 크기를 자동으로 조정하고 사용자 요구에 맞게 실행중인 인스턴스 수를 최적화하는 조정 정책을 정의 할 수 있습니다. 자동 스케일링을 끄고 집합을 고정 크기로 실행하도록 선택할 수도 있습니다. 자세한 내용은 설명서를 읽으십시오.

· Amazon DynamoDB — 실제 트래픽 패턴에 따라 프로비저닝 된 처리량 용량을 동적으로 조정할 수 있습니다. 이를 통해 테이블 ​​또는 global secondary index는 프로비저닝 된 읽기 및 쓰기 용량을 증가시켜 제한없이 트래픽의 급격한 증가를 처리 할 수 ​​있습니다. 워크로드가 감소하면 AWS Auto Scaling은 처리량을 감소시켜 사용되지 않은 프로비저닝 된 용량에 대한 비용을 지불하지 않습니다. 자세한 내용은 설명서를 참조하십시오. 또한 우리의 블로그 포스트인 Amazon DynamoDB를 위한 Auto Scaling을 읽을 수 있습니다.

결론

클라우드 서비스의 탄력성은 비용을 최적화하는 강력한 방법입니다. 태깅, 모니터링 및 자동화를 결합하여 조직은 지출을 필요에 맞게 맞추고 가장 가치가 높은 곳에 리소스를 배치 할 수 있습니다. 탄력성 및 기타 비용 관리 주제에 대한 자세한 내용은 AWS Billing and Cost Management 설명서를 참조하십시오.

자동화 도구를 사용하면 IT 배포와 관련된 일부 관리 및 관리 작업을 최소화 할 수 있습니다. 애플리케이션 서비스의 이점과 마찬가지로 AWS 인프라에 대한 자동화 또는 DevOps 접근 방식은 최소한의 수동 개입으로 확장성과 탄력성을 제공합니다.

또한 AWS 환경과 관련 지출에 대한 제어 수준을 제공합니다. 예를 들어, 엔지니어 또는 개발자가 확립 된 프로세스를 통해서만 AWS 리소스를 프로비저닝하고 관리 및 감사 할 수 있는 도구 (예 : AWS Service Catalog와 같은 프로비저닝 포털)를 사용하는 경우 비용 및 낭비를 피할 수 있습니다.

AWS는 IT 인프라 비용을 절감하고 기업의 핵심가치에 더욱 집중할 수 있도록 합니다.

AWS에 대한 자세한 문의사항은 여기를 눌러 주세요.

빌드업웍스는 AWS 컨설팅 파트너로 고객 비즈니스를 최우선으로 하며 고객의 클라우드의 성공적인 시작과 운영을 지원합니다.

http://buw.co.kr

--

--

빌드업웍스
빌드업웍스

Written by 빌드업웍스

클라우드 교육, 구축, 운영, 관리, 컨설팅 및 교육 리소스 디지털 퍼블리싱 : AWS 파트너, 유데미 파트너| buw.co.kr | admin@buw.co.kr | 053–954–3711

No responses yet