REL07-BP01 리소스를 확보하거나 조정할 때 자동화 사용 - AWS Well-Architected 프레임워크

REL07-BP01 리소스를 확보하거나 조정할 때 자동화 사용

손상된 리소스를 교체하거나 워크로드를 조정할 때 Amazon S3 및 AWS Auto Scaling과 같은 관리형 AWS 서비스를 사용하여 프로세스를 자동화합니다. 서드파티 도구 및 AWS SDK를 사용하여 규모 조정을 자동화할 수도 있습니다.

관리형 AWS 서비스에는 Amazon S3, Amazon CloudFront, AWS Auto Scaling, AWS Lambda, Amazon DynamoDB, AWS Fargate, Amazon Route 53이 포함됩니다.

AWS Auto Scaling을 사용하면 손상된 인스턴스를 감지하고 교체할 수 있습니다. 또한 Amazon EC2 인스턴스 및 스팟 플릿, Amazon ECS 작업, Amazon DynamoDB 테이블 및 인덱스와 Amazon Aurora 복제본에 대한 조정 계획을 구축할 수도 있습니다.

EC2 인스턴스 규모를 조정할 때는 여러 가용 영역(3개 이상 권장)을 사용하고 용량을 추가하거나 제거하여 이러한 가용 영역 간의 균형을 유지해야 합니다. ECS 작업 또는 Kubernetes 포드(Amazon Elastic Kubernetes Service를 사용하는 경우)도 여러 가용 영역에 분산되어야 합니다.

AWS Lambda를 사용하는 경우에는 인스턴스 규모가 자동으로 조정됩니다. 함수에 대한 이벤트 알림이 수신될 때마다 AWS Lambda가 컴퓨팅 플릿 내에서 여유 용량을 신속하게 찾고 할당된 동시성까지 코드를 실행합니다. 사용자는 필요한 동시성이 특정 Lambda와 Service Quotas에 구성되어 있는지 확인해야 합니다.

Amazon S3는 높은 요청 속도를 처리하도록 자동으로 조정됩니다. 예를 들어, 애플리케이션으로 버킷에서 접두사별로 초당 최소 3,500개의 PUT/COPY/POST/DELETE 또는 5,500개의 GET/HEAD 요청을 달성할 수 있습니다. 버킷의 접두사 수에는 제한이 없습니다. 읽기를 병렬화하여 읽기 또는 쓰기 성능을 향상시킬 수 있습니다. 예를 들어, Amazon S3 버킷에서 접두사 10개를 만들어 읽기를 병렬화하는 경우 읽기 성능을 초당 읽기 요청 55,000개로 조정할 수 있습니다.

Amazon CloudFront 또는 신뢰할 수 있는 콘텐츠 전송 네트워크(CDN)를 구성해서 사용합니다. CDN은 더 빠른 최종 사용자 응답 시간을 제공할 수 있으며 콘텐츠 요청을 캐시에서 처리하므로 워크로드의 크기를 확대할 필요가 줄어듭니다.

일반적인 안티 패턴:

  • 자동 복구를 위해 Auto Scaling 그룹을 구현하지만 탄력성은 구현하지 않습니다.

  • Auto Scaling을 사용하여 트래픽의 대규모 증가에 대응합니다.

  • 고도의 상태 저장 애플리케이션을 배포하여 탄력성 옵션을 없습니다.

이 모범 사례 확립의 이점: 자동화는 리소스를 배포하고 폐기할 때 수작업으로 인한 오류가 발생할 가능성을 없앱니다. 자동화는 배포 또는 폐기 요구 사항에 대한 느린 대응으로 인해 비용이 초과하거나 서비스가 거부될 위험성을 없앱니다.

이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음

구현 가이드

  • AWS Auto Scaling을 구성 및 사용합니다. 애플리케이션을 모니터링하고 용량을 자동으로 조정하여 최저 비용으로 안정적이고 예측 가능한 성능을 유지할 수 있습니다. AWS Auto Scaling을 사용하면 여러 서비스에 걸쳐 여러 리소스에 대한 애플리케이션 조정을 설정할 수 있습니다.

  • Elastic Load Balancing을 사용합니다. 로드 밸런서는 경로별 또는 네트워크 연결별로 로드를 분산할 수 있습니다.

    • Elastic Load Balancing이란 무엇인가요?

      • Application Load Balancer는 로드를 경로별로 분산합니다.

      • Network Load Balancer는 연결별로 로드를 분산합니다.

        • Network Load Balancer란 무엇인가요?

          • TCP를 사용하여 다른 워크로드로 트래픽을 분산하도록 Network Load Balancer를 구성하거나 워크로드가 일정한 IP 주소 세트를 갖도록 합니다.

          • Network Load Balancer를 사용해 AWS Auto Scaling과 통합하는 방식으로 수요를 관리해 로드를 분산할 수 있습니다.

  • 고가용성 DNS 제공업체를 사용합니다. DNS 이름을 사용하면 사용자가 IP주소 대신 이름을 입력하여 워크로드에 액세스하고 이 정보를 정의된 범위, 즉 일반적으로 워크로드 사용자의 경우 전역적으로 배포할 수 있습니다.

    • Amazon Route 53 또는 신뢰할 수 있는 DNS 제공업체를 사용합니다.

    • Route 53을 사용하여 CloudFront 배포 및 로드 밸런서를 관리합니다.

      • 관리할 도메인 및 하위 도메인을 결정합니다.

      • ALIAS 또는 CNAME 레코드를 사용하여 적절한 레코드 세트를 생성합니다.

  • AWS 글로벌 네트워크를 사용하여 사용자부터 애플리케이션까지 경로를 최적화합니다. AWS Global Accelerator는 30초 이내에 애플리케이션 엔드포인트의 상태를 지속적으로 모니터링하고 트래픽을 정상 엔드포인트로 리디렉션합니다.

    • AWS Global Accelerator는 로컬 또는 글로벌 사용자에 대해 애플리케이션의 가용성과 성능을 개선하는 서비스입니다. Application Load Balancer, Network Load Balancer, Amazon EC2 인스턴스 등 하나 또는 여러 AWS 리전에서 애플리케이션 엔드포인트에 고정된 진입점 역할을 하는 고정 IP 주소를 제공합니다.

  • Amazon CloudFront 또는 신뢰할 수 있는 콘텐츠 전송 네트워크(CDN)를 구성해서 사용합니다. 콘텐츠 전송 네트워크를 사용하면 최종 사용자 입장에서는 응답 시간을 단축할 수 있으며 워크로드를 불필요하게 확장할 수 있는 콘텐츠 요청을 처리할 수 ​​있습니다.

    • What is Amazon CloudFront?

      • 워크로드에 Amazon CloudFront 배포를 구성하거나 서드파티 CDN을 사용합니다.

        • CloudFront의 IP 범위를 엔드포인트 보안 그룹 또는 액세스 정책에 사용함으로써 워크로드에 대한 액세스를 제한하여 CloudFront에서만 액세스할 수 있도록 할 수 있습니다.

리소스

관련 문서: