Share via


성능 효율성 절충

과잉 프로비전 없이 성능 목표를 충족하는 워크로드는 효율적입니다. 성능 효율성의 목표는 항상 수요를 처리할 수 있는 충분한 공급을 제공하는 것입니다. 성능 효율성을 위한 주요 전략에는 코드 최적화, 디자인 패턴, 용량 계획 및 크기 조정의 적절한 사용이 포함됩니다. 명확한 성능 목표와 테스트는 이 핵심을 뒷받침합니다.

워크로드의 성능 목표를 협상하고 성능 효율성을 위한 워크로드를 설계하는 과정에서 성능 효율성 디자인 원칙과 성능 효율성대한 디자인 검토 검사 목록 의 권장 사항이 다른 핵심 요소의 최적화 목표에 어떤 영향을 미칠 수 있는지 알고 있어야 합니다. 특정 성능 효율성 결정은 일부 핵심 요소에 도움이 될 수 있지만 다른 요소의 장단점이 될 수 있습니다. 이 문서에서는 성능 효율성을 위해 워크로드 아키텍처 및 작업을 디자인할 때 워크로드 팀이 발생할 수 있는 절충 예제를 나열합니다.

안정성과의 성능 효율성 절충

절충: 복제 감소 및 밀도 증가. 안정성의 초석은 복제를 사용하고 오작동의 폭발 반경을 제한하여 복원력을 보장하는 것입니다.

  • 마지막 책임 있는 순간까지 크기 조정을 지연하여 효율성을 달성하는 워크로드는 수요를 밀접하게 충족하지만 예기치 않은 노드 오류 및 크기 조정 지연에 취약합니다.

  • 워크로드 리소스를 통합하면 초과 용량을 사용하고 효율성을 향상시킬 수 있습니다. 그러나 공동 배치된 구성 요소 또는 애플리케이션 플랫폼에서 오작동의 폭발 반경을 증가합니다.

  • 잉여 용량을 최소화하기 위해 스케일 인 또는 스케일 다운하면 사용량이 급증하는 동안 워크로드의 프로비전이 미달될 수 있으며, 이로 인해 공급 부족으로 인해 서비스 중단이 발생할 수 있습니다.

절충: 복잡성이 증가했습니다. 안정성은 단순성 우선 순위를 지정합니다.

  • 자동 크기 조정을 사용하여 수요와 워크로드 공급의 균형을 맞추면 워크로드 토폴로지의 가변성이 도입되고 시스템이 신뢰할 수 있도록 올바르게 작동해야 하는 구성 요소가 추가됩니다. 자동 크기 조정은 시작 및 중지와 같은 더 많은 애플리케이션 수명 주기 이벤트를 트리거합니다.

  • 데이터 분할 및 분할은 대규모 또는 자주 액세스하는 데이터 세트의 성능 문제를 방지하는 데 도움이 됩니다. 그러나 이러한 패턴을 구현하면 추가 리소스에서 (최종) 일관성을 유지해야 하기 때문에 복잡성이 증가합니다.

  • 최적화된 액세스 패턴에 대한 데이터를 비정규화하면 성능이 향상될 수 있지만 데이터의 여러 표현을 동기화된 상태로 유지해야 하므로 복잡성이 발생합니다.

  • 성능 중심 클라우드 디자인 패턴은 경우에 따라 추가 구성 요소를 도입해야 하는 경우가 있습니다. 이러한 구성 요소를 사용하면 워크로드의 노출 영역이 증가합니다. 그런 다음 전체 워크로드를 안정적으로 유지하기 위해 구성 요소 자체를 안정적으로 만들어야 합니다. 다음은 이러한 템플릿의 예입니다.

    • 중요하고 상태 저장 구성 요소를 도입하는 부하 평준화를 위한 메시지 버스입니다.
    • 신뢰할 수 있는 작업과 복제본의 인리스트먼트가 필요한 자동 크기 조정된 복제본에 대한 부하 분산 장치입니다.
    • 신뢰할 수 있는 캐시 무효화 접근 방식이 필요한 캐시에 데이터를 오프로드합니다.

절충: 활성 환경에 대한 테스트 및 관찰. 프로덕션 시스템의 불필요한 사용을 방지하는 것은 안정성을 위한 자체 보존 방법입니다.

  • 가상 트랜잭션 사용과 같은 활성 환경에서의 성능 테스트는 테스트 작업 또는 구성으로 인해 오작동을 일으킬 위험이 있습니다.

  • 워크로드는 팀이 활성 환경에서 학습할 수 있도록 하는 APM(애플리케이션 성능 모니터링) 시스템으로 계측되어야 합니다. APM 도구는 애플리케이션 코드 또는 호스팅 환경에서 설치 및 구성됩니다. 도구의 부적절한 사용, 초과 제한 사항 또는 잘못된 구성으로 인해 해당 기능과 유지 관리가 손상되어 안정성이 저하될 수 있습니다.

보안과의 성능 효율성 절충

절충: 보안 제어의 감소. 보안 제어는 심층 방어를 제공하기 위해 여러 계층(때로는 중복)에 걸쳐 설정됩니다.

한 가지 성능 최적화 전략은 특히 처리 시간이 정당화되지 않은 경우 흐름 지연에 기여하는 구성 요소 또는 프로세스를 제거하거나 우회하는 것입니다. 그러나 이 전략은 보안을 손상시킬 수 있으며 철저한 위험 분석을 동반해야 합니다. 다음 예제를 살펴보세요.

  • 전송 속도를 개선하기 위해 전송 중 또는 미사용 암호화를 제거하면 데이터가 잠재적 무결성 또는 기밀성 위반에 노출됩니다.

  • 처리 시간을 줄이기 위해 보안 검사 또는 검사 도구를 제거하거나 줄이면 해당 도구가 보호하는 기밀성, 무결성 또는 가용성이 손상될 수 있습니다.

  • 성능 영향을 제한하기 위해 보안 패치 빈도를 줄이면 워크로드가 새로운 위협에 더 취약해질 수 있습니다.

  • 네트워크 대기 시간을 개선하기 위해 네트워크 흐름에서 방화벽 규칙을 제거하면 원치 않는 통신이 허용될 수 있습니다.

  • 더 빠른 데이터 처리를 위해 데이터 유효성 검사를 최소화하면 특히 입력이 악의적인 경우 데이터 무결성이 손상될 수 있습니다.

  • 예를 들어 IV(초기화 벡터)에서 암호화 또는 해시 알고리즘에서 엔트로피를 적게 사용하는 것이 더 효율적이지만 암호화를 더 쉽게 해독할 수 있습니다.

절충: 워크로드 노출 영역이 증가했습니다. 보안은 공격 벡터를 최소화하고 보안 제어 관리를 줄이기 위해 축소되고 포함된 노출 영역의 우선 순위를 지정합니다.

성능 중심 클라우드 디자인 패턴은 경우에 따라 추가 구성 요소를 도입해야 하는 경우가 있습니다. 이러한 구성 요소는 워크로드의 노출 영역을 증가합니다. 시스템에서 아직 사용되지 않는 방식으로 새 구성 요소를 보호해야 하며 종종 규정 준수 scope 증가합니다. 일반적으로 추가되는 구성 요소는 다음과 같습니다.

  • 부하 평준화를 위한 메시지 버스

  • 자동 크기 조정된 복제본에 대한 부하 분산 장치

  • 캐시, 애플리케이션 배달 네트워크 또는 콘텐츠 배달 네트워크에 데이터 오프로드

  • 백그라운드 작업 또는 클라이언트 컴퓨팅으로 처리 오프로드

절충: 구분 제거. 보안 핵심 요소는 세분화된 보안 제어를 가능하게 하고 폭발 반경을 줄이기 위해 강력한 세분화의 우선 순위를 지정합니다.

리소스 공유는 효율성을 개선하기 위한 접근 방식입니다. 용량 사용량을 최적화하기 위해 밀도를 높입니다. 예를 들어 다중 테넌트 시나리오 또는 공통 애플리케이션 플랫폼의 아키텍처에서 서로 다른 애플리케이션을 결합하는 것이 있습니다. 밀도가 높아질 경우 다음과 같은 보안 문제가 발생할 수 있습니다.

  • 한 테넌트에서 다른 테넌트로 무단 횡적 이동의 위험이 증가했습니다.

  • 최소 권한 원칙을 위반하고 액세스 로그의 개별 감사 내역을 모호하게 하는 공유 워크로드 ID입니다.

  • 경계 보안 제어(예: 네트워크 규칙)는 모든 공동 배치 구성 요소를 포함하도록 축소되어 개별 구성 요소에 필요한 것보다 더 많은 액세스 권한을 부여합니다.

  • 더 큰 폭발 반경으로 인해 애플리케이션 플랫폼 호스트 또는 개별 구성 요소가 손상되었습니다. 이러한 증가는 공동 배치된 구성 요소에 더 쉽게 액세스하기 때문에 발생합니다.

  • 서로 다른 구성 요소를 공동 배치하면 공유 호스트로 인해 규정 준수를 위해 scope 더 많은 구성 요소가 생성됩니다.

비용 최적화를 사용한 성능 효율성 절충

절충: 수요에 대한 공급이 너무 많습니다. 비용 최적화 및 성능 효율성은 모두 수요를 제공하기에 충분한 공급이 우선 순위가 지정됩니다.

  • 오버프로비전은 팀이 워크로드의 성능 문제를 완화하려고 할 때 위험합니다. 과잉 프로비전의 몇 가지 일반적인 원인은 다음과 같습니다.

    • 팀이 최대 부하 예측에만 집중하여 워크로드 디자인에서 최대 스무딩 전략을 무시했기 때문에 초기 용량 계획이 잘못 판단되었습니다.
    • 인시던트 대응의 문제 해결 단계에서 리소스 크기 조정
  • 자동 크기 조정을 잘못 구성할 수 있습니다. 잘못 구성된 자동 크기 조정의 몇 가지 예는 다음과 같습니다.

    • 최소한의 수요 변경 또는 연장된 대기 시간으로 스케일 업하면 수요에 필요한 것보다 더 많은 비용이 발생할 수 있습니다.
    • 설정된 상한 없이 자동 크기 조정을 사용하면 시스템 오작동 또는 남용으로 인해 통제되지 않는 증가로 이어질 수 있으며 예상 워크로드 요구 사항을 초과할 수 있습니다.
  • 여러 지역으로 확장하면 워크로드를 사용자에게 더 가깝게 만들어 성능을 향상시킬 수 있으며 임시 리소스 용량 제약 조건을 방지할 수 있습니다. 그러나 복잡성과 리소스 중복도 추가됩니다.

절충: 더 많은 구성 요소. 한 가지 비용 최적화 기술은 밀도를 높이고 중복을 제거하고 기능을 공동 배치하여 더 적은 수의 리소스와 통합하는 것입니다.

  • 성능 중심 클라우드 디자인 패턴은 경우에 따라 추가 구성 요소를 도입해야 하는 경우가 있습니다. 이러한 추가 구성 요소는 일반적으로 워크로드의 전반적인 비용 증가로 이어지고 있습니다. 예를 들어 응답 시간을 개선하기 위해 애플리케이션 또는 콘텐츠 배달 네트워크에 부하 평준화 또는 오프로드 작업을 위한 메시지 버스를 포함할 수 있습니다.

  • 리소스 구분을 사용하면 워크로드의 여러 부분이 고유한 성능 특성을 가질 수 있으므로 각 세그먼트에 대해 독립적인 튜닝을 사용할 수 있습니다. 그러나 일반화된 단일 구성 요소가 아닌 여러 최적화된 세그먼트가 필요하기 때문에 총 소유권 비용이 증가할 수 있습니다.

