PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악 - AWS Well-Architected Framework

PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악

각 컴퓨팅 솔루션에는 워크로드 특성을 지원하는 옵션과 구성이 있습니다. 다양한 옵션을 통해 워크로드를 보완할 수 있는 방식과 애플리케이션에 가장 적합한 구성 옵션을 알아봅니다. 이러한 옵션의 예로는 인스턴스 패밀리, 크기, 기능(GPU, I/O), 버스팅, 시간 초과, 함수 크기, 컨테이너 인스턴스 및 동시성이 있습니다.

원하는 결과: CPU, 메모리, 네트워크 처리량(throughput), GPU, IOPS, 트래픽 패턴, 데이터 액세스 패턴을 비롯한 워크로드 특성이 문서화되어 있어 워크로드 특성에 맞는 컴퓨팅 솔루션을 구성하는 데 사용됩니다. 이러한 각 지표와 워크로드별 사용자 지정 지표를 기록하여 모니터링한 후 요구 사항을 효과적으로 충족하도록 컴퓨팅 구성을 최적화하는 데 사용합니다.

일반적인 안티 패턴:

  • 온프레미스에서 사용하던 컴퓨팅 솔루션을 그대로 활용합니다.

  • 워크로드 특성에 맞게 컴퓨팅 옵션 또는 인스턴스 패밀리를 검토하지 않습니다.

  • 버스팅 기능을 보장하기 위해 컴퓨팅 규모를 과도하게 키웁니다.

  • 동일한 워크로드에 여러 컴퓨팅 관리 플랫폼을 사용합니다.

이 모범 사례 수립의 이점: 각 워크로드에 적합한 솔루션을 결정하려면 AWS 컴퓨팅 오퍼링에 대해 잘 알아야 합니다. 워크로드에 사용할 컴퓨팅 오퍼링을 선택한 후에는 이러한 컴퓨팅 오퍼링을 신속하게 실험하여 워크로드 요구 사항이 제대로 충족되는지 확인할 수 있습니다. 워크로드 특성에 맞게 최적화된 컴퓨팅 솔루션을 사용하면 성능이 향상되고 ,비용이 줄어들며, 신뢰성이 높아집니다.

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

구현 가이드

워크로드에서 4주 이상 동일한 컴퓨팅 옵션을 사용하고 있으며 앞으로도 특성이 변하지 않을 것으로 예상되는 경우 AWS Compute Optimizer 를 사용하여 컴퓨팅 특성에 따라 권장 사항을 알아볼 수 있습니다. 지표 부족, 지원되지 않는 인스턴스 유형 또는 예측 가능한 특성 변경으로 인해 AWS Compute Optimizer를 사용할 수 없는 경우 로드 테스트 및 실험을 기반으로 지표를 예측해야 합니다. 

