다음을 통해 공유


스케일링 구성

크기 조정 설정을 구성하여 Managed DevOps 풀 인스턴스의 성능 및 비용을 관리할 수 있습니다. 가격 책정 및 성능에 대한 자세한 내용은 비용 및 성능 관리를 참조하세요.

에이전트 상태

다음과 같이 풀을 구성할 수 있습니다.

  • 무상태: 모든 작업에 대해 새 에이전트를 제공합니다.
  • 상태 저장: 여러 작업 간에 에이전트 공유를 허용합니다.

풀에 대한 기본 설정은 상태가 없는 것으로, 설정 할 때마다 Fresh 에이전트를 사용하여 이를 달성할 수 있습니다. 경우에 따라 팀은 에이전트를 다시 사용하여 이전 파이프라인 실행 중에 만든 패키지 또는 파일을 다시 사용할 수 있습니다. 빌드 워크로드는 팀에서 상태를 유지하고 에이전트를 다시 사용하려는 일반적인 시나리오입니다. 관리형 DevOps 풀을 통해 상태 저장 풀을 달성하는 동시에 보안 모범 사례와 균형을 이룰 수 있습니다. 에이전트는 기본적으로 최대 7일 동안 재사용할 수 있지만 더 빨리 재활용되도록 구성할 수 있습니다.

참고 항목

보안 요원들은 공급망 공격에 방어책으로 상태 저장이 없는 풀을 사용할 것을 사용자에게 권장합니다. 매번 새 에이전트 상태 설정을 사용하십시오.

상태 비지정 풀

무상태 에이전트를 구성하면 각 작업에 대해 새 에이전트가 조달됩니다. 작업이 완료되면 에이전트가 삭제됩니다.

상태 비저장 에이전트의 수명 주기 및 Azure Pipelines에서의 사용 방법에 대해 더 자세히 알아보려면 에이전트의 수명 주기와 할당의 잠재적 지연 섹션을 참조하세요.

상태 비정상 에이전트를 보여 주는 스크린샷

매번 에이전트 상태를Fresh 에이전트로 설정하면 각 작업에 대해 새 에이전트가 조달됩니다. 작업이 완료되면 에이전트가 삭제됩니다.

상태 저장 풀

상태 저장 에이전트를 보여 주는 스크린샷

동일한 에이전트를 여러 빌드(리소스 템플릿의 "kind": "stateful" 설정 또는 Azure CLI의 { "stateful": {...} } 설정)에서 사용할 수 있는 경우 풀의 에이전트는 상태 저장입니다. 다음 설정을 사용하여 상태 저장 풀을 구성할 수 있습니다.

  • 대기 에이전트의 최대 사용 시간 (maxAgentLifetime)은 상태 저장 풀의 에이전트가 종료되고 삭제되기 전에 실행할 수 있는 최대 기간을 구성합니다. 대기 에이전트의 최대 TTL(Time to Live) 형식은 다음과 같습니다dd.hh:mm:ss. 대기 에이전트에 대한 최대 TTL(Time to Live)의 기본값은 최대 허용 기간인 7일(7.00:00:00)로 설정됩니다.

  • 유예 기간 (gracePeriodTimeSpan)은 상태 저장 풀의 에이전트가 모든 현재 및 대기 중인 작업이 완료된 후 종료되기 전에 새 작업을 기다리는 시간을 구성합니다. 유예 기간형식이며 dd.hh:mm:ss 기본값은 유예 기간이 아닙니다.

    중요합니다

    대기 에이전트 간격에 대한 최대 사용 시간이 만료될 때 작업이 실행 중인 경우 작업이 실행되는 데 2일 이상 걸리지 않는 한 작업이 완료될 때까지 에이전트가 종료되지 않습니다. 관리형 DevOps 풀의 개별 작업은 대기 에이전트에 대해 최대 사용 시간(Max Time to Live)으로 구성된 대기 에이전트에서 2일 이상 실행되는 경우에도 최대 2일 동안 실행할 수 있습니다. 워크플로를 완료하는 데 2일 이상 걸리는 단일 작업을 실행해야 하는 경우 지원에 문의하세요.

무상태 풀(pool)의 에이전트는 모든 작업 후에 종료되고 삭제됩니다. 상태 저장 풀의 에이전트는 다음 조건이 충족되는 경우 계속 실행됩니다.

  • 첫 번째 작업이 완료될 때 다른 작업이 큐에 대기 중인 경우 Managed DevOps 풀은 큐에 대기 중인 작업을 종료하는 대신 첫 번째 작업을 실행한 에이전트로 보냅니다.
  • 풀에 대해 구성된 유예 기간이 있는 경우 에이전트는 종료하기 전에 유예 기간에 지정된 기간 동안 새 작업을 기다립니다.
  • 대기 에이전트를 사용하도록 설정하고 에이전트 이미지가 활성 프로비저닝 기간의 조건을 충족하는 경우 에이전트는 계속 실행하고 작업을 기다립니다.

상태 저장 풀에서 실행 중인 에이전트는 이전 조건이 맞더라도 대기 에이전트에 대해 Max Time to Live로 지정된 기간 동안 지속적으로 실행되면 종료되고 삭제됩니다. 예를 들어 대기 에이전트에 대한 최대 사용 시간이 3일 동안 구성되고 대기 에이전트 모드수동, 주 단위 구성표(24/7 사용 가능한 컴퓨터)로 설정된 경우 에이전트는 3일 연속 가동 시간 후에 다시 시작됩니다.

중요합니다

유예 기간이 없고, 대기 에이전트에 대한 활성 프로비전 기간이 없으며, 에이전트와 일치하는 대기 작업이 없는 경우, 상태 저장 풀의 에이전트는 작업이 끝난 후에도 종료되고 삭제될 수 있습니다. 에이전트가 삭제되면 모든 상태가 손실됩니다.

유예 기간은 일관된 부하를 갖춘 파이프라인에서 상태 저장 풀을 가장 비용 효율적으로 실행하는 방법을 제공합니다. 유예 기간은 에이전트를 온라인 상태로 유지하고 작업을 수락할 준비가 되도록 대기 에이전트 모드를 사용할 필요가 없습니다.

대기 에이전트 모드

풀을 만들 때 대기 에이전트 모드 는 기본적으로 꺼져 있습니다. 대기 에이전트 모드가 꺼져 있으면 파이프라인에 즉시 할당할 대기 에이전트가 없습니다. 파이프라인은 에이전트가 필요 시 프로비전될 때까지 몇 초에서 15분까지 기다려야 할 수도 있습니다. 성능을 향상시키려면 대기 에이전트 모드를 사용하도록 설정하고 워크로드에 대한 용량을 제공하는 대기 에이전트 일정을 구성합니다.

대기 에이전트 일정을 구성할 때 Managed DevOps 풀은 프로비전된 에이전트 수를 현재 프로비전 체계에서 지정한 대기 에이전트 수와 주기적으로 비교합니다. 대기 에이전트 수를 유지하기 위해 필요에 따라 새 에이전트를 시작합니다. 에이전트 창을 사용하여 풀의 현재 상태 및 에이전트 수를 볼 수 있습니다 .

중요합니다

구성표의 프로비전 수는 풀 설정에서 구성하는 최대 에이전트 값보다 클 수 없습니다.

다음 설정을 사용하여 대기 에이전트 모드를 구성할 수 있습니다.

  • Off: 대기 에이전트 모드가 꺼져 있고 작업이 큐에 대기되면 에이전트가 요청 시 프로비전됩니다.
  • 수동: 수동 대기 일정을 구성합니다.
  • 자동: 에이전트 사용 기록에 따라 자동 대기 일정을 사용합니다. 비용 및 성능을 위해 구성할 수 있습니다.

대기 에이전트 모드에 대한 선택 항목을 보여 주는 스크린샷

설명서

수동 모드는 CI/CD(지속적인 통합 및 지속적인 업데이트) 파이프라인 사용 패턴을 알고 있는 팀에 가장 적합합니다. 수동 옵션을 사용하는 경우 사전 프로비저닝 체계를 정의해야 합니다. 풀에서 사용할 가능성이 가장 큰 에이전트와 사용할 가능성이 있는 에이전트 수에 대한 이해를 기반으로 체계를 정의합니다. 예상 수요를 충족하는 에이전트의 프로비전 횟수를 지정합니다.

사용자 고유의 프로비저닝 일정을 만들거나 미리 정의된 일정 중 하나를 선택할 수 있습니다. 일정을 지정하는 데 사용할 표준 시간대를 구성할 수 있습니다. 사전 프로비저닝 TimeZone의 기본값은 UTC(협정 세계시)입니다.

다음 세 가지 방법 중 하나로 수동 대기 에이전트를 구성할 수 있습니다.

각 사전 프로비저닝 빠른 시작에는 해당 빠른 시작과 관련된 설정 외에도 다음과 같은 일반적인 설정이 있습니다.

  • 사전 프로비저닝 시간대: 사전 프로비저닝 계획에서 각 시간대에 대한 시간대 설정을 구성할 수 있습니다. 사전 프로비저닝 TimeZone의 기본값은 UTC(협정 세계시)입니다.
  • 대기 에이전트 백분율: 각 이미지에 대해 원하는 대기 에이전트의 비율을 구성합니다. 모든 이미지가 동일하게 프로비전되도록 입력 * 하거나 0에서 100까지의 정수를 지정하여 백분율을 나타낼 수 있습니다. 백분율을 지정하는 경우 모든 이미지의 합계는 100과 같아야 합니다. 단일 이미지가 있는 경우 지정하거나 100을 지정 * 합니다. ARM 템플릿(Azure Resource Manager 템플릿)을 사용하는 경우 섹션에서 대기 에이전트 백분율 설정을 images 구성할 수 있습니다. 자세한 내용은 이미지 구성을 참조 하세요.

수동 대기 모드를 보여 주는 스크린샷

처음부터 시작

처음부터 시작하도록 선택한 경우 프로비전 기간 목록을 프로비전 체계로 추가할 수 있습니다. 각 프로비전 기간은 시작 날짜, 종료일, 표준 시간대, 시작 시간, 종료 시간 및 개수로 구성됩니다. 프로비전 기간은 서로 겹칠 수 없습니다.

속성 설명
여러 날 이 옵션을 선택하면 프로비전 체계에 대해 시작일종료일 을 모두 구성할 수 있습니다.
다음 기간까지 이 옵션을 선택하면 프로비전 기간이 시작 시간 값에서 다음 프로비전 기간이 시작될 때까지 실행됩니다.
시작일 프로비전 기간이 시작되는 날입니다.
종료일 프로비저닝 기간이 끝나는 날입니다. Multi-Day를 선택하는 경우 필수입니다.
시작 시간 프로비저닝 기간이 시작되는 시간입니다.
종료 시간 프로비저닝 기간이 끝나는 시간입니다. 다음 기간까지 선택하지 않는 한 필수입니다.
개수 프로비전할 대기 에이전트 수입니다. 이 숫자는 0보다 커야 하며 풀 설정최대 에이전트 값보다 크지 않아야 합니다.

프로비저닝 기간을 만든 후에는 사전 프로비전 구성표 목록에서 기간을 삭제하거나 편집할 수 있습니다.

다음 예제에서는 월요일 오전 12:00부터 오전 5:00 EST까지 하나의 에이전트를 프로비전하여 수동 구성표를 구성하는 방법을 보여 줍니다.

수동 크기 조정 체계를 보여 주는 스크린샷.

평일 체계

평일 구성표를 선택하면 지정된 대기 에이전트 수가 평일마다 대기 중인 시작 시간과 종료 시간을 지정할 수 있습니다.

속성 설명
시작 시간 프로비저닝 기간이 시작되는 시간입니다.
종료 시간 프로비저닝 기간이 끝나는 시간입니다.
프로비전 횟수 프로비전할 대기 에이전트 수입니다. 이 숫자는 0보다 커야 하며 풀 설정에 구성된 최대 에이전트 값보다 크지 않아야 합니다.

다음 예제에서는 동부 시간(UTC-5)을 사용하여 근무 시간 동안 4개의 에이전트를 사용하고 근무 시간 및 주말에는 에이전트를 사용하지 않습니다.

평일 구성표를 보여 주는 스크린샷.

주간 계획

일주일 내내 구성표를 선택하는 경우 항상 사용 가능한 에이전트 수를 지정할 수 있습니다.

일주일 내내 구성표를 보여 주는 스크린샷.

자동

