REL 7: 수요 변경에 따라 조정되도록 워크로드를 설계하려면 어떻게 해야 합니까?
확장 가능한 워크로드는 리소스를 자동으로 추가하거나 제거하여 특정 시기의 수요에 리소스 공급을 맞출 수 있는 탄력성을 제공합니다.
리소스
AWS Auto Scaling: How Scaling Plans Work
What Is Amazon EC2 Auto Scaling?
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
What is Amazon CloudFront?
Distributed Load Testing on AWS: simulate thousands of connected users
Telling Stories About Little's Law
AWS Marketplace: products that can be used with auto scaling
APN Partner: partners that can help you create automated compute solutions
모범 사례:
-
리소스를 확보하거나 조정할 때 자동화 사용: 손상된 리소스를 교체하거나 워크로드를 조정할 때 Amazon S3 및 AWS Auto Scaling과 같은 관리형 AWS 서비스를 사용하여 프로세스를 자동화합니다. 타사 도구 및 AWS SDK를 사용하여 크기를 자동 조정할 수도 있습니다.
-
워크로드 장애 감지 시 리소스 확보: 가용성이 영향을 받는 경우 필요에 따라 리소스를 사후에 확장하여 워크로드 가용성을 복원합니다.
-
워크로드에 더 많은 리소스가 필요한 것으로 감지되면 리소스를 확보합니다.: 수요를 충족하고 가용성에 영향을 미치지 않도록 리소스를 사전에 확장합니다.
-
워크로드 부하 테스트: 확장 작업이 워크로드의 필요 사항을 충족하는지 측정하기 위한 로드 테스트 방식을 채택하십시오.
개선 계획
리소스를 확보하거나 조정할 때 자동화 사용
What is AWS Auto Scaling?
- 해당하는 경우 Amazon EC2 인스턴스 및 스팟 플릿, Amazon ECS 태스크, Amazon DynamoDB 테이블 및 인덱스, Amazon
Aurora 복제본 및 AWS Marketplace 어플라이언스에 대해 Auto Scaling을 구성합니다.
Managing throughput capacity automatically with DynamoDB Auto Scaling- 서비스 API 작업을 사용하여 경보, 확장 정책, 가동 준비 시간 및 중단 시간을 지정합니다.
What is Elastic Load Balancing?
- Application Load Balancers는 로드를 경로별로 분산합니다.
What is an Application Load Balancer?- 도메인 이름의 하위 경로를 기준으로 다른 워크로드에 트래픽을 분산하도록 Application Load Balancer를 구성합니다.
- Application Load Balancer를 사용해 AWS Auto Scaling과 통합하는 방식으로 수요를 관리해 로드를 분산할 수 있습니다.
Using a load balancer with an Auto Scaling group
- Network Load Balancers는 연결별로 로드를 분산합니다.
What is a Network Load Balancer?- TCP를 사용하여 다른 워크로드로 트래픽을 분산하도록 Network Load Balancer를 구성하거나 워크로드가 일정한 IP 주소 집합을 갖도록 합니다.
- Network Load Balancer를 사용해 AWS Auto Scaling과 통합하는 방식으로 수요를 관리해 로드를 분산할 수 있습니다.
- Amazon Route 53 또는 신뢰할 수 있는 타사 DNS 사용
What is Amazon Route 53? - Route 53을 사용하여 CloudFront 배포 및 로드 밸런서를 관리하십시오.
- 관리할 도메인 및 하위 도메인을 결정하십시오.
- ALIAS 또는 CNAME 레코드를 사용하여 적절한 레코드 세트를 생성합니다.
Working with records
- AWS Global Accelerator는 로컬 또는 글로벌 사용자에 대해 애플리케이션의 가용성과 성능을 개선하는 서비스입니다. Application
Load Balancer, Network Load Balancer, Amazon EC2 인스턴스 등, 하나 또는 여러 AWS 리전에서 애플리케이션
엔드포인트에 고정된 진입점 역할을 하는 고정 IP 주소를 제공합니다.
What Is AWS Global Accelerator?
What is Amazon CloudFront?
- 워크로드에 Amazon CloudFront 배포를 구성하거나 타사 CDN을 사용합니다.
- CloudFront의 IP 범위를 엔드포인트 보안 그룹 또는 액세스 정책에 사용함으로써 워크로드에 대한 액세스를 제한하여 CloudFront에서만 액세스할 수 있도록 할 수 있습니다.
워크로드 장애 감지 시 리소스 확보
- AWS Auto Scaling의 핵심 구성 요소인 조정 계획을 사용합니다. 조정 계획에서 리소스 조정을 위한 일련의 지침을 구성합니다. AWS CloudFormation을
사용하거나 AWS 리소스에 태그를 추가하는 경우 애플리케이션별로 다양한 리소스 세트에 대해 조정 계획을 설정할 수 있습니다. AWS Auto Scaling은
각 리소스별로 맞춤화된 조정 전략에 대한 권장 사항을 제공합니다. 조정 계획을 생성하면 AWS Auto Scaling이 동적 조정과 예측 조정 방식을
결합하여 조정 전략을 지원합니다.
AWS Auto Scaling: How Scaling Plans Work - Amazon EC2 Auto Scaling을 사용하면 애플리케이션의 로드를 처리하는 데 사용할 수 있는 적절한 수의 Amazon EC2 인스턴스를
확보할 수 있습니다. Auto Scaling 그룹이라는 EC2 인스턴스 모음을 생성합니다. 각 Auto Scaling 그룹의 최소 인스턴스 수를 지정할
수 있으며, Amazon EC2 Auto Scaling은 사용하면 그룹의 크기가 이 값 아래로 내려가지 않게 합니다. 각 Auto Scaling 그룹의
최대 인스턴스 수를 지정할 수 있으며, Amazon EC2 Auto Scaling은 그룹의 크기가 이 값을 넘지 않도록 합니다.
What Is Amazon EC2 Auto Scaling? - Amazon DynamoDB Auto Scaling은 AWS Application Auto Scaling 서비스를 사용하여 사용자를 대신해 실제 트래픽
패턴에 따라 프로비저닝된 처리 용량을 동적으로 조정합니다. 따라서 테이블 또는 글로벌 보조 인덱스를 통해 프로비저닝된 읽기 및 쓰기 용량을 늘려 조절
없이 급증하는 트래픽을 처리할 수 있습니다.
Managing Throughput Capacity Automatically with DynamoDB Auto Scaling
워크로드에 더 많은 리소스가 필요한 것으로 감지되면 리소스를 확보합니다.
- 지정된 요청 속도를 처리하는 데 필요한 컴퓨팅 리소스(컴퓨팅 동시성)를 계산합니다.
Telling Stories About Little's Law - 사용량에 대한 과거 패턴이 있는 경우 Amazon EC2 Auto Scaling에 대한 예약된 조정을 설정합니다.
Scheduled Scaling for Amazon EC2 Auto Scaling - AWS 예측 조정 사용
Predictive Scaling for EC2, Powered by Machine Learning
워크로드 부하 테스트
Distributed Load Testing on AWS: simulate thousands of connected users
- 요청의 조합 식별: 다양한 요청 조합이 있을 수 있으므로 트래픽 조합을 식별할 때 다양한 시간 프레임을 살펴봐야 합니다.
- 로드 드라이버 구현: 사용자 지정 코드, 오픈 소스 또는 상용 소프트웨어를 사용하여 로드 드라이버를 구현할 수 있습니다.
- 처음에는 작은 용량을 사용하여 로드 테스트 수행: 인스턴스 또는 컨테이너 하나 정도의 작은 용량으로 로드를 유도하면 즉각적인 효과가 나타납니다.
- 더 큰 용량에 대해 로드 테스트 수행: 분산된 부하에서는 효과가 다르게 나타나므로 가능한 한 제품 환경에 가깝게 테스트해야 합니다.