[ 고지 사항 (Disclaimer) ]
본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.
본 문서는 Automating Elasticity 내용에 기반하여 작성 되었습니다.
이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
개요
이는 클라우드 전환을 지원하기 위해 설계된 일련의 백서 중 여섯 번째입니다. 본 문서는 투자 가치를 극대화하고, 예측 정확도와 비용 예측 가능성을 개선하며, 소유 및 비용 투명성의 문화를 조성하며, 최적화 상태를 지속적으로 측정할 수 있는 권한을 부여하고자 합니다.
이 백서에서는 탄력성을 자동화하여 AWS 리소스를 최대한 활용하고 비용을 최적화하는 방법에 대해 설명합니다.
소개
기존의 데이터 센터 기반 IT 모델에서는 인프라스트럭처를 구축한 후에는 일반적으로 필요한 용량에 관계없이 실행되며, 사용량에 관계없이 모든 용량이 지불됩니다. 클라우드에서는 리소스가 탄력적으로 제공되므로 특정 애플리케이션의 요구 사항에 맞게 즉시 확장하거나 축소할 수 있습니다.
탄력성 덕분에 수요에 드는 리소스 공급에 맞출 수 있습니다. 클라우드 리소스는 사용량에 따라 비용을 지불하므로 비용 최적화를 위해서는 활용에 대한 요구와 일치시키는 것이 중요합니다. 수요는 일정 기간 동안 웹 사이트를 방문하는 고객의 수와 같은 외부 사용과 개발 및 테스트 환경을 사용하는 애플리케이션 팀과 같은 내부 사용 모두를 포함합니다.
탄력성에는 시간 기반과 볼륨 기반 두 가지 기본 유형이 있습니다. 시간 기반 탄력성은 업무 시간에만 필요한 개발 환경 등 사용하지 않을 때 자원을 끄는 것을 의미합니다.
볼륨 기반 탄력성은 컴퓨팅 코어, 스토리지 크기, 처리량 등 수요의 강도에 맞춰 규모를 조정할 수 있음을 의미합니다.
모니터링, 태그 지정 및 자동화를 결합하면 AWS 리소스를 최대한 활용하고 비용을 최적화할 수 있습니다.
AWS 서비스 사용 및 비용 모니터링
탄력성을 사용할 기회를 식별하기 위해 서비스 사용 및 비용을 모니터링하는 데 사용할 수있는 몇 가지 도구가 있습니다.
비용 최적화 모니터는 클라우드 아키텍처를 구축 및 운영할 때 서비스 사용량 및 비용에 대한 통찰력을 제공하는 보고서를 생성하는 데 도움이 됩니다. 여기에는 AWS 청구 및 비용 관리 콘솔에서 액세스할 수 있는 자세한 청구 보고서가 포함됩니다. 이러한 리포트는 기간, 계정, 리소스 또는 사용자 정의 리소스 태그별로 분류할 수 있는 예상 비용을 제공하여 월별 비용을 모니터링하고 예측할 수 있도록 지원합니다. 이 정보를 분석하여 인프라를 최적화하고 탄력성을 사용하여 투자 수익을 극대화할 수 있습니다.
비용 탐색기는 비용을 확인하고 탄력성을 활용하는 방법을 찾는 데 사용할 수 있는 또 다른 무료 도구입니다. 지난 13개월까지 데이터를 보고 향후 3개월 동안 지출할 금액을 예측하고 예약된 인스턴스에 대한 권장 사항을 얻을 수 있습니다. 또한 비용 탐색기를 사용하여 시간 경과에 따른 AWS 리소스 사용량에 대한 패턴을 확인하고, 추가 조사가 필요한 영역을 식별하고, 비용을 이해하는 데 도움이 되는 추세를 확인할 수 있습니다. 또한 데이터에 대한 시간 범위를 지정하고 일별 또는 월별로 시간 데이터를 볼 수 있습니다.
태그 지정 리소스
리소스를 태그 지정하면 클라우드 IT 비용을 팀 및 애플리케이션별로 몇 초 및 페니 단위로 파악할 수 있고 제어할 수 있습니다. 태그를 사용하면 인스턴스, 이미지 및 기타 리소스에 사용자 정의 메타데이터를 할당할 수 있습니다. 예를 들어 리소스를 소유자, 목적 또는 환경별로 분류하여 이를 구성하고 비용 책임을 할당할 수 있습니다.
리소스가 정확하게 태그 지정되면 자동화 도구가 탄력성 관리에 필요한 리소스의 주요 특성을 식별할 수 있습니다. 예를 들어, 많은 고객이 비영업 시간 동안 개발 환경을 끄는 자동 시작/중지 스크립트를 실행하여 비용을 절감합니다. 이 시나리오에서는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 태그를 사용하여 계속 실행되어야 하는 개발 인스턴스를 쉽게 식별할 수 있습니다.
탄력성 자동화
AWS를 사용하면 볼륨 기반 탄력성과 시간 기반 탄력성을 모두 자동화할 수 있으므로 상당한 비용을 절감할 수 있습니다. 예를 들어, 10시간 근무 시간 이외의 시간에 EC2 인스턴스를 종료하는 기업은 24시간 운영할 때보다 70%를 절감할 수 있습니다. 자동화는 환경이 점점 더 커지고 복잡해짐에 따라 점점 더 중요해지고, 이러한 환경에서는 수동으로 탄력성 절감을 검색하는 것이 현실적으로 불가능해집니다.
자동화는 강력하지만 신중하게 사용해야 합니다. 사람과 시스템에 필요한 최소한의 액세스 권한만 부여하여 위험을 최소화하는 것이 중요합니다. 또한 자동화 계획에 대한 예외를 예측하고 다양한 예약 및 사용 시나리오를 고려해야 합니다. 한 부서 내에서조차 모든 것을 하나로 통합하는 접근 방식은 거의 현실적이지 않습니다. 필요에 맞게 유연하게 맞춤화할 수 있는 접근 방식을 선택합니다.
시간 기반 탄력성 자동화
대부분의 비 프로덕션 인스턴스는 사용하지 않을 때 중지할 수 있습니다. 사용되지 않는 인스턴스를 수동으로 종료할 수는 있지만 대규모에서는 현실적으로 불가능합니다. 시간 기반 탄력성을 자동화하는 몇 가지 방법을 살펴보겠습니다.
AWS 인스턴스 스케줄러
AWS 인스턴스 스케줄러는 EC2 인스턴스에 대한 자동 시작 및 중지 예약을 생성할 수 있는 간단한 솔루션입니다. 솔루션은 계정의 모든 AWS 영역에서 EC2 인스턴스를 자동으로 시작하고 중지하는 데 필요한 구성 요소를 시작하고 구성하는 AWS CloudFormation 템플릿을 사용하여 배포됩니다.
초기 배포 중에 AWS 인스턴스 Scheduler 기본 시작 및 중지 매개 변수와 실행할 간격을 정의하기만 하면 됩니다. 이러한 값은 Amazon DynamicoDB에 저장되며 필요에 따라 재정의하거나 수정할 수 있습니다. 사용자 지정 리소스 태그는 AWS 인스턴스 스케줄러 작업을 수신해야 하는 인스턴스를 식별합니다. 솔루션의 반복 AWS Lambda 기능은 적절하게 태그가 지정된 EC2 인스턴스를 자동으로 시작하고 중지합니다. 솔루션의 사용자 지정 Amazon CloudWatch 메트릭스를 검토하여 AWS 인스턴스 스케줄러 작업 기록을 볼 수 있습니다.
Amazon EC2 API 도구
Amazon EC2 API, 특히 StopInstances 및 TerminateInstances 작업을 사용하여 프로그래밍 방식으로 인스턴스를 종료 할 수 있습니다. 이 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) — CloudWatch 경보에 대한 응답으로 AWS Auto Scaling을 사용하여 원하는 카운트 업 또는 다운을 조정하도록 Amazon ECS 서비스를 구성할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.
· Amazon EC2 Spot Fleets — 스팟 집합은 하나 이상의 조정 정책에 따라 선택한 범위 내에서 인스턴스를 시작하거나 (스케일 아웃) 인스턴스를 종료 (스케일 인) 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.
· Amazon EMR clusters — Amazon EMR의 Auto Scaling을 사용하면 스케일링 정책에서 지정한 규칙에 따라 클러스터의 코어 및 작업 노드에서 프로그래밍 방식으로 스케일 아웃 및 스케일링 할 수 있습니다. 자세한 내용은 설명서를 읽으십시오.
· Amazon AppStream 2.0 stacks and fleets — 다양한 활용도 메트릭을 기반으로 집합의 크기를 자동으로 조정하고 사용자 요구에 맞게 실행중인 인스턴스 수를 최적화하는 조정 정책을 정의 할 수 있습니다. 자동 스케일링을 끄고 집합을 고정 크기로 실행하도록 선택할 수도 있습니다. 자세한 내용은 설명서를 읽으십시오.
· 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 컨설팅 파트너로 고객 비즈니스를 최우선으로 하며 고객의 클라우드의 성공적인 시작과 운영을 지원합니다.