비용 최적화를 지원하는 클라우드 디자인 패턴
워크로드 아키텍처를 디자인할 때 일반적인 문제를 해결하는 업계 패턴을 사용해야 합니다. 패턴은 워크로드 내에서 의도적으로 절충하고 원하는 결과를 최적화하는 데 도움이 될 수 있습니다. 또한 안정성, 보안, 성능 및 운영에 영향을 줄 수 있는 특정 문제에서 발생하는 위험을 완화하는 데 도움이 될 수 있습니다. 완화되지 않으면 결국 위험이 증가합니다. 이러한 패턴은 실제 환경에서 지원되며, 클라우드 규모 및 운영 모델을 위해 설계되었으며, 본질적으로 공급업체에 구애받지 않습니다. 워크로드 디자인을 표준화하는 방법으로 잘 알려진 패턴을 사용하는 것은 운영 우수성의 구성 요소입니다.
많은 디자인 패턴은 하나 이상의 아키텍처 핵심 요소를 직접 지원합니다. 비용 최적화 핵심 요소를 지원하는 디자인 패턴은 유리한 청구 모델 구현, 과잉 프로비전 감소, 크기 조정 차원 변경 및 마이그레이션 중 값 최대화와 일치합니다.
비용 최적화를 위한 디자인 패턴
다음 표에서는 비용 최적화의 목표를 지원하는 클라우드 디자인 패턴을 요약합니다.
패턴 | 요약 |
---|---|
클레임 검사 | 메시지 흐름과 데이터를 구분하여 메시지와 관련된 데이터를 별도로 검색하는 방법을 제공합니다. 메시징 시스템은 메시지 크기에 제한을 적용하는 경우가 많으며 크기 제한 증가는 종종 프리미엄 기능입니다. 메시지 본문의 크기를 줄이면 더 저렴한 메시징 솔루션을 사용할 수 있습니다. |
경쟁 소비자 | 분산 및 동시 처리를 적용하여 큐의 항목을 효율적으로 처리합니다. 이 패턴은 큐가 비어 있을 때 큐 깊이를 기반으로 하는 크기를 0으로 줄여 비용을 최적화하는 데 도움이 될 수 있습니다. 동시 소비자 인스턴스의 최대 수를 제한할 수 있도록 하여 비용을 최적화할 수도 있습니다. |
컴퓨팅 리소스 통합 | 밀도를 높여 컴퓨팅 리소스를 최적화하고 통합합니다. 이 패턴은 공유 인프라에서 워크로드의 여러 애플리케이션 또는 구성 요소를 결합합니다. 이렇게 하면 구성 요소 집계 또는 풀링된 인프라의 전체 워크로드를 통해 사용되지 않는 프로비전된 용량을 방지하여 컴퓨팅 리소스의 사용률을 최대화합니다. 컨테이너 오케스트레이터는 일반적인 예입니다. |
게이트웨이 오프로딩 | 요청을 백 엔드 노드로 전달하기 전과 후에 게이트웨이 디바이스에 요청 처리를 오프로드합니다. 요청 프로세스에 오프로드 게이트웨이를 추가하면 노드당 지출되는 리소스의 비용을 게이트웨이 구현으로 리디렉션할 수 있습니다. 중앙 집중식 처리 모델의 비용은 분산 모델의 비용보다 낮은 경우가 많습니다. |
메시징 브리지 | 프로토콜 또는 형식으로 인해 호환되지 않는 메시징 시스템 간의 통신을 사용하도록 설정하는 중간자 기능을 제공합니다. 이 중개자는 기존 시스템의 수명을 높이는 동시에 다른 메시징 또는 이벤트 기술을 사용하는 시스템과의 상호 운용성을 허용할 수 있습니다. |
게시자/구독자 | 중간 메시지 브로커 또는 이벤트 버스를 사용하여 직접 클라이언트-서비스 또는 클라이언트-서비스 통신을 통신으로 대체하여 아키텍처의 구성 요소를 분리합니다. 이 설계를 사용하면 아키텍처에서 이벤트 기반 접근 방식을 사용할 수 있으며, 이를 통해 소비 기반 청구와 잘 결합되어 과잉 프로비전을 방지할 수 있습니다. |
큐 기반 부하 평준화 | 큐에서 버퍼링하고 큐 프로세서가 제어된 속도로 처리하도록 하여 들어오는 요청 또는 작업의 수준을 제어합니다. 부하 처리는 요청 또는 태스크 유입에서 분리되므로 이 방법을 사용하여 최대 부하를 처리하기 위해 리소스를 과도하게 프로비전할 필요성을 줄일 수 있습니다. |
분할 | 특정 요청을 처리하기 위해 특정 논리 대상으로 로드를 전달하여 최적화를 위해 공동 배치를 사용하도록 설정합니다. 분할된 데이터베이스를 구현하는 시스템은 비용이 많이 드는 단일 리소스가 아닌 비용이 저렴한 컴퓨팅 또는 스토리지 리소스의 여러 인스턴스를 사용하는 것이 좋습니다. 대부분의 경우 이 구성으로 비용을 절감할 수 있습니다. |
정적 콘텐츠 호스팅 | 해당 용도로 설계된 호스팅 플랫폼을 사용하여 워크로드 클라이언트에 정적 콘텐츠 배달을 최적화합니다. 일반적으로 동적 애플리케이션 호스트는 정적 호스트보다 비용이 더 많이 들며, 이는 동적 호스트는 코딩된 비즈니스 논리를 실행할 수 있기 때문입니다. 정적 콘텐츠를 제공하기 위해 애플리케이션 플랫폼을 사용하는 것은 비용 효율적이지 않습니다. |
스트랭글러 그림 | 시스템을 마이그레이션하거나 현대화하는 동안 실행 중인 시스템의 구성 요소를 새 구성 요소로 체계적으로 교체하는 방법을 제공합니다. 이 방법의 목표는 증분 방식으로 현대화하면서 현재 실행 중인 시스템에 대한 기존 투자 사용을 최대화하는 것입니다. 이를 통해 낮은 ROI 교체 전에 높은 ROI 교체를 수행할 수 있습니다. |
제한 | 리소스 또는 구성 요소에 들어오는 요청의 속도 또는 처리량에 제한을 적용합니다. 이 제한은 비용 모델링을 알릴 수 있으며 애플리케이션의 비즈니스 모델에 직접 연결될 수도 있습니다. 또한 리소스 크기 조정에 고려될 수 있는 사용률에 명확한 상한을 적용합니다. |
발레 키 | 중간 리소스를 사용하여 액세스를 프록시하지 않고 리소스에 대한 보안 제한 액세스 권한을 부여합니다. 이 디자인은 모든 클라이언트 요청을 직접 처리하는 구성 요소를 추가하지 않고 클라이언트와 리소스 간의 단독 관계로 처리를 오프로드합니다. 클라이언트 요청이 빈번하거나 상당한 프록시 리소스를 필요로 할 정도로 크거나 프록시가 요청의 일부로 값을 추가하지 않는 경우 이점은 가장 큽니다. |
다음 단계
다른 Azure Well-Architected Framework 핵심 요소를 지원하는 클라우드 디자인 패턴을 검토합니다.