구현 단계:

  1. EC2 시작 유형을 사용하여 EC2 인스턴스 또는 컨테이너에서 실행 중입니까?

    1. 워크로드에서 GPU를 사용하여 성능을 높일 수 있습니까?

      1. 가속화된 컴퓨팅 인스턴스는 기계 학습 훈련, 추론 및 고성능 컴퓨팅에 최상의 성능을 제공하는 GPU 기반 인스턴스입니다.

    2. 워크로드에서 기계 학습 추론 애플리케이션을 실행합니까?

      1. AWS Inferentia(Inf1) - Inf1 인스턴스는 기계 학습 추론 애플리케이션을 지원하도록 구축되었습니다. Inf1 인스턴스를 사용하는 고객은 이미지 인식, 음성 인식, 자연어 처리, 개인화 및 사기 탐지와 같은 대규모 기계 학습 추론 애플리케이션을 실행할 수 있습니다. TensorFlow, PyTorch 또는 MXNet과 같이 널리 사용되는 기계 학습 프레임워크 중 하나에 모델을 구축하고 GPU 인스턴스를 사용하여 모델을 훈련할 수 있습니다. 요구 사항을 충족하도록 기계 학습 모델을 훈련한 후에는 Inferentia 칩의 기계 학습 추론 성능을 최적화하는 컴파일러, 런타임 및 프로파일링 도구로 구성된 특수 SDK(소프트웨어 개발 키트)인 AWS Neuron을 사용하여 Inf1 인스턴스에 모델을 배포할 수 있습니다.

    3. 워크로드를 낮은 수준의 하드웨어와 통합하여 성능을 개선합니까? 

      1. FPGA(Field Programmable Gate Array) - FPGA를 사용하면 매우 까다로운 워크로드에 사용자 지정 하드웨어 가속 실행 기능을 사용함으로써 워크로드를 최적화할 수 있습니다. C, Go 등의 지원되는 일반 프로그래밍 언어나 Verilog, VHDL 등의 하드웨어 중심 언어를 활용해 알고리즘을 정의할 수 있습니다.

    4. 최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까?

      1. 사용 Compute Optimizer 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다.

    5. CPU 지표로 인해 워크로드 성능이 제한됩니까? 

      1. 컴퓨팅 최적화 인스턴스는 고성능 프로세서가 필요한 워크로드에 이상적입니다. 

    6. 메모리 지표로 인해 워크로드 성능이 제한됩니까? 

      1. 메모리 최적화 인스턴스는 상당한 메모리를 제공하여 메모리를 많이 사용하는 워크로드를 지원합니다.

    7. IOPS로 인해 워크로드 성능이 제한됩니까?

      1. 스토리지 최적화 인스턴스는 로컬 스토리지에 대한 높은 순차 읽기 및 쓰기 액세스(IOPS)가 필요한 워크로드에 적합하도록 설계되었습니다.

    8. 워크로드 특성에 모든 지표에 걸친 균형 잡힌 요구 사항이 반영되었습니까?

      1. 트래픽 급증을 처리하려면 워크로드 CPU를 버스트해야 합니까?

        1. 버스트 가능 성능 인스턴스는 컴퓨팅 최적화 인스턴스와 유사하지만, 컴퓨팅에 최적화된 인스턴스에서 식별된 고정 CPU 기준을 초과하여 버스트할 수 있습니다.

      2. 범용 인스턴스는 모든 특성을 균형 있게 제공하여 다양한 워크로드를 지원합니다.

    9. 컴퓨팅 인스턴스가 Linux에서 실행 중이고 네트워크 인터페이스 카드의 네트워크 처리량(throughput)으로 인해 제한을 받습니까?

      1. 검토 '성능 질문 5, 모범 사례 2: 사용 가능한 네트워킹 기능 평가'를 검토하여 성능 요구 사항을 충족하는 올바른 인스턴스 유형 및 패밀리를 찾아봅니다.

    10. 워크로드에 1년 동안 사용할 수 있는 특정 가용 영역의 일관되고 예측 가능한 인스턴스가 필요합니까? 

      1. 예약 인스턴스 는 특정 가용 영역에서 용량 예약을 확정합니다. 예약 인스턴스는 특정 가용 영역에서 컴퓨팅 기능이 필요한 경우에 이상적입니다. 

    11. 워크로드에 전용 하드웨어가 필요한 라이선스가 있습니까?

      1. 전용 호스트 는 기존 소프트웨어 라이선스를 지원하고 규정 준수 요구 사항을 충족할 수 있도록 합니다.

    12. 컴퓨팅 솔루션을 버스트해야 하고 동기식 처리가 필요합니까?

      1. 온디맨드 인스턴스 를 사용하면 장기 약정 없이 시간 또는 초 단위로 컴퓨팅 용량을 이용할 수 있습니다. 이러한 인스턴스는 성능 기준 요구를 넘어서 버스팅하는 데 도움이 됩니다.

    13. 스테이스리스, 내결함성 및 비동기식인 컴퓨팅 솔루션을 사용합니까? 

      1. 스팟 인스턴스 를 사용하면 내결함성을 갖춘 스테이스리스 워크로드를 위해 미사용 인스턴스 용량을 활용할 수 있습니다. 

  2. 컨테이너를 Fargate에서 실행하고 있습니까?

    1. 메모리 또는 CPU로 인해 작업 성능이 제한됩니까?

      1. SAP 환경의 보안 관련 작업에 대한 지침은 태스크 크기 를 사용하여 메모리 또는 CPU를 조정할 수 있습니다.

    2. 성능이 트래픽 패턴 버스트의 영향을 받고 있습니까?

      1. SAP 환경의 보안 관련 작업에 대한 지침은 Auto Scaling 구성을 사용하여 트래픽 패턴을 일치시킬 수 있습니다.

  3. 컴퓨팅 솔루션이 Lambda에 있습니까?

    1. 최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까?

      1. 사용 Compute Optimizer 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다.

    2. AWS Compute Optimizer를 사용하는 데 필요한 지표가 충분하지 않습니까?

      1. Compute Optimizer를 사용하는 데 활용할 지표가 없는 경우 AWS Lambda 파워 튜닝 을 통해 최적의 구성을 선택할 수 있습니다.

    3. 메모리 또는 CPU로 인해 함수 성능이 제한됩니까?

      1. 성능 요구 지표를 충족하도록 Lambda 메모리 를 구성합니다.

    4. 함수 실행 시 시간이 초과되었습니까?

      1. 시간 초과 설정을 변경합니다.

    5. 함수 성능이 활동 및 동시성 버스트로 인해 제한됩니까? 

      1. 성능 요구 사항을 충족하도록 동시성 설정 을 구성합니다.

    6. 함수가 비동기적으로 실행되며 재시도 시 실패합니까?

      1. 비동기 구성 설정에서 이벤트의 최대 사용 기간과 최대 재시도 제한을 구성합니다.

구현 계획의 작업 수준: 

이 모범 사례를 적용하려면 현재 컴퓨팅 특성과 지표를 알고 있어야 합니다. 이러한 지표를 수집하고 기준선을 설정한 다음 해당 지표를 사용하여 이상적인 컴퓨팅 옵션을 식별하는 작업은 낮음 수준부터 보통 수준의 노력을 투자하여 수행됩니다. 이는 로드 테스트 및 실험을 통해 가장 효과적으로 검증됩니다.

리소스

관련 문서:

관련 동영상:

관련 예시: