Google Cloud Well-Architected Framework의 성능 최적화 요소 원칙은Google Cloud에서 워크로드의 리소스를 계획하는 데 도움이 되는 권장사항을 제공합니다. 클라우드 배포 또는 마이그레이션을 위한 애플리케이션을 설계하고 개발하기 전에 세부 요구사항을 정의하는 것이 중요함을 강조합니다.
원칙 개요
비즈니스 요구사항을 충족하려면 설계 및 개발 전에 애플리케이션의 성능 요구사항을 정의하는 것이 중요합니다. 이러한 요구사항을 전체 애플리케이션과 애플리케이션 스택의 각 레이어에 대해 최대한 세부적으로 정의합니다. 예를 들어 스토리지 레이어에서는 애플리케이션에 필요한 처리량과 초당 I/O 작업 수 (IOPS)를 고려해야 합니다.
처음부터 성능과 확장성을 고려하여 애플리케이션 설계를 계획합니다. 사용자 수, 데이터 볼륨, 시간 경과에 따른 잠재적 성장과 같은 요소를 고려하세요.
각 워크로드의 성능 요구사항은 워크로드 유형에 따라 다릅니다. 각 워크로드에는 고유한 성능 특성 집합이 있는 구성요소 시스템과 서비스가 혼합되어 있을 수 있습니다. 예를 들어 대규모 데이터 세트의 주기적인 일괄 처리를 담당하는 시스템은 대화형 가상 데스크톱 솔루션과 다른 성능 요구사항을 갖습니다.
최적화 전략은 각 워크로드의 구체적인 요구사항을 충족해야 합니다.
각 워크로드의 성능 목표에 부합하는 서비스와 기능을 선택합니다. 성능 최적화에는 모든 경우에 적합한 솔루션이 없습니다. 각 워크로드를 최적화하면 전체 시스템이 최적의 성능과 효율성을 달성할 수 있습니다.
성능 요구사항에 영향을 줄 수 있는 다음 워크로드 특성을 고려하세요.
배포 원형: 애플리케이션에 대해 선택한 배포 원형은 제품 및 기능 선택에 영향을 줄 수 있으며, 이는 애플리케이션에서 기대할 수 있는 성능을 결정합니다.
리소스 배치: 애플리케이션 리소스의 Google Cloud
리전을 선택할 때는 최종 사용자의 지연 시간을 최소화하고, 데이터 현지화 규정을 준수하며, 필요한 Google Cloud 제품 및 서비스의 가용성을 보장하는 것이 좋습니다.
네트워크 연결: 데이터 액세스 및 콘텐츠 전송을 최적화하는 네트워킹 서비스를 선택합니다. Google Cloud의 글로벌 네트워크, 고속 백본, 상호 연결 위치, 캐싱 서비스를 활용하세요.
애플리케이션 호스팅 옵션: 호스팅 플랫폼을 선택할 때는 각 옵션의 성능상의 장단점을 평가해야 합니다.
예를 들어 베어 메탈, 가상 머신, 컨테이너, 서버리스 플랫폼을 고려해 보세요.
리소스 구성: 머신 유형, IOPS, 처리량은 성능에 큰 영향을 미칠 수 있습니다. 또한 설계 단계 초기에 적절한 보안 기능과 리소스에 미치는 영향을 고려해야 합니다. 보안 기능을 계획할 때는 예기치 않은 영향을 방지하기 위해 필요한 성능 절충을 수용할 준비를 해야 합니다.
권장사항
최적의 리소스 할당을 보장하려면 다음 섹션의 권장사항을 고려하세요.
할당량 구성 및 관리
애플리케이션이 메모리, 저장소, 처리 능력과 같은 필요한 리소스만 사용하는지 확인합니다. 과도한 할당은 불필요한 비용을 초래할 수 있고, 부족한 할당은 성능 저하를 초래할 수 있습니다.
탄력적 확장을 수용하고 충분한 리소스를 사용할 수 있도록 할당량의 용량을 정기적으로 모니터링하세요. 또한 할당량 사용량을 추적하여 잠재적인 확장 제약이나 과도한 할당 문제를 파악한 다음 리소스 할당에 대해 정보에 기반한 결정을 내립니다.
교육 및 인식 제고
사용자에게 성능 요구사항을 알리고 효과적인 성능 관리 기법에 관한 교육 리소스를 제공하세요.
진척 상황을 평가하고 개선이 필요한 영역을 파악하려면 목표 실적과 실제 실적을 정기적으로 문서화하세요. 애플리케이션을 부하 테스트하여 잠재적인 중단점을 찾고 애플리케이션을 확장하는 방법을 파악합니다.
성능 측정항목 모니터링
Cloud Monitoring을 사용하여 성능 측정항목의 추세를 분석하고, 실험의 효과를 분석하고, 중요한 측정항목에 대한 알림을 정의하고, 소급 분석을 수행할 수 있습니다.
Active Assist는 리소스 활용도를 최적화하는 데 도움이 되는 통계와 권장사항을 제공할 수 있는 도구 집합입니다. 이러한 추천은 리소스 할당을 조정하고 실적을 개선하는 데 도움이 됩니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-12-06(UTC)"],[[["\u003cp\u003eDefine performance requirements as granularly as possible for the entire application and each layer of the application stack before starting design and development.\u003c/p\u003e\n"],["\u003cp\u003ePlan application designs from the beginning with performance and scalability in mind, considering factors such as the number of users, data volume, and potential growth.\u003c/p\u003e\n"],["\u003cp\u003eSelect services and features that align with the performance goals of each workload, as there is no one-size-fits-all solution for performance optimization.\u003c/p\u003e\n"],["\u003cp\u003eConsider workload characteristics such as deployment archetype, resource placement, network connectivity, application hosting options, storage strategy, and resource configurations, which can influence performance requirements.\u003c/p\u003e\n"],["\u003cp\u003eRegularly monitor the capacity and usage of quotas to ensure adequate resource availability and identify potential scaling constraints or over-allocation issues.\u003c/p\u003e\n"]]],[],null,["# Plan resource allocation\n\nThis principle in the performance optimization pillar of the\n[Google Cloud Well-Architected Framework](/architecture/framework)\nprovides recommendations to help you plan resources for your workloads in\nGoogle Cloud. It emphasizes the importance of defining granular\nrequirements before you design and develop applications for cloud deployment or\nmigration.\n\nPrinciple overview\n------------------\n\nTo meet your business requirements, it's important that you define the performance\nrequirements for your applications, before design and development. Define these\nrequirements as granularly as possible for the application as a whole and for\neach layer of the application stack. For example, in the storage layer, you\nmust consider the throughput and I/O operations per second (IOPS) that the\napplications need.\n\nFrom the beginning, plan application designs with performance and scalability in\nmind. Consider factors such as the number of users, data volume, and potential\ngrowth over time.\n\nPerformance requirements for each workload vary and depend on the type of\nworkload. Each workload can contain a mix of component systems and services that\nhave unique sets of performance characteristics. For example, a system that's\nresponsible for periodic batch processing of large datasets has different\nperformance demands than an interactive virtual desktop solution.\nYour optimization strategies must address the specific needs of each workload.\n\nSelect services and features that align with the performance goals of each\nworkload. For performance optimization, there's no one-size-fits-all solution. When you\noptimize each workload, the entire system can achieve optimal performance and\nefficiency.\n\nConsider the following workload characteristics that can influence your\nperformance requirements:\n\n- **Deployment archetype** : The [deployment archetype](/architecture/deployment-archetypes) that you select for an application can influence your choice of products and features, which then determine the performance that you can expect from your application.\n- **Resource placement** : When you select a Google Cloud [region](/docs/geography-and-regions) for your application resources, we recommend that you prioritize low latency for end users, adhere to data-locality regulations, and ensure the availability of required Google Cloud products and services.\n- **Network connectivity**: Choose networking services that optimize data access and content delivery. Take advantage of Google Cloud's global network, high-speed backbones, interconnect locations, and caching services.\n- **Application hosting options**: When you select a hosting platform, you must evaluate the performance advantages and disadvantages of each option. For example, consider bare metal, virtual machines, containers, and serverless platforms.\n- **Storage strategy** : Choose an [optimal storage strategy](/architecture/storage-advisor) that's based on your performance requirements.\n- **Resource configurations**: The machine type, IOPS, and throughput can have a significant impact on performance. Additionally, early in the design phase, you must consider appropriate security capabilities and their impact on resources. When you plan security features, be prepared to accommodate the necessary performance trade-offs to avoid any unforeseen effects.\n\nRecommendations\n---------------\n\nTo ensure optimal resource allocation, consider the recommendations in the\nfollowing sections.\n\n### Configure and manage quotas\n\nEnsure that your application uses only the necessary resources, such as memory,\nstorage, and processing power. Over-allocation can lead to unnecessary expenses,\nwhile under-allocation might result in performance degradation.\n\nTo accommodate elastic scaling and to ensure that adequate resources are\navailable, regularly monitor the capacity of your quotas. Additionally, track\nquota usage to identify potential scaling constraints or over-allocation issues,\nand then make informed decisions about resource allocation.\n\n### Educate and promote awareness\n\nInform your users about the performance requirements and provide\n[educational resources](https://www.cloudskillsboost.google/course_templates/734)\nabout effective performance management techniques.\n\nTo evaluate progress and to identify areas for improvement, regularly document the\ntarget performance and the actual performance. Load test your application to find\npotential breakpoints and to understand how you can scale the application.\n\n### Monitor performance metrics\n\nUse\n[Cloud Monitoring](/monitoring/docs/monitoring-overview)\nto analyze trends in performance metrics, to analyze the effects of experiments,\nto define alerts for critical metrics, and to perform retrospective analyses.\n\n[Active Assist](/recommender/docs/whatis-activeassist)\nis a set of tools that can provide insights and recommendations to help optimize\nresource utilization. These recommendations can help you to adjust resource\nallocation and improve performance."]]