절충: 기능 요구 사항에 맞지 않는 항목에 대한 투자 증가. 비용 최적화에 대한 한 가지 방법은 배포된 솔루션에서 제공하는 값을 평가하는 것입니다.

  • 프리미엄 서비스 및 SKU는 워크로드가 성능 목표를 충족하는 데 도움이 될 수 있습니다. 이러한 서비스는 일반적으로 더 많은 비용이 들며 추가 기능을 제공할 수 있습니다. 많은 프리미엄 기능이 성능 목표를 달성하기 위해 특별히 사용되지 않는 경우 사용이 부족할 수 있습니다.

  • 성능이 좋은 워크로드에는 전송 및 저장해야 하는 가시성을 위해 원격 분석 데이터가 필요합니다. 수집되는 성능 원격 분석의 증가는 원격 분석 데이터 전송 및 스토리지 비용을 증가시킬 수 있습니다.

  • 성능 테스트 활동은 프로덕션 시스템의 값과 연결되지 않은 비용을 추가합니다. 성능 테스트 비용의 예는 다음과 같습니다.

    • 성능 중심 테스트 전용 환경 인스턴스화
    • 특수 성능 도구 사용.
    • 테스트를 실행하는 데 시간을 소비합니다.
  • 특수한 성능 최적화 작업을 위해 팀 구성원을 교육하거나 성능 튜닝 서비스에 대한 비용을 지불하면 워크로드 비용이 추가됩니다.

운영 우수성과의 성능 효율성 절충

절충: 가시성 감소. 의미 있는 경고를 워크로드에 제공하고 성공적인 인시던트 대응을 보장하려면 가시성이 필요합니다.

  • 다른 작업 대신 원격 분석 수집에 소요되는 처리 시간을 줄이기 위해 로그 및 메트릭 볼륨을 줄이면 시스템의 전반적인 가시성이 줄어듭니다. 그 결과 가시성 감소의 몇 가지 예는 다음과 같습니다.

    • 의미 있는 경고를 작성하는 데 사용되는 데이터 요소를 제한합니다.
    • 인시던트 대응 활동에 대한 적용 범위의 간격으로 이어집니다.
    • 보안에 민감하거나 규정 준수에 민감한 상호 작용 및 경계에서 가시성을 제한합니다.
  • 성능 디자인 패턴이 구현되면 워크로드의 복잡성이 증가하는 경우가 많습니다. 구성 요소는 중요한 흐름에 추가됩니다. 워크로드 모니터링 전략 및 성능 모니터링에는 이러한 구성 요소가 포함되어야 합니다. 흐름이 여러 구성 요소 또는 애플리케이션 경계에 걸쳐 있는 경우 해당 흐름의 성능을 모니터링하는 복잡성이 증가합니다. 흐름 성능은 상호 연결된 모든 구성 요소 간에 상호 연결되어야 합니다.

절충: 작업의 복잡성이 증가했습니다. 복잡한 환경에는 더 복잡한 상호 작용이 있고 루틴, 임시 및 응급 작업으로 인한 부정적인 영향이 발생할 가능성이 높습니다.

  • 밀도를 높여 성능 효율성을 개선하면 운영 작업의 위험이 높아집니다. 단일 프로세스의 오류는 큰 폭발 반경을 가질 수 있습니다.

  • 성능 디자인 패턴이 구현되면 백업, 키 회전 및 복구 전략과 같은 운영 절차에 영향을 줍니다. 예를 들어 데이터 분할 및 분할은 팀이 이러한 작업이 데이터 일관성에 영향을 주지 않도록 하려고 할 때 일상적인 작업을 복잡하게 만들 수 있습니다.

절충: 문화 스트레스. 운영 우수성은 비난, 존중 및 지속적인 개선의 문화에 뿌리를 두고 있습니다.

  • 성능 문제의 근본 원인 분석을 수행하면 수정이 필요한 프로세스 또는 구현의 결함이 식별됩니다. 팀은 연습을 학습 기회로 고려해야 합니다. 팀 구성원이 문제에 대한 비난을 받는 경우 사기에 영향을 받을 수 있습니다.

  • 루틴 및 임시 프로세스는 워크로드 성능에 영향을 줄 수 있습니다. 사용량이 적은 시간에 이러한 활동을 수행하는 것이 바람직하다고 여겨지는 경우가 많습니다. 그러나 사용량이 많은 시간은 이러한 작업을 담당하거나 숙련된 팀 구성원에게 불편하거나 정기적인 시간 외일 수 있습니다.

다른 핵심 요소에 대한 절충을 살펴봅니다.