사용 패턴을 모르고 과거 데이터를 기반으로 자동 예측을 사용하려는 경우 자동을 선택합니다. 다음 5가지 옵션과 함께 슬라이더를 사용하여 비용과 에이전트 성능 간에 균형을 맞출 수 있습니다. 관리형 DevOps 풀은 지난 3주간의 기록 데이터(사용 가능한 경우)에 대한 쿼리를 실행합니다. 풀의 대기 중인 세션을 5분 기간으로 구성하고 지정된 백분위수(급증 방지)를 각 시간에 할당합니다.

  • 가장 비용 효율적인 (MostCostEffective): 10번째 백분위수입니다.
  • 비용 효율적 (MoreCostEffective): 25번째 백분위수.
  • 균형 (기본값):Balanced 50번째 백분위수입니다.
  • 성능 향상 (MorePerformance): 75번째 백분위수입니다.
  • 최상의 성능 (BestPerformance): 90번째 백분위수입니다.

자동 크기 조정 설정을 보여 주는 스크린샷

에이전트의 수명 주기 및 할당 지연 가능성

상태 비지정 체계를 사용하여 대기 에이전트를 사용하도록 설정하는 경우 준비 상태에서 할당된 상태로 전환하고 파이프라인을 실행하기 전에 Azure Pipelines 에이전트를 설치하고 구성해야 합니다.

관리형 DevOps 풀이 새 에이전트를 프로비전하는 경우 준비 상태로 전환하기 전에 대기 에이전트에 이미 다운로드되도록 최신 Azure Pipelines 에이전트를 다운로드하려고 시도합니다. 시작, 연결 및 시작 작업은 풀의 SKU 속도, 사용된 이미지 및 네트워킹 부하에 따라 10초에서 1분까지 걸릴 수 있습니다. 또한 파이프라인 작업에서 특정 설정을 지정하면 다시 다운로드되고 다른 에이전트가 실행될 수 있습니다. 또한 에이전트의 회귀 및 롤백으로 인해 에이전트가 다시 다운로드될 수 있습니다.

관리형 DevOps 풀은 "임시" 방식으로 이 에이전트를 사용하므로 준비된 에이전트는 항상 잠재적인 지연을 갖습니다. 즉, 작업별로 작업 에이전트를 한 번 시작하고 실행합니다. Azure DevOps에서 작업을 수락하는 준비된 에이전트의 지연이 보일 경우, 다음 질문을 고려하세요.

  • 준비된 에이전트가 있나요? 가장 일반적인 문제는 에이전트를 미리 프로비전해야 하는 경우에 대한 오해입니다. 다음 조건이 충족되면 컴퓨터를 처음부터 다시 시작해야 합니다.
    • 대기 중인 작업 수가 풀의 대기 에이전트 수보다 큽니다.
    • 작업은 사전 프로비저닝 일정을 벗어나 큐에 대기합니다.
    • 대기 에이전트 수가 비어 있도록 설정됩니다.
  • 여러 이미지가 있는 대기 에이전트를 제대로 구성하고 있나요? ImageOverride 수요를 사용하여 파이프라인에서 사용할 이미지를 지정하지 않는 경우 작업은 첫 번째 이미지를 대상으로 합니다. 크기 조정 설정에 따라 일부 에이전트는 다른 이미지에 할당되므로 예상대로 사용할 수 있는 에이전트가 많지 않을 수 있습니다.
  • 파이프라인에서 ImageVersionOverride 요구 사항을 사용하고 있나요? 요청을 사용하여 ImageVersionOverride풀 설정에 구성된 것과 다른 이미지 버전을 지정하는 경우 각 에이전트는 지정된 이미지 버전을 사용하여 요청 시 시작됩니다. 대기 에이전트는 풀의 구성에 지정된 이미지 버전을 사용하여 프로비전됩니다. ImageVersionOverride를 사용할 경우 대기 중인 에이전트는 그 버전과 일치하지 않아 새로운 에이전트가 시작됩니다.
  • 프록시, 가상 네트워크 또는 방화벽 설정으로 인해 풀 속도가 느려지나요? 네트워크 설정의 잠재적인 속도 저하로 인해 에이전트가 에이전트를 시작하고 Azure DevOps에 연결하는 데 시간이 오래 걸립니다.
  • 에이전트 버전을 재정의하고 있나요? 기본적으로 관리되는 DevOps 풀은 최신 Azure DevOps 작업 에이전트 버전에서 실행됩니다. 파이프라인 YAML(예: Agent.Version 수요) 및 Azure DevOps 조직 설정의 설정은 파이프라인이 이전 버전의 작업 에이전트를 사용하도록 강제할 수 있으며, 이를 위해서는 머신이 할당된 후 다시 다운로드가 필요합니다.