CloudPass LogoCloud Pass
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
Certifications
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
  1. Cloud Pass
  2. Microsoft
  3. Microsoft AZ-204
Microsoft AZ-204

Microsoft

Microsoft AZ-204

467+ 기출 문제 (AI 검증 답안 포함)

Developing Solutions for Microsoft Azure

Free questions & answers실제 시험 기출 문제
AI-powered explanations상세 해설
Real exam-style questions실제 시험과 가장 유사
467+ 문제 보기

AI 기반

3중 AI 검증 답안 및 해설

모든 Microsoft AZ-204 답안은 3개의 최고 AI 모델로 교차 검증하여 최고의 정확도를 보장합니다. 선택지별 상세 해설과 심층 문제 분석을 제공합니다.

GPT Pro
Claude Opus
Gemini Pro
선택지별 상세 해설
심층 문제 분석
3개 모델 합의 정확도

시험 도메인

Develop Azure Compute Solutions출제율 29%
Develop for Azure Storage출제율 19%
Implement Azure Security출제율 19%
Monitor, Troubleshoot, and Optimize Azure Solutions출제율 9%
Connect to and Consume Azure Services and Third-Party Services출제율 24%

실전 문제

1
문제 1

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수도 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 모바일 애플리케이션으로부터 메시지를 수신할 때 queue 데이터를 처리하는 Azure Service 애플리케이션을 개발하고 있습니다. 메시지는 서비스로 일관되게 전송되지 않을 수 있습니다. 다음 요구 사항이 있습니다: ✑ Queue 크기는 80 gigabytes (GB)를 초과하여 증가하면 안 됩니다. ✑ 메시지에 first-in-first-out (FIFO) 순서를 사용해야 합니다. ✑ Azure 비용을 최소화해야 합니다. 메시징 솔루션을 구현해야 합니다. 솔루션: 모바일 애플리케이션에서 .Net API를 사용하여 Azure Service Bus Queue에 메시지를 추가합니다. Azure Service Bus Queue에서 트리거되는 Azure Windows VM을 만듭니다. 이 솔루션이 목표를 충족합니까?

VM 기반 consumer에 의존하는 아키텍처이므로 Yes라고 답하는 것은 올바르지 않습니다. 이 consumer는 일반적으로 메시지를 수신하기 위해 계속 실행 상태를 유지해야 하거나(또는 외부에서 orchestration되어야 하므로), idle 기간 동안에도 지속적인 비용이 발생합니다. Service Bus가 FIFO를 지원할 수는 있지만, 이 솔루션은 strict FIFO 순서 지정에 필요한 sessions 구성을 언급하지 않습니다. 마지막으로, 이 솔루션에는 80-GB queue 크기 제약을 강제하거나 관리하는 내용(TTL, consumer scale-out, 또는 운영 제어 등)이 없으므로, 제시된 모든 목표를 충족한다고 볼 수 없습니다.

이 솔루션은 목표를 충족하지 않습니다. Azure Windows VM은 Service Bus queue에 의해 비용 효율적이고 event-driven한 방식으로 기본적으로 “트리거”되지 않기 때문입니다. 일반적으로 VM에서 지속적으로 수신 대기하는 프로세스를 실행해야 하므로, 메시지가 일관되게 전송되지 않을 때도 compute 요금이 발생합니다. 이는 간헐적 트래픽에 대해 Azure 비용을 최소화해야 한다는 요구 사항과 충돌합니다. 또한 이 제안은 FIFO를 위한 Service Bus Sessions 활성화나 queue가 80 GB를 초과하지 않도록 보장하는 명시적 제어를 지정하지 않으므로, 핵심 요구 사항이 충족된다고 입증할 수 없습니다.

문제 분석

핵심 개념: 이 문제는 queue 용량, FIFO 순서 지정, 그리고 불규칙한 모바일 메시지 트래픽에 대한 비용 효율성 제약을 충족하는 Azure 메시징 + 처리 아키텍처를 선택하는지를 평가합니다. 정답인 이유: Azure Service Bus Queue를 사용하면 sessions를 사용할 때 FIFO 순서 지정을 충족할 수 있으며, 대량의 메시지 backlog도 처리할 수 있습니다. 그러나 제안된 컴퓨팅 선택인 Azure Windows VM이 Service Bus queue에서 “트리거”된다는 방식은 기본적인 event-driven 패턴이 아니며, 일반적으로 VM에서 지속적으로 실행되는 listener/service(또는 custom polling/receiver logic)가 필요합니다. 이는 메시지가 도착하지 않을 때도 VM 비용을 지불해야 함을 의미하므로, 일관되지 않은 트래픽에 대해 “Azure 비용 최소화” 요구 사항을 위반합니다. 또한 이 솔루션은 80-GB 최대 queue 크기를 강제하기 위한 메커니즘(예: monitoring/auto-scaling/TTL/backpressure)을 지정하지 않으므로, queue 크기 제약도 명확하게 충족하지 않습니다. 주요 기능 / 구성: - Azure Service Bus Queue FIFO: Service Bus Sessions (SessionId) 사용 및 queue에서 sessions 활성화로 달성됩니다. - 비용 최적화 처리: Azure Functions (Service Bus trigger) 또는 WebJobs/Container Apps jobs는 idle 상태일 때 zero/near-zero까지 scale할 수 있지만, VM은 일반적으로 그렇지 않습니다. - Queue 증가 제어: message TTL, dead-lettering, backpressure, 그리고 운영 monitoring/alerts; Service Bus에도 namespace/queue 제한이 있지만, 80 GB와 같은 목표 이하로 유지되도록 설계해야 합니다. 일반적인 오해: - VM이 serverless compute처럼 “트리거”될 수 있다고 가정하는 것; 실제로 VM은 receiver를 지속적으로 실행하거나 외부에서 orchestration되어야 하며, 이는 비용과 복잡성을 증가시킵니다. - Service Bus queue가 sessions 없이도 자동으로 FIFO라고 가정하는 것; standard queue는 session별 strict FIFO를 위해 sessions가 필요합니다. - 명시적인 설계/제어 없이 임의의 임계값(80 GB)에서 queue 크기 제한이 자동으로 적용된다고 가정하는 것. 시험 팁: - bursty workload에서 비용을 최소화하려면 Service Bus trigger가 있는 Azure Functions를 선호하세요. - Service Bus에서 strict FIFO를 위해서는 “sessions”(SessionId)와 queue에서 sessions 활성화를 확인하세요. - 요구 사항에 최대 backlog/size가 명시되어 있다면 TTL, consumer scaling, monitoring/alerts를 고려하세요. 자동으로 처리된다고 가정하지 마세요. - VM은 event-driven, 간헐적 메시지 처리에 대해 가장 저렴한 옵션인 경우가 드뭅니다.

2
문제 2

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 모바일 애플리케이션으로부터 메시지를 수신할 때 queue 데이터를 처리하는 Azure Service 애플리케이션을 개발하고 있습니다. 메시지는 서비스로 일관되게 전송되지 않을 수 있습니다. 다음 요구 사항이 있습니다: ✑ Queue 크기는 80 gigabytes (GB)를 초과하여 증가하면 안 됩니다. ✑ 메시지에 대해 first-in-first-out (FIFO) 순서를 사용해야 합니다. ✑ Azure 비용을 최소화해야 합니다. 메시징 솔루션을 구현해야 합니다. 솔루션: 모바일 애플리케이션에서 .Net API를 사용하여 Azure Storage Queue에 메시지를 추가합니다. Azure Storage Queue 이벤트에 의해 트리거되는 Azure VM을 만듭니다. 이 솔루션이 목표를 충족합니까?

'예'라고 답하는 것은 잘못되었습니다. 제안된 아키텍처는 핵심 요구 사항을 충족하지 못합니다. Storage Queues는 FIFO 순서를 안정적으로 보장할 수 없으므로 메시지 처리 순서가 유지되지 않을 수 있습니다. VM은 polling worker를 구현하거나 event-driven compute 서비스를 추가하지 않는 한 Storage Queue 이벤트에 의해 직접 트리거되지 않으며, 이 솔루션은 queue가 80 GB를 초과하여 증가하는 것을 방지하기 위한 제어(throttling, TTL 또는 quotas 등)도 구현하지 않습니다.

이 솔루션은 Azure Storage Queues가 엄격한 first-in-first-out 순서 보장을 제공하지 않기 때문에 FIFO 요구 사항을 충족하지 못합니다. 특히 재시도 및 visibility timeout 시나리오에서 그렇습니다. 또한 Azure VM이 Storage Queue 이벤트에 의해 “트리거”된다고 제안하지만, VMs는 Storage Queue 메시지에 대해 기본적으로 event-driven이 아니며 일반적으로 지속적인 polling 또는 추가 서비스가 필요하므로 비용과 복잡성이 증가할 수 있습니다. 마지막으로, queue가 80 GB를 절대 초과하지 않도록 보장하는 메커니즘이 설계에 포함되어 있지 않으므로, 메시지 처리가 일관되지 않은 기간 동안 backlog가 명시된 제한을 초과하여 증가할 수 있습니다.

문제 분석

핵심 개념: 이 문제는 FIFO 순서, 제한된 queue 증가, 그리고 비용 최소화를 충족하기 위해 적절한 Azure 메시징 서비스와 처리 모델을 선택하는지를 테스트합니다. 특히 메시지 도착이 급증하거나 불규칙한 경우를 다룹니다. 정답인 이유: 제안된 솔루션은 Azure Storage Queues와 Storage Queue 이벤트에 의해 “트리거되는” VM을 사용합니다. Storage Queues는 엄격한 FIFO 보장을 제공하지 않으므로(순서는 best-effort이며 재시도/visibility timeout의 영향을 받을 수 있음) FIFO 요구 사항을 충족하지 못합니다. 또한 Azure VMs는 Storage Queue 이벤트에 의해 기본적으로 event-triggered되지 않습니다. 일반적으로 polling worker(또는 Functions/WebJobs 같은 중간 계층)가 필요하며, 이는 운영 복잡성을 높이고 비용을 증가시킬 수 있습니다. 마지막으로, 이 설계에는 80-GB 최대 queue 크기를 강제하는 요소가 없습니다. Storage Queues는 매우 크게 증가할 수 있으며, 명시적인 backpressure/TTL/dead-lettering 제어가 없으면 queue가 제한을 초과할 수 있습니다. 주요 기능 / 구성: - Azure Storage Queues: best-effort 순서; 엄격한 FIFO semantics 없음; 소비자는 일반적으로 poll함. - Event-driven 처리: Azure Functions/WebJobs는 Storage Queue 메시지에 대해 트리거될 수 있지만, VMs는 본질적으로 event-triggered되지 않음. - 증가 제어: 명시적인 메커니즘이 필요함(message TTL, producer throttling, consumer scaling, 또는 quotas/limits 및 dead-lettering을 제공하는 서비스 사용). - 엄격한 FIFO의 경우: sessions(SessionId)가 있는 Azure Service Bus queues는 session 내에서 순서 있는 처리를 제공함. 일반적인 오해: - Storage Queues가 FIFO 순서를 보장한다고 가정하는 것; 모든 조건에서 엄격한 FIFO를 보장하지 않습니다. - polling/triggering 서비스 없이 VM이 Storage Queue 이벤트에 의해 직접 “트리거”될 수 있다고 믿는 것. - queue 크기 제한이 자동으로 강제된다고 가정하는 것; 대부분의 서비스는 무제한 증가를 방지하기 위한 명시적인 설계가 필요합니다. 시험 팁: - FIFO 요구 사항은 일반적으로 Storage Queues가 아니라 sessions가 있는 Azure Service Bus(또는 다른 ordered messaging 패턴)를 가리킵니다. - “queue 이벤트에 의해 트리거됨”이 보이면 VMs보다는 Azure Functions/WebJobs를 떠올리세요. - 솔루션이 최대 backlog/크기 같은 제약을 어떻게 강제하는지 항상 확인하세요(TTL, quotas, scaling, throttling).

3
문제 3
(2개 선택)

Azure messaging services를 사용할 솔루션을 개발하고 있습니다. 솔루션이 publish-subscribe 모델을 사용하고 지속적인 polling의 필요성을 제거하도록 해야 합니다. 목표를 달성하는 두 가지 가능한 방법은 무엇입니까? 각 정답은 완전한 솔루션을 제시합니다. 참고: 각 정답 선택은 1점의 가치가 있습니다.

Service Bus는 Topics 및 Subscriptions를 통해 publish-subscribe를 지원합니다. Topic으로 전송된 message는 여러 Subscriptions로 복사될 수 있어 fan-out이 가능합니다. dead-letter queues, duplicate detection, ordered processing을 위한 sessions, transactions와 같은 durable enterprise messaging 기능을 제공합니다. Azure Functions/Logic Apps triggers를 사용하면 consumer는 지속적인 polling logic을 구현하지 않고도 message를 처리할 수 있습니다.

Event Hubs는 고처리량 event streaming(telemetry ingestion)에 최적화되어 있으며 partitions와 consumer groups를 사용합니다. 여러 consumer groups가 동일한 stream을 읽을 수는 있지만, business messaging에 사용되는 전형적인 pub-sub broker 패턴은 아니며, 소비는 일반적으로 partition에서 pull 기반으로 읽는 방식입니다. push 기반 pub-sub notifications보다는 streaming pipeline(Stream Analytics, Spark)에 가장 적합합니다.

Event Grid는 event-driven architecture를 위해 설계된 완전관리형 event routing service입니다. publisher가 event를 게시하면 Event Grid가 이를 subscriber(webhooks, Azure Functions, Logic Apps 등)에게 retries 및 선택적 dead-lettering과 함께 push하는 publish-subscribe 모델을 사용합니다. 이 push 전달 모델은 consumer가 변경 사항을 polling할 필요를 제거하며 reactive integration에 이상적입니다.

Queue(Azure Storage Queues 등)는 competing consumers를 사용하는 point-to-point messaging을 구현합니다. 각 message는 일반적으로 단일 consumer에 의해 처리됩니다. 기본적인 publish-subscribe fan-out 모델을 제공하지 않습니다. Queue는 triggers와 함께 사용할 때 강한 결합을 줄이고 polling을 줄일 수는 있지만, 여러 subscriber가 동일한 message를 수신하는 pub-sub 요구 사항은 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure messaging 패턴, 특히 publish-subscribe (pub-sub) 모델과 지속적인 polling을 피하는 event-driven 전달을 테스트합니다. Azure에서 pub-sub는 publisher가 broker에 message/event를 보내고, 여러 독립적인 subscriber가 subscription/handler를 통해 이를 수신하는 것을 의미합니다. 정답인 이유: Azure Service Bus (A)는 Topics 및 Subscriptions를 통해 pub-sub를 지원합니다. publisher는 Topic에 message를 보내고, 각 Subscription은 자체 복사본을 수신하여 여러 consumer로 fan-out할 수 있습니다. consumer는 application code에서 polling하는 대신 push와 유사한 메커니즘(예: Service Bus-triggered Azure Functions)을 사용하여 message를 받을 수 있습니다. Azure Event Grid (C)는 reactive architecture를 위해 구축된 기본 event routing service입니다. 이 서비스는 subscriber(webhooks, Azure Functions, Logic Apps, Service Bus 등)에게 push 전달 및 retry를 통해 event를 전달하므로, consumer가 변경 사항을 polling할 필요가 없습니다. 주요 기능 / 모범 사례: - Service Bus Topics/Subscriptions: durable messaging, at-least-once delivery, dead-lettering, sessions(ordering), duplicate detection, subscription에 대한 filters/actions, 그리고 transactions를 제공합니다. enterprise messaging 보장과 service 간 decoupling이 필요할 때 사용합니다. - Event Grid: push 기반 event distribution, 많은 Azure source(Storage, Resource Groups 등)와의 기본 통합, filtering, 고급 routing, 그리고 Storage로의 dead-lettering을 포함한 managed retries를 제공합니다. event notification 및 reactive workflow에 사용합니다. Azure Well-Architected Framework 관점에서 둘 다 producer/consumer를 decouple하고 불필요한 polling을 피함으로써 Reliability와 Performance Efficiency를 향상시킵니다. 일반적인 오해: - Event Hubs (B)는 종종 pub-sub로 오해됩니다. 이는 주로 고처리량 telemetry/stream ingestion용이며 partitioned consumer groups를 사용합니다. 전통적인 pub-sub messaging보다는 “streaming”에 더 가깝고, 일반적으로 push 전달보다는 consumer가 partition에서 읽어야 하므로(종종 polling/reading으로 인식됨) 적합하지 않습니다. - Queue (D) (예: Storage Queue)는 pub-sub가 아니라 point-to-point(competing consumers)입니다. 하나의 message는 여러 subscriber에게 fan-out되는 것이 아니라 하나의 consumer에 의해 처리됩니다. 시험 팁: - 문제에서 “publish-subscribe”와 “multiple subscribers”를 언급하면 Service Bus Topics 또는 Event Grid를 떠올리십시오. - “event notifications”와 “push to handlers”를 강조하면 Event Grid가 가장 적합합니다. - “enterprise messaging, workflows, ordering, dead-lettering, transactions”를 강조하면 Service Bus가 가장 적합합니다. - “telemetry, logs, millions of events/sec, streaming analytics”를 강조하면 Event Hubs를 떠올리십시오.

4
문제 4

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 전 세계에 위치한 2,000개의 매장에서 point-of-sale (POS) 디바이스 데이터를 수집하기 위한 Azure 솔루션을 개발하고 있습니다. 단일 디바이스는 24시간마다 2 megabytes (MB)의 데이터를 생성할 수 있습니다. 각 매장 위치에는 데이터를 전송하는 디바이스가 1개에서 5개까지 있습니다. 디바이스 데이터는 Azure Blob storage에 저장해야 합니다. 디바이스 데이터는 디바이스 식별자를 기준으로 상관관계가 설정되어야 합니다. 앞으로 추가 매장이 개점할 것으로 예상됩니다. 디바이스 데이터를 수신하기 위한 솔루션을 구현해야 합니다. 솔루션: Azure Event Grid를 프로비저닝합니다. 디바이스 식별자를 평가하도록 event filtering을 구성합니다. 이 솔루션이 목표를 충족합니까?

'예'라고 답하는 것은 Event Grid가 디바이스 telemetry 수집을 직접 수신하고 관리할 수 있다고 가정하기 때문에 잘못되었습니다. Event Grid는 이벤트를 필터링하고 라우팅할 수 있지만, 디바이스 수집 게이트웨이가 아니며 전 세계에 분산된 수천 개의 디바이스에 일반적으로 필요한 연결, authentication, 수집 의미 체계를 제공하지 않습니다. 또한 디바이스 식별자에 대한 filtering은 라우팅만 결정할 뿐이며, 내구성 있는 수집 및 상관관계/저장소 구성을 본질적으로 제공하지 않습니다. IoT Hub 또는 Event Hubs가 이러한 유형의 워크로드를 위해 의도된 서비스이며, 이후 Blob storage에 저장됩니다.

Azure Event Grid는 수천 개의 디바이스로부터 지속적인 디바이스 telemetry를 수신하는 기본 서비스로 설계되지 않았기 때문에 이 솔루션은 목표를 충족하지 않습니다. Event Grid는 개별 이벤트를 라우팅하고 핸들러를 트리거하는 데 최적화되어 있으며, 디바이스별 identity, 디바이스 authentication, telemetry 지향 수집 패턴과 같은 핵심 IoT 수집 기능이 부족합니다. Event Grid가 event filtering을 지원하더라도, filtering은 Blob storage에 저장하기 전에 대규모에서 디바이스 데이터를 안정적으로 수집하고 상관관계를 설정해야 한다는 요구 사항을 해결하지 못합니다. 더 적절한 접근 방식은 Azure IoT Hub(또는 Event Hubs)를 사용하여 디바이스 데이터를 수집한 다음, 이를 디바이스 식별자별로 구성된 Blob storage로 라우팅/처리하는 것입니다.

문제 분석

핵심 개념: 이 문제는 대규모 디바이스 telemetry에 적합한 Azure 수집 서비스를 선택하고, Blob storage에 저장하기 전에 Event Grid(이벤트 알림/라우팅)와 고처리량 device-to-cloud 데이터 수집을 위해 설계된 서비스(IoT Hub/Event Hubs)의 차이를 이해하는지를 평가합니다. 정답인 이유: Event Grid는 주로 개별 이벤트(예: “blob created”, “resource changed”)를 위한 이벤트 라우팅 서비스이며, 수천 개의 POS 디바이스로부터 지속적인 디바이스 telemetry 업로드를 받기 위한 기본 엔드포인트로 설계되지 않았습니다. Event Grid는 event metadata에 대한 filtering을 지원하지만, 대규모에서 디바이스 데이터 스트림을 안정적으로 수신하고 버퍼링하는 데 필요한 디바이스 연결, 수집 의미 체계, 또는 telemetry 지향 기능을 제공하지 않습니다. 더 적절한 패턴은 Azure IoT Hub(또는 비-IoT 시나리오의 경우 Event Hubs)를 통해 디바이스 메시지를 수집한 다음, routing/Stream Analytics/Functions를 사용하여 디바이스 식별자별로 partitioning하여 Blob Storage에 쓰는 것입니다. 주요 기능 / 구성: - Azure Event Grid: 이벤트 알림, 핸들러로의 push delivery, event subject/type/data 필드에 대한 filtering, 이벤트에 대한 at-least-once delivery. - Azure IoT Hub: 디바이스별 identity, 디바이스 authentication, device-to-cloud telemetry 수집, storage/endpoints로의 message routing. - Azure Event Hubs: 고처리량 이벤트 수집, partitions/consumer groups; 일반적으로 Blob에 저장하기 위해 processors와 함께 사용됩니다. - 디바이스 식별자 기준 상관관계: IoT Hub device ID 또는 message properties를 사용하고, 효율적인 구성을 위해 /deviceId=/yyyy=/mm=/dd= 와 같은 Blob 경로에 씁니다. 일반적인 오해: - Event Grid를 임의의 디바이스 payload를 위한 범용 수집 엔드포인트로 가정하는 것; 이는 주로 Azure 서비스 또는 custom publishers가 내보내는 이벤트를 라우팅하기 위한 것이지, 대규모 direct device telemetry를 위한 것이 아닙니다. - “filtering”을 “correlation/storage partitioning”과 혼동하는 것; filtering은 이벤트가 어디로 가는지만 결정하며, 디바이스 ID별로 데이터를 본질적으로 구성하거나 저장하지는 않습니다. - IoT Hub가 제공하는 디바이스 관리 요구 사항(identity, authentication, throttling)을 간과하는 것. 시험 팁: - Event Grid는 반응형 워크플로와 알림(resource events, blob created 등)에 사용하고, 기본 telemetry 수집에는 사용하지 마세요. - 많은 디바이스가 데이터를 전송하는 경우: IoT Hub(디바이스 identity + telemetry) 또는 Event Hubs(stream ingestion)를 선호하세요. - 요구 사항에 “디바이스 식별자를 기준으로 상관관계 설정”이 포함되어 있다면, message properties + storage로의 downstream partitioning/routing을 떠올리세요. - 대상이 Blob Storage인 경우, 중간 수집 서비스와 processor(Functions/Stream Analytics) 또는 기본 제공 routing(IoT Hub routing)을 예상하세요.

5
문제 5

사용자 계약을 저장해야 합니다. 계약이 완료된 후 어디에 저장해야 합니까?

Azure Storage queue는 완료된 계약을 나타내는 경량 작업 항목을 유지하여 다운스트림 구성 요소가 이를 비동기로 처리할 수 있게 하는 데 가장 적합합니다. durable하고 비용이 낮으며 Azure Functions 트리거와 잘 통합됩니다. 메시지 크기 제한 때문에 전체 서명 문서가 아니라 계약 metadata(ID, 타임스탬프, blob URL)를 저장하는 데 사용하고, 처리의 분리와 확장성을 유지하십시오.

Azure Event Hubs는 고처리량 event streaming 및 telemetry 수집(예: IoT, 로그)에 최적화되어 있습니다. 이는 구성된 시간 범위 동안 event를 보존하며, 개별 작업을 처리하는 competing workers가 아니라 partitions/consumer groups를 통해 소비됩니다. “나중에 처리하기 위해 완료된 계약 저장”에는 streaming analytics pipeline을 구축하는 경우가 아니라면 일반적으로 잘못된 추상화입니다.

Azure Service Bus topic은 여러 subscription과 고급 messaging 기능(sessions, transactions, dead-lettering, duplicate detection)을 지원하는 publish/subscribe를 제공합니다. 여러 독립 시스템이 반응해야 하는 경우 계약 완료 event에 사용할 수 있습니다. 그러나 단순히 나중에 처리하기 위한 완료된 계약 작업 항목을 저장하는 목적이라면, 일반적으로 Storage queues에 비해 더 복잡하고 비용도 더 듭니다.

Azure Event Grid topic은 push delivery 및 event filtering을 사용하여 event 알림을 handler(Functions, WebHooks, Service Bus 등)로 라우팅하기 위한 것입니다. 완료된 계약을 저장하는 메커니즘이나 작업 queue로 설계된 것이 아닙니다. Event Grid는 “계약 완료”를 여러 subscriber에게 브로드캐스트해야 할 때 적절하지만, 여전히 계약 자체는 다른 곳에 저장하고/또는 작업을 enqueue해야 합니다.

문제 분석

핵심 개념: 이 문제는 나중에 처리하기 위해 완료된 “사용자 계약” 아티팩트를 유지하는 데 어떤 Azure messaging/eventing 서비스가 적절한지 평가합니다. AZ-204에서 이러한 선택지는 서로 다른 messaging 패턴에 매핑됩니다: queue 기반 작업 분산(Storage queues), 엔터프라이즈 messaging(Service Bus), 고처리량 telemetry streaming(Event Hubs), 그리고 event routing(Event Grid). 이들 중 어느 것도 Blob Storage 또는 Cosmos DB와 같은 장기 문서 저장소는 아니므로, 의도는 일반적으로 보관용 저장이 아니라 “비동기 처리를 위해 완료된 계약을 저장”하는 것입니다. A가 정답인 이유: Azure Storage queue는 완료된 계약을 나타내는 작은 메시지(예: 계약 ID, 사용자 ID, 타임스탬프, 그리고 서명된 문서가 저장된 위치를 가리키는 포인터/URL)를 유지하는 가장 단순하고 비용 효율적인 방법입니다. 이는 durable한 at-least-once delivery를 제공하며 웹/API 계층을 다운스트림 프로세서(Functions/WebJobs/worker services)와 분리합니다. 이는 급증하는 부하를 완화하고 producer와 consumer의 독립적인 확장을 가능하게 함으로써 Azure Well-Architected Framework의 reliability 및 performance 원칙과 부합합니다. 주요 기능 / 모범 사례: Storage queues는 고가용성이며, visibility timeout, poison message 처리(dequeue count를 통해), 그리고 Azure Functions 트리거를 지원합니다. 메시지는 작게 유지하고(최대 약 64 KB), 실제 계약 문서는 다른 곳(일반적으로 Blob Storage)에 저장하며 queue에는 metadata/포인터만 넣으십시오. managed identity/SAS를 적절히 사용하고, 저장 시 암호화(기본값) 및 네트워크 격리를 위한 private endpoints를 고려하십시오. 일반적인 오해: “계약 완료”가 event처럼 들리기 때문에 Event Grid와 Event Hubs를 선택하는 경우가 많습니다. 그러나 이러한 서비스는 durable한 작업 항목 저장소나 competing consumers를 위한 것이 아니라 event 배포/streaming을 위한 것입니다. Service Bus topics는 강력하지만, 고급 엔터프라이즈 기능(sessions, transactions, duplicate detection, ordered delivery, 독립 subscription을 가진 여러 subscriber)이 필요한 경우가 아니라면 일반적으로 과한 선택입니다. 시험 팁: 시나리오가 “나중에 작업 수행” 또는 “버퍼링 후 비동기 처리”라면 Queue를 떠올리십시오(단순하고 저비용이면 Storage queue, 고급 엔터프라이즈 요구 사항이면 Service Bus queue/topic). “어떤 일이 발생했음을 여러 시스템에 알림”이라면 Event Grid를 떠올리십시오. “대규모 streaming 데이터 수집”이라면 Event Hubs를 떠올리십시오.

이동 중에도 모든 문제를 풀고 싶으신가요?

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.

6
문제 6

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 사진을 관리하기 위한 software as a service (SaaS) 서비스를 개발합니다. 사용자는 사진을 web service에 업로드하고, 그러면 web service가 사진을 Azure Storage Blob storage에 저장합니다. storage account 유형은 General-purpose V2입니다. 사진이 업로드되면, 이미지의 mobile-friendly 버전을 생성하고 저장하도록 처리되어야 합니다. 이미지의 mobile-friendly 버전을 생성하는 프로세스는 1분 이내에 시작되어야 합니다. 사진 처리를 시작하는 프로세스를 설계해야 합니다. 솔루션: Blob storage events에서 사진 처리를 트리거합니다. 이 솔루션이 목표를 충족합니까?

예. Blob storage events는 업로드와 같은 blob 변경에 대해 event-driven 방식으로 반응하도록 설계되었으므로, 사진이 저장된 직후 처리를 시작할 수 있습니다. 이 접근 방식은 거의 실시간이며, 1분 이내에 처리를 시작해야 하는 요구 사항에 적합합니다. 또한 새 파일을 찾기 위해 storage account를 polling하는 방식의 지연과 비효율성을 피할 수 있습니다.

아니요는 틀렸습니다. Blob storage events는 blob이 생성되거나 업데이트될 때 후속 서비스를 빠르게 알리도록 특별히 설계되었습니다. 요구 사항은 전체 이미지 변환이 그 시간 내에 완료되어야 한다는 것이 아니라, 프로세스가 1분 이내에 시작되어야 한다는 것입니다. polling 또는 scheduled 방식은 이 요구 사항을 충족하지 못할 수 있지만, Blob storage의 event-based trigger는 이를 충족합니다.

문제 분석

핵심 개념: 이 문제는 Blob이 업로드된 후 Azure Blob storage events를 사용하여 후속 처리를 빠르게 시작할 수 있는지 여부를 테스트합니다. Azure에서 blob-created events는 거의 실시간으로 발생하므로 event-driven 이미지 처리 워크플로에 적합합니다. 정답인 이유: Blob storage events에서 사진 처리를 트리거하는 것은 요구 사항을 충족합니다. blob events는 업로드가 발생한 직후, 일반적으로 1분 이내에 subscriber에게 알리도록 설계되었기 때문입니다. 따라서 mobile-friendly 이미지 버전을 생성하는 것과 같은 asynchronous 처리를 시작하는 데 적합합니다. 주요 기능: Blob storage는 Azure event-driven 패턴과 통합되므로 애플리케이션이 새 blob이 생성될 때 자동으로 반응할 수 있습니다. 이렇게 하면 polling 지연을 피하고 불필요한 compute 사용을 줄일 수 있습니다. 이는 Azure에서 image-processing pipeline에 일반적으로 사용되는 설계입니다. 일반적인 오해: 흔한 실수는 polling 메커니즘, scheduled job 또는 blob scan을 선택하는 것인데, 이러한 방식은 처리를 충분히 빠르게 시작하지 못할 수 있습니다. 또 다른 오해는 이 문제가 특정 compute service를 요구한다고 생각하는 것입니다. 이 문제는 단지 프로세스를 어떻게 시작할지를 묻고 있으며, blob events는 그 요구를 충족합니다. 시험 팁: 요구 사항에 storage 변경 후 처리가 빠르게 시작되어야 한다고 명시되어 있으면, polling보다 event-based trigger를 우선 고려하십시오. Azure Storage blob 업로드의 경우, Blob storage events는 후속 작업을 시작하기 위한 표준적인 거의 실시간 메커니즘입니다.

7
문제 7

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 정답이 둘 이상 있을 수 있고, 다른 문제 세트에는 정답이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 전 세계에 위치한 2,000개의 매장에서 point-of-sale (POS) 디바이스 데이터를 수집하기 위한 Azure 솔루션을 개발하고 있습니다. 단일 디바이스는 24시간마다 2 megabytes (MB)의 데이터를 생성할 수 있습니다. 각 매장 위치에는 데이터를 전송하는 디바이스가 1개에서 5개까지 있습니다. 디바이스 데이터는 Azure Blob storage에 저장해야 합니다. 디바이스 데이터는 디바이스 식별자를 기준으로 상관관계가 지정되어야 합니다. 향후 추가 매장이 개점할 것으로 예상됩니다. 디바이스 데이터를 수신하기 위한 솔루션을 구현해야 합니다. 솔루션: Azure Service Bus를 프로비저닝합니다. correlation filter를 사용하여 디바이스 데이터를 수신하도록 topic을 구성합니다. 이 솔루션이 목표를 충족합니까?

'예'라고 답하는 것은 잘못되었습니다. 이는 Service Bus를 디바이스 telemetry 수집 서비스로 과대평가하기 때문입니다. correlation filter는 메시지를 subscription으로 라우팅하는 데 도움이 될 수 있지만, 안전한 디바이스별 연결, throttling 패턴, IoT 프로토콜 지원과 같은 디바이스 규모 수집 요구 사항을 본질적으로 해결하지는 못합니다. 또한 전 세계의 많은 매장과 향후 성장을 강조하는 이 시나리오는 고 fan-in 이벤트 수집과 Blob storage로의 손쉬운 저장(routing 또는 Capture를 통해)을 위해 설계된 IoT Hub 또는 Event Hubs와 더 잘 부합합니다. 따라서 제안된 Service Bus topic 접근 방식은 의도된 목표를 완전히 충족하지 못합니다.

이 솔루션은 목표를 충족하지 않습니다. Azure Service Bus topic은 전 세계에 분산된 수천 개 디바이스의 telemetry를 수집하는 데 가장 적합한 선택이 아니기 때문입니다. correlation filter는 디바이스 식별자 속성을 기준으로 메시지를 라우팅할 수 있지만, Service Bus에는 디바이스별 ID, 디바이스 인증, telemetry에 최적화된 수집 패턴과 같은 IoT 전용 기능이 부족합니다. Azure에서는 일반적으로 IoT Hub(또는 Capture가 포함된 Event Hubs)를 사용하여 대규모로 디바이스 데이터를 수신한 다음 Blob storage에 저장합니다. 따라서 correlation filter가 있는 Service Bus topic을 사용하는 것은 이 시나리오에 적절한 수집 설계가 아닙니다.

문제 분석

핵심 개념: 이 문제는 Azure Blob storage에 저장되기 전에 디바이스 식별자를 기준으로 라우팅/상관관계 지정되어야 하는 대규모 디바이스 telemetry에 적합한 Azure 수집 서비스를 선택하는지를 평가합니다. 정답인 이유: correlation filter가 있는 Azure Service Bus topic은 대규모 디바이스 telemetry 수집이 아니라 엔터프라이즈 메시징 패턴(애플리케이션 간 명령/이벤트)과 subscription 기반 라우팅을 위해 설계되었습니다. correlation filter는 속성(예: deviceId)을 기준으로 메시지를 라우팅할 수 있지만, Service Bus는 전 세계에 분산된 수천 개 디바이스를 위한 권장 진입점이 아니며, 디바이스 ID 관리, 디바이스별 연결 패턴 또는 telemetry에 최적화된 수집을 기본적으로 제공하지 않습니다. 향후 성장까지 고려한 글로벌 규모의 POS/IoT 스타일 디바이스 데이터의 경우, Azure IoT Hub(또는 순수 스트리밍용 Event Hubs)가 일반적인 수집 계층이며, 이후 데이터는 routing, capture 또는 다운스트림 처리를 통해 Blob Storage에 저장됩니다. 주요 기능 / 구성: - Service Bus Topics/Subscriptions: pub-sub 메시징, 메시지 속성에 대한 correlation filter, 순서가 보장된 처리를 위한 sessions. - IoT Hub: 디바이스별 ID, 디바이스 인증, device-to-cloud telemetry, Blob/Storage endpoint로의 message routing. - Event Hubs: 고처리량 이벤트 수집; Event Hubs Capture는 Azure Blob Storage/ADLS에 자동으로 쓸 수 있습니다. 일반적인 오해: - “correlation filter”를 “대규모 디바이스 상관관계 지정”과 동일시하는 것: 이는 메시지를 subscription으로 라우팅할 뿐이며 IoT 디바이스 관리나 telemetry 수집 최적화를 제공하지 않습니다. - Service Bus를 IoT 수집 서비스로 사용하는 것: Service Bus는 대규모 디바이스 fan-in이 아니라 애플리케이션 메시징 신뢰성과 워크플로에 최적화되어 있습니다. - Blob storage 요구 사항이 Service Bus를 의미한다고 믿는 것: storage는 sink이며, 핵심은 올바른 수집 서비스를 선택하는 것입니다. 시험 팁: - 디바이스가 관련되어 있고 디바이스별 ID/인증 및 확장 가능한 device-to-cloud 수집이 필요한 경우 IoT Hub를 우선 고려하세요. - 고처리량 스트리밍 수집에는 Event Hubs를 우선 고려하고, Blob/ADLS에 저장하려면 Capture를 사용하세요. - 원시 telemetry 수집보다는 엔터프라이즈 메시징(명령, 워크플로, 서비스 분리)에 Service Bus를 사용하세요.

8
문제 8

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션에서 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 전 세계에 위치한 2,000개의 매장에서 point-of-sale (POS) device 데이터를 수집하기 위한 Azure 솔루션을 개발하고 있습니다. 단일 device는 24시간마다 2 megabytes (MB)의 데이터를 생성할 수 있습니다. 각 매장 위치에는 데이터를 전송하는 1개에서 5개의 device가 있습니다. device 데이터를 Azure Blob storage에 저장해야 합니다. device 데이터는 device identifier를 기준으로 상호 연관되어야 합니다. 앞으로 추가 매장이 개점할 것으로 예상됩니다. device 데이터를 수신하기 위한 솔루션을 구현해야 합니다. 솔루션: Azure Notification Hub를 프로비저닝합니다. 모든 device를 hub에 등록합니다. 이 솔루션이 목표를 충족합니까?

'예'라고 답하는 것은 Notification Hubs가 device telemetry를 수신하고 저장할 수 있음을 의미하지만, 이 서비스의 주된 기능은 inbound 데이터 수집이 아니라 outbound push notification 전송입니다. Notification Hubs의 device registration은 telemetry 수집을 위한 device authentication이나 수신 데이터를 device ID로 상호 연관하기 위한 것이 아니라 notification 대상 지정(tags/templates)을 위한 것입니다. 또한 수신 device 데이터를 Azure Blob Storage에 직접 기록하는 통합 기능도 제공하지 않습니다. 따라서 설명된 수집 및 저장 요구 사항을 충족하지 못합니다.

Notification Hubs는 데이터 수집 서비스가 아닙니다. 이는 APNs/FCM/WNS를 통해 등록된 device에 notification을 보내는 데 사용되는 push notification broker입니다. 이 시나리오는 POS device 데이터를 수신하고 이를 device identifier를 기준으로 상호 연관하여 Azure Blob Storage에 저장해야 하는데, Notification Hubs는 이를 기본적으로 지원하지 않습니다. device로부터 telemetry stream을 수신하고 이를 Blob Storage에 저장하는 기본 제공 메커니즘이 없습니다. 따라서 이 솔루션은 목표를 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 전 세계에 분산된 수천 개의 POS device로부터 telemetry와 유사한 데이터를 수신하고, 이를 Azure Blob Storage에 저장하며, device 기반 상호 연관 및 향후 확장을 지원하기 위한 올바른 Azure 수집 서비스/패턴을 선택하는지를 평가합니다. 정답인 이유: Azure Notification Hubs는 mobile device(APNs/FCM/WNS)로 push notification을 보내기 위해 설계되었으며, 저장 및 분석을 위한 device 생성 데이터 payload를 수집하는 용도가 아닙니다. Notification Hub에 device를 등록하면 device/user를 대상으로 notification을 보낼 수 있지만, 확장 가능한 telemetry 수집 endpoint, Blob Storage로의 message routing, 또는 수신 데이터에 대한 device identifier 기반 상호 연관 기능은 제공하지 않습니다. Blob Storage로의 IoT/telemetry 수집에는 Azure IoT Hub(스토리지로 routing), Azure Event Hubs(Blob으로 Capture), 또는 Azure Service Bus(다운스트림 처리 포함)와 같은 서비스가 적절합니다. 주요 기능 / 구성: - Azure Notification Hubs: device registration, tags, templates; 플랫폼(APNs/FCM/WNS)으로의 outbound push notification 전송. - 적절한 수집 대안: - Azure IoT Hub: device별 identity, authentication, device-to-cloud messaging, Azure Blob Storage로의 message routing. - Azure Event Hubs: 고처리량 수집; Event Hubs Capture는 Azure Blob Storage/ADLS에 직접 기록. - stream processing(선택 사항): Azure Functions/Stream Analytics를 사용하여 보강/상호 연관 후 Blob에 기록. 일반적인 오해: - “hub” 서비스 혼동: Notification Hubs(push notification) vs Event Hubs(telemetry streaming) vs IoT Hub(device management + telemetry). - Notification Hubs의 device registration이 임의의 device telemetry를 수신하고 storage에 유지할 수 있음을 의미한다고 가정하는 것. 시험 팁: - Notification Hubs = outbound push notification이며, telemetry 수집이 아닙니다. - 대규모 device telemetry의 경우 IoT Hub(device identity + routing) 또는 Event Hubs(stream ingestion + Capture)를 떠올리세요. - 요구 사항에 device별 상호 연관/identity가 포함되면 IoT Hub가 가장 적합한 경우가 많습니다. - 요구 사항이 주로 Blob으로의 고처리량 수집이라면 Event Hubs Capture가 일반적인 정답입니다.

9
문제 9

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 사진을 관리하기 위한 software as a service (SaaS) 서비스를 개발합니다. 사용자는 사진을 web service에 업로드하고, 그러면 web service가 사진을 Azure Storage Blob storage에 저장합니다. storage account 유형은 General-purpose V2입니다. 사진이 업로드되면 이미지의 mobile-friendly 버전을 생성하고 저장하도록 처리되어야 합니다. 이미지의 mobile-friendly 버전을 생성하는 프로세스는 1분 이내에 시작되어야 합니다. 사진 처리를 시작하는 프로세스를 설계해야 합니다. 솔루션: Azure Storage account를 BlockBlobStorage storage account로 변환합니다. 이 솔루션이 목표를 충족합니까?

"예"라고 답하는 것은 잘못되었습니다. storage account 유형을 변환해도 event-driven pipeline이 생성되지 않으며 처리가 1분 이내에 시작된다고 보장하지도 않습니다. Premium BlockBlobStorage는 blob 읽기/쓰기 성능을 향상시킬 수 있지만, 업로드를 감지하고 처리 로직을 호출하는 메커니즘을 제공하지는 않습니다. 누락된 구성 요소는 event/trigger service(예: Event Grid)와 처리를 시작할 compute 대상(예: Azure Functions)입니다. 따라서 이 변경만으로는 처리를 빠르게 시작한다는 목표를 충족할 수 없습니다.

GPv2 storage account를 BlockBlobStorage account로 변경하는 것은 업로드 후 이미지 처리를 시작하기 위한 어떤 trigger도 구현하지 않습니다. 요구 사항은 1분 이내에 처리를 시작하는 것이며, 이는 blob 생성 events를 compute(예: Azure Function를 트리거하는 Event Grid)에 연결하여 달성합니다. BlockBlobStorage는 주로 blob workload에 대한 성능 계층과 특성을 변경할 뿐, eventing 또는 orchestration 동작을 변경하지 않습니다. 따라서 이 솔루션은 처리가 어떻게 시작되는지를 다루지 않으므로 목표를 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 blob이 Azure Storage에 업로드될 때 거의 실시간으로 처리를 트리거하는 방법과, storage account 유형을 변경하는 것이 event-driven 처리 지연 시간에 영향을 주는지를 테스트합니다. 정답인 이유: General-purpose v2 (GPv2) storage account를 BlockBlobStorage (Premium) account로 변환하는 것만으로는 1분 이내에 이미지 처리를 시작하기 위한 event trigger를 생성하거나 가속하지 않습니다. 요구 사항은 업로드 후 처리 workflow를 빠르게 시작하는 것이며, 이는 일반적으로 eventing (Azure Event Grid) 또는 messaging (Storage queues/Service Bus)과 compute (Azure Functions/WebJobs)를 사용하여 달성합니다. storage account 성능 계층/유형은 blob 작업의 throughput/latency를 향상시킬 수는 있지만, 자동으로 “처리 시작” 메커니즘을 제공하지는 않습니다. 주요 기능 / 구성: - Azure Event Grid + BlobCreated events를 사용하여 Azure Functions를 트리거(거의 실시간, 일반적으로 수 초) - Azure Functions Blob trigger (polling 기반이며, plan/runtime에 따라 지연이 있을 수 있고 Event Grid만큼 결정적이지 않음) - Storage queues 또는 Service Bus를 사용하여 업로드와 처리를 분리하고 안정적인 처리를 보장 - GPv2는 Event Grid 통합을 지원하므로 eventing을 위해 account 유형을 변경할 필요가 없음 일반적인 오해: - Premium/BlockBlobStorage account 유형이 자동으로 workflow를 트리거하거나 trigger 지연 시간을 줄인다고 가정하는 것. - storage 성능 특성(IOPS/throughput)과 event notification/trigger 메커니즘을 혼동하는 것. - Event Grid를 사용하려면 account 유형을 변경해야 한다고 믿는 것. GPv2는 이미 이를 지원합니다. 시험 팁: - 빠른 event-driven blob 처리 시작(BlobCreated → Function/Logic App)에는 Event Grid를 사용하세요. - storage account 유형 변경은 workflow triggering이 아니라 성능/비용에 영향을 줍니다. - “X 시간 이내에 시작” 요구 사항에는 가능하면 polling trigger보다 push-based events (Event Grid)를 선호하세요.

10
문제 10

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 사진을 관리하기 위한 software as a service (SaaS) 서비스를 개발합니다. 사용자는 사진을 웹 서비스에 업로드하고, 웹 서비스는 그 사진을 Azure Storage Blob storage에 저장합니다. storage account 유형은 General-purpose V2입니다. 사진이 업로드되면, 모바일 친화적인 버전의 이미지를 생성하고 저장하도록 처리되어야 합니다. 모바일 친화적인 버전의 이미지를 생성하는 프로세스는 1분 이내에 시작되어야 합니다. 사진 처리를 시작하는 프로세스를 설계해야 합니다. 솔루션: blob 업로드에 의해 트리거되는 Azure Function으로 사진 처리를 이동합니다. 이 솔루션이 목표를 충족합니까?

예. Blob trigger가 있는 Azure Function은 Azure Storage에 blob이 추가되거나 업데이트될 때 자동으로 실행되도록 설계되었으므로, 사진 업로드 시나리오에 직접적으로 부합합니다. 이를 통해 별도의 polling 서비스나 사용자 지정 인프라 없이 이미지 처리 코드를 시작할 수 있습니다. 일반적인 AZ-204 시험 맥락에서 Blob-triggered Functions는 업로드 후 1분 이내에 처리를 시작하기에 충분히 빠른 것으로 간주됩니다. 또한 thumbnail 또는 모바일 친화적 이미지 변형을 생성하는 일반적인 serverless 패턴이기도 합니다.

아니요는 이 시험의 맥락에서 제안된 설계가 명시된 목표를 충족하므로 틀렸습니다. 요구 사항은 업로드 직후 처리를 시작하는 것이며, Blob-triggered Azure Functions는 바로 그런 종류의 storage 기반 자동화를 위해 특별히 의도되었습니다. 실제 환경에서는 약간의 trigger 지연이 있을 수 있지만, 이 솔루션은 여전히 1분 이내 시작에 유효한 것으로 간주됩니다. 따라서 이 솔루션을 거부하는 것은 예상되는 Azure 설계 패턴과 일치하지 않습니다.

문제 분석

핵심 개념: 이 시나리오는 Azure Blob Storage에 blob이 업로드된 직후 이미지 처리를 시작하기 위한 적절한 event-driven 메커니즘으로 Blob storage trigger가 있는 Azure Function이 적합한지 여부를 테스트합니다. Blob-triggered Azure Functions는 새 파일이 storage에 저장될 때 반응하여 이미지 크기 조정과 같은 serverless 처리를 수행하는 데 일반적으로 사용됩니다. 정답인 이유: Blob-triggered Azure Function은 새 사진이 Blob storage에 업로드될 때 자동으로 시작될 수 있으므로, 모바일 이미지 생성 워크플로를 시작하는 적절한 방법입니다. AZ-204 시험 관점에서는 이것이 적절한 near-real-time 솔루션으로 간주되며, 처리가 1분 이내에 시작되어야 한다는 요구 사항을 충족합니다. 주요 기능: Azure Functions는 serverless 실행, 자동 확장, 그리고 Blob triggers를 통한 기본 Blob Storage 통합을 제공합니다. 이를 통해 인프라 관리가 줄어들고 애플리케이션이 업로드된 이미지를 도착하는 즉시 처리할 수 있습니다. 이는 thumbnail 또는 모바일 친화적 이미지 생성과 같은 storage 기반 워크로드에 대한 표준 패턴입니다. 일반적인 오해: Blob trigger는 업로드 요청에 의해 문자 그대로 동기적으로 호출되는 것이 아닙니다. blob이 기록된 후 blob 변경에 반응합니다. 약간의 지연이 있을 수 있지만, 시험 시나리오에서는 일반적으로 1분 이내에 처리를 시작해야 하는 요구 사항에 대해 충분히 빠른 것으로 간주됩니다. 일부 응시자는 이를 Event Grid 기반 trigger와 혼동하는데, 이는 다른 통합 패턴입니다. 시험 팁: 문제에서 Blob storage에 파일이 업로드된 후 자동으로 처리하라고 하면, Blob trigger가 있는 Azure Functions는 강력한 기본 답변입니다. 인프라를 관리하지 않고 near-real-time serverless 처리가 요구된다면, Blob triggers는 일반적으로 허용됩니다. Blob triggers를 queue 기반 decoupling 및 Event Grid 기반 event routing과 구분하십시오.

이동 중에도 모든 문제를 풀고 싶으신가요?

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.

11
문제 11

귀하는 Azure Blob storage를 사용하는 애플리케이션을 개발하고 있습니다. 이 애플리케이션은 감사 목적을 위해 storage account에서 blobs 및 blob metadata에 발생하는 모든 변경 사항의 transaction logs를 읽어야 합니다. 변경 사항은 발생한 순서대로 있어야 하며, create, update, delete 및 copy 작업만 포함해야 하고, 규정 준수 이유로 보존되어야 합니다. transaction logs를 비동기적으로 처리해야 합니다. 어떻게 해야 합니까?

Event Grid + Azure Functions는 비동기 처리 및 blob events에 대한 near-real-time 반응에 적합합니다. 그러나 compliance를 위한 권위 있는 transaction log는 아닙니다. 전달은 at-least-once이며, events가 중복될 수 있고, 모든 events에 대해 순서가 보장되지 않습니다. 보존도 본질적으로 제공되지 않으므로 events를 직접 저장해야 하며, 잘못 구성하면 여전히 events를 놓칠 수 있습니다.

Blob Storage Change Feed를 활성화하면 create, update, delete 및 copy 작업을 포함하여 blob 및 blob metadata 변경 사항에 대한 변경 불가능한 append-only log가 제공됩니다. 이는 auditing 및 compliance 시나리오를 위해 설계되었으며, feed files를 읽어 비동기 처리를 지원합니다. 또한 feed에 기록된 변경 사항의 순서를 보존하므로, 순서가 있는 transaction log 요구 사항에 가장 잘 부합합니다.

Storage Analytics logging(classic)은 request 수준의 logs를 캡처하지만, legacy 접근 방식이며 특히 blob 및 metadata 변경 사항에 대한 순서 있는 간결한 change log 요구 사항에 최적화되어 있지 않습니다. 많은 작업 유형으로 인해 noisy할 수 있고, parsing이 필요하며, Blob Change Feed 및 Azure Monitor diagnostic settings와 비교할 때 change tracking/auditing을 위한 권장되는 최신 솔루션이 아닙니다.

Azure Monitor HTTP Data Collector API는 custom logs를 Log Analytics로 보내는 데 사용됩니다. 이는 storage transaction history에 대한 기본 액세스를 제공하지 않습니다. 여전히 blob operations에 대한 source of truth가 필요하며, request bodies를 스캔하는 것은 blobs 및 metadata에 대한 순서 있는 create/update/delete/copy 변경 사항을 재구성하는 지원되거나 신뢰할 수 있는 방법이 아닙니다.

문제 분석

핵심 개념: 이 문제는 blobs 및 blob metadata의 변경 사항에 대한 변경 불가능하고 순서가 보장된 로그를 제공하는 Azure Blob Storage Change Feed를 테스트합니다. 이는 create/update/delete/copy 작업에 대한 내구성 있는 기록이 필요한 auditing, compliance 및 downstream processing 시나리오를 위해 설계되었습니다. 정답인 이유: 요구 사항은 blobs 및 blob metadata에 대한 모든 변경 사항의 transaction logs를, 발생한 순서대로, create, update, delete 및 copy로 제한하고, 규정 준수를 위해 보존하며, 비동기적으로 처리하는 것입니다. Blob Change Feed는 이를 위해 특별히 만들어졌습니다. 이는 storage account에 저장되는 append-only log files로 변경 사항을 기록하고, feed 내에서 순서를 유지하며, 정확히 관련된 변경 유형(create, update, delete 및 copy)을 포함합니다. feed가 Blob Storage에 저장되므로 batch jobs, Functions, Databricks/Synapse 또는 custom workers를 사용하여 비동기적으로 처리할 수 있으며, storage lifecycle management 및 immutability policies를 사용하여 compliance 요구 사항에 따라 보존할 수 있습니다. 주요 기능 / 구성 참고 사항: - storage account 수준에서 Change Feed를 활성화합니다. - change feed segments 및 events를 읽는 SDKs/APIs를 통해 feed를 사용합니다. - 보존/compliance: 필요한 기간 동안 보존하려면 lifecycle management를 사용하고, 규제 요구 사항에 변조 방지가 필요하다면 immutable blob policies (WORM)도 고려합니다. - Azure Well-Architected Framework(Reliability 및 Security)와 부합: durable하고 replayable한 log, 분리된 비동기 처리. 일반적인 오해: Event Grid는 near-real-time notifications에는 매우 적합하지만, compliance 등급의 완전하고 순서가 보장된 transaction log는 아닙니다. events는 at-least-once로 전달될 수 있고, 순서가 뒤바뀌어 도착할 수 있으며, 권위 있는 audit trail로 설계되지 않았습니다. Storage Analytics logs는 legacy 방식이며 blob metadata 변경 사항의 순서 있는 변경 추적에 그렇게 특화되어 있지 않습니다. Azure Monitor HTTP Data Collector는 custom log ingestion용이지, 권위 있는 storage transaction history를 추출하기 위한 것이 아닙니다. 시험 팁: “blob changes의 ordered log”, “auditing/compliance”, “create/update/delete/copy”를 보면 “Blob Change Feed”를 떠올리십시오. “events에 반응” 또는 “serverless processing 트리거”를 보면 “Event Grid”를 떠올리되, 엄격한 순서의 audit logs 용도는 아닙니다.

12
문제 12

Shipping Logic App의 요구 사항을 지원해야 합니다. 무엇을 사용해야 합니까?

Azure AD Application Proxy는 on-premises web applications를 Azure AD를 통해 외부 사용자에게 안전하게 게시하는 데 사용됩니다(pre-authentication, conditional access). 이는 사용자-앱 원격 액세스 솔루션이지, Logic Apps connectors가 on-premises databases 또는 내부 시스템에 도달하기 위한 통합 메커니즘이 아닙니다. 일반적으로 Logic Apps가 managed connectors를 통해 SQL Server 또는 file shares와 같은 on-prem 리소스에 액세스할 수 있게 하지는 않습니다.

Site-to-Site VPN은 on-premises network를 Azure VNet에 연결하여 많은 리소스에 대해 private IP connectivity를 가능하게 합니다. 그러나 표준 Logic Apps(Consumption)는 일반적으로 on-prem endpoints로 VPN을 통해 직접 라우팅하기보다 connector 패턴에 의존합니다. 시나리오에서 VNet-integrated Logic Apps/ISE 및 private routing 요구 사항을 명시적으로 언급하지 않는 한, S2S VPN은 일반적으로 connector 기반 on-prem 액세스에 대해 기대되는 정답이 아닙니다.

On-premises Data Gateway는 Azure Logic Apps(및 Power Platform)가 지원되는 connectors를 사용하여 on-premises data sources에 안전하게 액세스할 수 있도록 하는 표준 구성 요소입니다. gateway는 on-prem network 내부에서 실행되며 Azure로 outbound, encrypted connection을 설정하여 inbound firewall 노출을 피합니다. HA를 위한 clustering을 지원하며, Logic Apps가 on-prem systems에 연결해야 할 때 가장 일반적인 시험 정답입니다.

Point-to-Site VPN은 개별 client devices가 Azure VNet에 연결하도록 설계되었습니다(원격 사용자 액세스). 이는 on-premises datacenter에 대한 지속적이고 확장 가능한 connectivity를 제공하거나 Logic Apps와 같은 server-side services가 on-prem 리소스에 도달하도록 하기 위한 것이 아닙니다. 조직 전체의 hybrid connectivity에는 P2S가 아니라 S2S VPN 또는 ExpressRoute를 사용합니다.

문제 분석

핵심 개념: 이 문제는 Azure Logic Apps가 on-premises 리소스(예: on-prem SQL Server, file shares, SAP 또는 내부 HTTP endpoints)에 해당 리소스를 public internet에 노출하지 않고 안전하게 연결하는 방법을 테스트합니다. 핵심 통합 구성 요소는 On-premises Data Gateway이며, 이는 on-prem network에서 Azure로의 안전한 outbound connection을 제공합니다. 정답인 이유: “Shipping Logic App” 시나리오에서는 일반적으로 Logic App이 on-premises 시스템(ERP/WMS/shipping label system, on-prem database 또는 내부 APIs)에 호출하여 주문/배송 데이터를 검색하거나 배송 상태를 다시 기록해야 합니다. Logic Apps는 managed connectors를 사용하며, 대상 시스템이 on-premises에 있고 publicly reachable하지 않은 경우 지원되고 권장되는 접근 방식은 On-premises Data Gateway를 설치하고 등록하는 것입니다. gateway는 Azure Service Bus로 outbound connection을 시작하므로 일반적으로 inbound firewall openings가 필요하지 않으며, 이는 최소 노출 및 Azure Well-Architected 보안 원칙에 부합합니다. 주요 기능 / 구성 참고 사항: - gateway가 필요한 Logic Apps connectors를 지원합니다(일반적으로 SQL Server, File System, SAP 및 일부 custom scenarios). - on-prem network의 Windows Server에서 실행되며, high availability를 위해 cluster로 구성할 수 있습니다. - 인증/등록에 Azure AD를 사용하고 트래픽을 암호화하며, 연결은 HTTPS를 통한 outbound 방식입니다. - 운영 측면에서는 gateway 상태를 모니터링하고 gateway 머신이 필요한 Azure endpoints에 도달할 수 있는지 확인해야 합니다. 일반적인 오해: VPN 옵션(S2S/P2S)은 network connectivity를 제공하지만, 특정 패턴(예: VNet integration 및 private endpoints를 사용하는 ISE/Standard)을 사용하고 대상이 해당 network path를 통해 도달 가능한 경우가 아니라면 Logic Apps connectors는 일반적으로 private routing을 “그냥 사용”하지 않습니다. 많은 시험 시나리오에서 Logic Apps가 on-premises 데이터에 도달하기 위한 가장 단순하고 가장 전형적인 요구 사항은 VPN이 아니라 gateway입니다. 시험 팁: - 문제에서 Logic Apps가 on-premises data sources에 액세스한다고 언급하면 “On-premises Data Gateway”를 떠올리십시오. - 요구 사항이 connector 기반 액세스가 아니라 여러 워크로드를 위해 Azure VNets와 on-prem networks 간의 더 광범위한 private network connectivity인 경우 VPN을 선택하십시오. - Azure AD Application Proxy는 on-prem web apps를 외부 사용자에게 게시하기 위한 것이며, Logic Apps connector 액세스를 위한 것이 아닙니다.

13
문제 13

Shipping Logic App을 보안해야 합니다. 무엇을 사용해야 합니까?

Azure App Service Environment (ASE)는 VNet 내부에서 Azure App Service 리소스(Web Apps, API Apps, 일부 Function App 시나리오)를 호스팅하기 위한 격리되고 전용된 environment를 제공합니다. 그러나 Azure Logic Apps를 보안하거나 호스팅하는 표준 메커니즘은 아닙니다. ASE를 선택하는 것은 응시자가 “보안 호스팅”을 “ASE”와 동일시할 때 흔히 하는 실수이지만, Logic Apps는 VNet 삽입을 위해 ISE를 사용합니다.

Integration Service Environment (ISE)가 정답인 이유는 이것이 VNet에 배포되는 전용 single-tenant Logic Apps runtime이기 때문입니다. 이는 private network access, 더 엄격한 inbound/outbound 제어, 그리고 VNet 및 on-prem 리소스에 대한 보안 연결을 가능하게 합니다. “Logic App을 보안하라” 또는 “VNet에서 Logic Apps를 실행하라”와 같은 시험 표현에서는 ISE가 대표적인 솔루션입니다.

VNet service endpoint는 VNet의 identity를 지원되는 Azure PaaS 서비스(Azure Storage 또는 Azure SQL 등)로 확장하여 traffic이 Azure backbone에 머물도록 하고 해당 VNet으로 액세스를 제한할 수 있게 합니다. 그러나 Logic App endpoint 자체를 보안하거나 Logic Apps runtime을 VNet에 배치하지는 않습니다. 이는 종속성을 보안하는 데는 유용하지만 Logic App hosting plane을 보안하는 것은 아닙니다.

Azure AD B2B integration은 외부 identity(guest users)와 협업하고 Azure AD를 사용하여 애플리케이션에 대한 액세스를 관리하는 데 사용됩니다. 이는 사용자에 대한 authentication/authorization를 다루며 network isolation이나 Logic App runtime 보안을 다루지 않습니다. identity control도 중요하지만, B2B는 일반적으로 “Shipping Logic App을 보안하라”에 내포된 private VNet deployment와 traffic 제어를 제공하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure Logic App을 public internet으로부터 격리하고 private network access를 활성화하여 보안하는 방법을 테스트합니다. Logic Apps(특히 Logic Apps (Consumption))의 경우, 전용의 network-isolated environment에서 workflow를 실행하는 주요 방법은 Integration Service Environment (ISE)입니다. 정답인 이유: Integration Service Environment (ISE)는 Azure virtual network (VNet)에 삽입되는 Logic Apps runtime의 전용 single-tenant deployment입니다. 이를 통해 Shipping Logic App이 private하게 액세스될 수 있고 public internet을 거치지 않고도 VNet(또는 연결된 network)의 리소스에 도달할 수 있습니다. 시험 시나리오에서 “Logic App을 보안한다”는 것은 일반적으로 network isolation, private endpoints/VNet integration, 그리고 inbound/outbound traffic 제어를 의미하며, ISE는 이를 위해 설계된 Logic Apps 전용 솔루션입니다. 주요 기능 / 모범 사례: - Network isolation: ISE는 VNet에 배포되어 private IP addressing과 더 엄격한 traffic path 제어를 가능하게 합니다. - Enterprise connectivity: VNet에 연결된 리소스(SQL, SAP, VPN/ExpressRoute를 통한 on-prem)와 잘 작동하며 integration account artifact를 지원합니다. - Governance and compliance: Single-tenant isolation은 더 엄격한 compliance 요구 사항을 충족하는 데 도움이 되며 Azure Well-Architected Framework의 security pillar(network segmentation, 최소 노출)와도 부합합니다. - Predictable performance: 전용 capacity(Consumption과는 다른 가격 책정)는 mission-critical shipping workflow에 중요할 수 있습니다. 일반적인 오해: - App Service Environment (ASE)는 App Service app(web apps, APIs, 일부 경우 functions)을 호스팅하기 위한 것이며 Logic Apps runtime용이 아닙니다. Logic App을 private environment로 “이동”시키지 않습니다. - VNet service endpoints는 VNet에서 특정 Azure PaaS 서비스(예: Storage, SQL)로의 액세스를 보안하지만, Logic Apps를 VNet에 배치하거나 Logic App의 inbound endpoint를 보안하지는 않습니다. - Azure AD B2B는 외부 사용자를 위한 identity collaboration이며 Logic Apps에 대한 network isolation을 제공하지 않습니다. 시험 팁: - 질문이 VNet 수준 제어로 Logic App을 보안/격리하는 것에 관한 것이라면 ISE(Logic Apps 전용)를 떠올리십시오. - 질문이 VNet에서 downstream service(Storage/SQL)에 대한 액세스를 보안하는 것에 관한 것이라면 service endpoints 또는 private endpoints를 떠올리십시오. - 항상 서비스를 올바른 isolation construct에 매핑하십시오: ASE = App Service, ISE = Logic Apps.

14
문제 14

Azure 솔루션을 개발합니다. .NET API를 사용하여 No-SQL globally-distributed database에 연결해야 합니다. 데이터베이스에서 요청을 구성하고 실행하기 위한 객체를 만들어야 합니다. 어떤 코드 세그먼트를 사용해야 합니까?

오답입니다. Azure Cosmos DB .NET SDK v3+에서 Container는 EndpointUri와 PrimaryKey로 직접 인스턴스화되지 않습니다. Container 객체는 CosmosClient에서 얻습니다(예: cosmosClient.GetContainer(databaseId, containerId)). client는 authentication, connection management, retries 및 기타 request pipeline behaviors를 처리하며, Container constructor는 이러한 기능을 이런 방식으로 제공하지 않습니다.

오답입니다. Cosmos DB .NET SDK v3+에서 Database는 EndpointUri와 PrimaryKey를 사용하는 constructor 호출로 생성되지 않습니다. 먼저 CosmosClient를 생성한 다음 Database 참조를 얻거나(예: cosmosClient.GetDatabase(databaseId)) CreateDatabaseIfNotExistsAsync를 통해 생성합니다. credentials 및 endpoint configuration은 Database가 아니라 CosmosClient에 속합니다.

정답입니다. CosmosClient는 Azure Cosmos DB에 대한 connectivity를 구성하고 요청을 실행하는 데 사용되는 기본 .NET SDK 객체입니다. account endpoint와 key(또는 다른 credentials)로 생성되며 application의 lifetime 동안 재사용되도록 설계되었습니다. CosmosClient에서 Database 및 Container 참조를 얻고 CRUD operations를 수행합니다.

문제 분석

핵심 개념: 이 문제는 Azure Cosmos DB(a globally distributed NoSQL database)에 Azure Cosmos DB .NET SDK (v3+)를 사용하여 연결하는 방법을 테스트합니다. 이 SDK에서 요청을 구성하고 실행하기 위한 기본 진입점은 CosmosClient 객체이며, 이 객체는 connectivity, authentication, retries 및 효율적인 resource usage를 관리합니다. 정답인 이유: CosmosClient는 Cosmos DB account와 상호 작용하는 데 사용되는 최상위 client입니다. account endpoint URI와 key(또는 다른 credential)로 이를 생성한 다음, 이를 사용하여 Database 및 Container 객체에 대한 참조를 얻습니다(예: GetDatabase, GetContainer). CosmosClient는 오래 유지되고 application lifetime 전반에 걸쳐 재사용되도록 설계되어 connection management 및 performance optimizations를 가능하게 합니다. 따라서 new CosmosClient(EndpointUri, PrimaryKey)가 요청을 구성하고 실행하기 위한 올바른 코드 세그먼트입니다. 주요 기능 / 모범 사례: - socket exhaustion을 방지하고 performance를 향상시키기 위해 CosmosClient를 singleton(또는 app당 하나)으로 재사용합니다. - consistency, preferred regions, connection mode (Direct/Gateway), retries 및 diagnostics를 위해 CosmosClientOptions를 구성합니다. - 더 나은 security posture를 위해 가능하면 key 대신 Azure AD (DefaultAzureCredential)를 사용합니다. - Cosmos DB의 global distribution 및 multi-region reads/writes는 account 수준에서 처리되며, CosmosClient는 latency를 최적화하기 위해 ApplicationPreferredRegions로 구성할 수 있습니다. 이러한 내용은 Azure Well-Architected Framework의 pillars인 Performance Efficiency (client 재사용, preferred regions), Reliability (retries, multi-region), Security (keys보다 AAD)와 일치합니다. 일반적인 오해: 개발자는 때때로 endpoint/key로 Database 또는 Container를 직접 인스턴스화할 수 있다고 생각합니다. Cosmos DB .NET SDK에서 Database와 Container는 CosmosClient에서 얻는 논리적 resource reference이며, credential로 직접 생성하지 않습니다. 또 다른 혼동은 이전 SDK 패턴(DocumentClient)과 최신 CosmosClient 접근 방식을 혼동하는 것입니다. 시험 팁: AZ-204의 경우 object model을 기억하세요: CosmosClient (account-level) -> Database -> Container -> Items. connectivity를 구성하고 요청을 실행하는 객체를 묻는 문제라면 거의 항상 CosmosClient입니다. 또한 한 번 생성하고 여러 번 재사용하며, 가능하면 managed identity/AAD를 선호한다는 지침도 기억하세요.

15
문제 15

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 명시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 Azure 솔루션을 개발합니다. Azure Resource Manager에서 특정 resource group에 대한 virtual machine (VM) 액세스 권한을 부여해야 합니다. Azure Resource Manager access token을 획득해야 합니다. 솔루션: X.509 certificate를 사용하여 VM을 Azure Resource Manager에 인증합니다. 이 솔루션이 목표를 충족합니까?

"예"라고 답하는 것은 올바르지 않습니다. X.509 certificate를 사용하여 VM을 Azure Resource Manager에 인증하는 것은 예상되는 VM workload identity 패턴이 아니기 때문입니다. certificate는 service principal(app registration)의 credential로 사용할 수 있지만, 그러려면 Azure AD application을 만들고 관리해야 하며, VM에 private key를 설치하고 보호하고, rotation/expiry도 처리해야 합니다. 반면 managed identity를 사용하면 VM은 secret을 저장하지 않고 IMDS를 통해 token을 획득한 다음, 필요한 resource group 범위로 지정된 RBAC assignment를 사용할 수 있습니다. 따라서 이 맥락에서 certificate 기반 솔루션은 목표를 충족하는 것으로 간주되지 않습니다.

X.509 certificate는 Azure VM이 안전하고 credential이 필요 없는 방식으로 ARM access token을 획득하는 표준 메커니즘이 아닙니다. 권장되는 접근 방식은 VM에서 managed identity를 활성화하고 Azure Instance Metadata Service에서 OAuth 2.0 token을 요청한 다음, Azure RBAC를 사용하여 해당 identity에 특정 resource group에 대한 액세스 권한을 부여하는 것입니다. certificate 기반 인증은 일반적으로 Azure AD app registration(service principal)에 적용되며, VM에서 certificate lifecycle 및 private key를 관리해야 합니다. 이 시나리오는 특히 VM에 resource group에 대한 액세스 권한을 부여하고 ARM token을 획득하는 것에 관한 것이므로, managed identity가 의도된 솔루션이며 certificate 접근 방식은 목표를 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure VM에서 실행되는 workload에 대해 Azure Resource Manager (ARM) access token을 획득하는 방법과, Azure AD identity 및 Azure RBAC를 사용하여 해당 workload에 범위가 지정된 권한(예: 특정 resource group)을 부여하는 방법을 테스트합니다. 정답인 이유: X.509 certificate 자체를 사용하는 것은 Azure VM이 ARM에 인증하여 token을 획득하는 권장되거나 의도된 방법이 아닙니다. VM-to-ARM 액세스의 표준 접근 방식은 managed identity(system-assigned 또는 user-assigned)를 사용하는 것이며, 이를 통해 VM에 secret/certificate를 저장하지 않고 Azure Instance Metadata Service (IMDS)에서 token을 요청할 수 있습니다. 그런 다음 필요한 resource group 범위로 해당 managed identity에 Azure RBAC role assignment를 부여합니다. 따라서 제안된 certificate 기반 접근 방식은 이 시나리오에서 명시된 목표를 충족하지 않습니다. 주요 기능 / 구성: - VM의 workload identity를 위한 Azure resource용 managed identity(system-assigned 또는 user-assigned). - Azure Instance Metadata Service (IMDS) token endpoint: http://169.254.169.254/metadata/identity/oauth2/token. - resource group 수준으로 범위가 지정된 Azure RBAC role assignment(최소 권한). - Azure AD app registration 및 certificate credential은 일반적으로 service principal에 사용되며, 기본적인 VM workload identity 패턴으로 사용되지는 않습니다. 일반적인 오해: - Azure compute에서 ARM으로의 비대화형 인증에 certificate가 기본/필수 방법이라고 가정하는 것. - “certificate가 있는 service principal”(app registration credential)과 “VM identity”(managed identity), 그리고 token 획득 방식의 차이를 혼동하는 것. - 목표에 특정 resource group에 대한 액세스 권한 부여가 포함되어 있으며, 이는 managed identity에 대한 RBAC assignment를 통해 가장 깔끔하게 수행된다는 점을 간과하는 것. 시험 팁: - Azure VM이 ARM 또는 다른 Azure service를 호출해야 할 때는 Azure resource용 Managed Identity를 우선적으로 사용하십시오. - 권한을 제한하려면 RBAC scope(subscription/resource group/resource)를 사용하고, managed identity에 role을 할당하십시오. - certificate는 Azure AD app registration(service principal)과 함께 일반적으로 사용되지만, VM에서 credential 관리 부담을 초래합니다. - VM에서 ARM token을 획득할 때는 IMDS가 일반적인 token 획득 메커니즘임을 기억하십시오.

이동 중에도 모든 문제를 풀고 싶으신가요?

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.

16
문제 16

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 명시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 정답이 둘 이상 있을 수 있고, 다른 문제 세트에는 정답이 없을 수도 있습니다. 이 섹션에서 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 Azure 솔루션을 개발합니다. Azure Resource Manager에서 특정 resource group에 대한 액세스 권한을 virtual machine (VM)에 부여해야 합니다. Azure Resource Manager access token을 획득해야 합니다. 솔루션: Reader role-based access control (RBAC) 역할을 사용하여 Azure Resource Manager로 VM을 인증합니다. 이 솔루션이 목표를 충족합니까?

Reader 역할을 할당하는 것은 인증 메커니즘이나 token 획득 방법을 제공하지 않기 때문에 Yes라고 답하는 것은 올바르지 않습니다. VM은 OAuth 2.0 access token을 요청하기 위해 Azure AD 기반 ID(managed identity 또는 service principal)가 필요하며, 그 후에야 RBAC가 ARM 작업 허용 여부를 결정합니다. Reader는 인증이 완료된 후 읽기 권한만 부여할 뿐, token 검색을 가능하게 하지는 않습니다. 결과적으로 이 솔루션은 ARM access token을 획득해야 한다는 요구 사항을 충족하지 않습니다.

Reader RBAC 역할은 VM을 인증하거나 Azure Resource Manager access token을 획득하는 데 사용할 수 없습니다. RBAC 역할은 ID가 유효한 Azure AD token을 제시한 후 ARM에 의해 평가되며, 해당 token을 생성하거나 제공하지 않습니다. ARM token을 얻으려면 VM은 Azure AD ID(일반적으로 managed identity)를 사용하고 IMDS 또는 Azure AD OAuth flow를 통해 ARM audience(`https://management.azure.com/`)에 대한 token을 요청해야 합니다. 따라서 제안된 솔루션은 목표를 충족하지 못합니다.

문제 분석

핵심 개념: 이 문제는 VM에 대한 Azure Resource Manager (ARM) 인증 및 권한 부여가 어떻게 작동하는지, 특히 RBAC 역할(권한 부여)과 ARM access token 획득(Azure AD를 통한 인증)의 차이를 테스트합니다. 정답이 맞는 이유: Reader RBAC 역할은 VM을 인증하거나 token을 발급하지 않으며, 이미 인증된 ID가 수행할 수 있는 작업만 정의합니다. Azure Resource Manager access token을 획득하려면 VM은 Azure AD ID(일반적으로 managed identity)를 사용하고 ARM resource(audience) `https://management.azure.com/`에 대한 token을 요청해야 합니다. 그런 다음 RBAC를 사용하여 해당 ID에 특정 resource group에 대한 액세스 권한을 부여하지만, 이것이 token을 생성하는 메커니즘은 아닙니다. 따라서 Reader 역할을 사용하여 “VM을 인증”하는 것은 ARM access token 획득이라는 목표를 충족하지 못합니다. 주요 기능 / 구성: - VM에 Azure AD ID를 제공하기 위한 Azure resources용 managed identities (system-assigned 또는 user-assigned) - Azure Instance Metadata Service (IMDS)에서의 token 획득: `http://169.254.169.254/metadata/identity/oauth2/token` - resource/audience `https://management.azure.com/`를 사용하여 ARM용 token 요청 - token 발급 후 권한 부여를 위해 특정 resource group 범위로 지정된 Azure RBAC 역할 할당(예: Reader/Contributor) 일반적인 오해: - RBAC 역할과 인증을 혼동함: RBAC는 권한을 제어하며, ID 확인이나 token 발급을 수행하지 않습니다. - VM에 역할을 할당하면 token 검색이 “활성화”된다고 가정함: token 검색에는 Azure AD ID(managed identity/service principal)와 token endpoint가 필요합니다. - token을 얻기 위해 “Reader”가 필요하다고 생각함: RBAC 권한이 전혀 없어도 token은 획득할 수 있으며, RBAC는 어떤 ARM 호출이 성공하는지에만 영향을 줍니다. 시험 팁: - RBAC = 권한 부여(무엇을 할 수 있는가), Azure AD/managed identity = 인증(누구인가) 및 token 발급 - VM-to-ARM 액세스의 경우, “managed identity + `https://management.azure.com/`에 대한 IMDS token”을 찾으십시오. - 특정 resource group에 대한 액세스를 제한하려면 resource group 수준에서 RBAC 할당 범위를 지정하십시오.

17
문제 17

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 Azure 솔루션을 개발합니다. Azure Resource Manager에서 특정 resource group에 대한 virtual machine (VM) 액세스를 부여해야 합니다. Azure Resource Manager access token을 획득해야 합니다. 솔루션: Invoke-RestMethod cmdlet을 실행하여 Azure resources endpoint용 local managed identity에 요청합니다. 이 솔루션이 목표를 충족합니까?

예. managed identity가 활성화된 VM은 VM 내부에서 local managed identity endpoint를 호출하여 Azure Resource Manager access token을 획득할 수 있습니다. Invoke-RestMethod를 사용하는 것은 해당 HTTP 요청을 수행하고 token payload를 검색하는 유효한 PowerShell 방법입니다. 이 방식은 자격 증명 저장을 피하고 VM의 managed identity를 사용하므로 권장되는 패턴이며, 이후 Azure RBAC를 통해 특정 resource group에 대한 권한을 부여할 수 있습니다.

아니요는 올바르지 않습니다. 제안된 솔루션은 VM 기반 managed identity가 Azure service용 토큰을 요청하도록 의도된 정확한 방법이기 때문입니다. local managed identity endpoint는 Azure resource 자체에서 실행되는 워크로드를 위해 설계되었으며, PowerShell은 이를 직접 호출할 수 있습니다. 유일한 주의 사항은 VM에 managed identity가 활성화되어 있어야 하고 해당 identity에 필요한 RBAC 권한이 있어야 한다는 점이지만, token 획득 방법 자체는 올바릅니다.

문제 분석

핵심 개념: 이 문제는 virtual machine이 managed identity를 사용하여 Azure Resource Manager access token을 획득하는 방법을 테스트합니다. managed identity가 활성화된 Azure VM에서는 애플리케이션이 자격 증명을 저장하지 않고 Azure Instance Metadata Service (IMDS)에서 노출하는 local managed identity endpoint에 토큰을 요청할 수 있습니다. 정답인 이유: Invoke-RestMethod로 local managed identity endpoint를 호출하는 것은 VM에서 실행되는 코드 또는 스크립트가 Azure Resource Manager용 OAuth 2.0 access token을 요청하는 표준 방법입니다. 요청은 local endpoint를 대상으로 하고 ARM resource/audience를 지정하며, Azure는 VM의 managed identity에 연결된 토큰을 반환합니다. 그런 다음 해당 토큰을 사용하여 RBAC 할당에 의해 허용된 resource group 및 resource에만 액세스할 수 있습니다. 주요 기능: Managed identity는 VM에 secret, certificate 또는 service principal 자격 증명을 포함할 필요를 없애줍니다. 토큰은 Azure resource 내부에서만 사용할 수 있는 local endpoint에서 획득되므로 보안이 향상됩니다. 액세스는 Azure RBAC를 통해 제어되므로, identity에는 특정 resource group에 대해 적절한 role이 부여되어야 합니다. 일반적인 오해: Managed identity가 모든 Azure resource에 대한 액세스를 자동으로 부여하는 것은 아닙니다. role이 계속 할당되어야 하는 identity만 제공합니다. 또한 local endpoint는 요청된 resource 또는 scope에 대한 토큰만 반환하므로, ARM token이 필요한 경우 요청은 Azure Resource Manager를 대상으로 해야 합니다. 단순히 VM에서 실행된다는 것만으로는 충분하지 않으며 managed identity가 활성화되어 있어야 합니다. 시험 팁: Managed identity가 있는 Azure VM, App Service 및 기타 compute service의 경우, 토큰은 일반적으로 local metadata/managed identity endpoint에서 검색된다는 점을 기억하세요. 문제가 resource 자체에서 실행되는 코드로부터 ARM token을 묻는다면, managed identity endpoint를 사용하는 것이 일반적으로 올바른 접근 방식입니다. token 획득과 권한 부여를 구분하세요. token 검색은 managed identity를 사용하고, resource group에 대한 액세스는 RBAC를 통해 부여됩니다.

18
문제 18

한 회사가 Azure Service Bus를 사용하여 publish-subscribe (Pub/Sub) 메시징 구성 요소를 구현하고 있습니다. 당신은 첫 번째 subscription 애플리케이션을 개발하고 있습니다. Azure portal에서 각 topic에 대해 subscription으로 메시지가 전송되고 있는 것을 확인합니다. 올바른 세부 정보를 제공하여 subscription client object를 생성하고 초기화했지만, subscription 애플리케이션은 여전히 메시지를 소비하지 않고 있습니다. subscription client가 모든 메시지를 처리하도록 해야 합니다. 어떤 code segment를 사용해야 합니까?

AddRuleAsync는 subscription rule/filter를 추가하거나 업데이트합니다. TrueFilter는 모든 메시지와 일치하지만, 문제에서 이미 메시지가 subscription으로 전송되고 있다고 했으므로(portal에서 확인 가능), routing 및 filtering은 문제가 아닙니다. 또한 rule을 추가하는 것은 메시지 소비를 시작하지 않으며, 단지 어떤 메시지가 subscription으로 전달되는지에만 영향을 줍니다.

이 코드는 SubscriptionClient를 생성하는 구문이며, 시나리오에서 이미 수행했다고 명시되어 있습니다(“올바른 세부 정보를 제공하여 subscription client object를 생성하고 초기화”). 인스턴스화만으로는 메시지 수신이 시작되지 않습니다. subscription에서 실제로 메시지를 소비하려면 여전히 handler를 등록하거나 수신 루프를 구현해야 합니다.

CloseAsync는 client를 종료하고 네트워크 리소스를 해제합니다. 이를 호출하면 모든 수신이 중지되므로 필요한 작업과는 반대입니다. CloseAsync는 메시지 소비를 시작하기 위한 것이 아니라, 처리가 완료된 후 정상 종료 시 사용됩니다.

RegisterMessageHandler는 subscription에서 메시지를 가져오고 ProcessMessagesAsync callback을 호출하는 백그라운드 message pump를 시작합니다. MessageHandlerOptions(예: MaxConcurrentCalls, AutoComplete, ExceptionReceivedHandler)와 함께 사용하면 메시지가 적극적으로 수신되고 처리되도록 보장합니다. 이것이 Microsoft.Azure.ServiceBus SubscriptionClient를 push 기반 handler model로 사용할 때 필요한 단계입니다.

문제 분석

핵심 개념: 이 문제는 .NET client를 사용하여 Azure Service Bus Topic Subscription에서 메시지를 소비하는 방법을 테스트합니다. 레거시 Microsoft.Azure.ServiceBus library에서 SubscriptionClient를 생성하는 것은 연결 및 entity 대상 지정만 설정할 뿐이며, 메시지 처리를 시작하지는 않습니다. message pump (handler)를 명시적으로 등록하거나 수동으로 메시지를 수신해야 합니다. 정답인 이유: subscriptionClient.RegisterMessageHandler(ProcessMessagesAsync, messageHandlerOptions)는 client 측 message pump를 시작합니다. 이 코드는 subscription에서 메시지를 사용할 수 있을 때마다 호출되는 비동기 callback(ProcessMessagesAsync)을 연결합니다. handler를 등록하지 않으면(또는 루프에서 ReceiveAsync를 호출하지 않으면) 애플리케이션은 “연결된” 것처럼 보이지만 실제로는 메시지를 소비하지 않습니다. RegisterMessageHandler는 또한 ReceiveMode 및 handler logic에 따라 적절한 settlement pattern(Complete/Abandon/Dead-letter)을 가능하게 합니다. 주요 기능 / 모범 사례: - MessageHandlerOptions를 사용하여 동시성(MaxConcurrentCalls) 및 오류 처리(ExceptionReceivedHandler)를 제어합니다. 이는 처리량과 복원력을 보장하는 데 중요합니다. - AutoComplete가 적절하게 설정되어 있는지 확인합니다. AutoComplete=false인 경우, handler는 성공적으로 처리한 후 CompleteAsync(message.SystemProperties.LockToken)를 호출해야 하며, 그렇지 않으면 lock이 만료된 후 메시지가 다시 전달됩니다. - 일시적 실패를 처리하고 exception handler에서 retry/backoff를 구현합니다. 이는 Azure Well-Architected Framework의 reliability 원칙과 일치합니다. - subscription에 적절한 rule/filter가 있는지 확인합니다. 일반적으로 subscription은 수정되지 않는 한 모든 메시지와 일치하는 TrueFilter rule을 기본적으로 가집니다. 일반적인 오해: 많은 개발자는 SubscriptionClient를 인스턴스화하면 자동으로 수신이 시작된다고 생각합니다. 하지만 그렇지 않습니다. 또 다른 혼동 지점은 rules/filters와 관련된 것입니다. portal에서 subscription에 대한 메시지가 보인다면 routing은 정상적으로 작동하고 있는 것이며, 문제는 consumer 측(수신 루프/handler 없음)에 있습니다. 시험 팁: AZ-204에서는 다음 패턴을 기억하세요: client 생성 + handler 등록(push model) 또는 client 생성 + ReceiveAsync 루프(pull model). 문제에서 client가 올바르게 생성되었지만 메시지가 소비되지 않는다고 하면, 누락된 단계는 보통 RegisterMessageHandler(또는 명시적인 수신 루프)입니다. 또한 최신 SDK(Azure.Messaging.ServiceBus)는 ServiceBusProcessor/ProcessMessageAsync를 사용하지만, 이 문제의 API는 Microsoft.Azure.ServiceBus와 일치합니다.

19
문제 19
(2개 선택)

새로운 Azure subscription이 있습니다. 직원들이 민감한 데이터를 볼 수 있는 내부 웹사이트를 개발하고 있습니다. 이 웹사이트는 인증에 Azure Active Directory (Azure AD)를 사용합니다. 웹사이트에 대해 multifactor authentication을 구현해야 합니다. 어떤 두 가지 작업을 수행해야 합니까? 각 정답은 솔루션의 일부를 나타냅니다. 참고: 각 정답 선택에는 1점이 주어집니다.

오답입니다. Azure AD B2C는 social identity와 사용자 지정 user flow를 사용하는 고객 대상(외부) identity 시나리오를 위해 설계되었습니다. 문제는 Azure AD(workforce tenant)를 사용하는 내부 직원용 웹사이트를 설명합니다. 직원의 경우 일반적으로 B2C가 아니라 Azure AD (Microsoft Entra ID)를 직접 사용하고 Conditional Access를 통해 MFA를 요구합니다.

정답입니다. Conditional Access policy를 만드는 것은 특정 애플리케이션과 사용자 집합에 대해 MFA를 적용하는 표준 방법입니다. 웹사이트의 enterprise application을 대상으로 지정하고 grant control로 “multifactor authentication”을 요구할 수 있습니다. Conditional Access는 세분화된 제어(사용자/그룹, 위치, device state)를 제공하며 app별 MFA 적용에 권장되는 접근 방식입니다.

정답입니다. Conditional Access는 일반적으로 Azure AD Premium(P1 이상)이 필요합니다. 새 subscription/tenant에서는 보통 free tier로 시작하며, 이는 대부분의 사용 사례에 대해 Conditional Access를 포함하지 않습니다. Azure AD Premium으로 업그레이드하면 웹사이트에 MFA를 요구하는 Conditional Access policy를 만들고 적용할 수 있습니다.

오답입니다. Azure AD Application Proxy는 Azure AD를 통해 외부에서 액세스할 수 있도록 on-premises 애플리케이션을 안전하게 게시하는 데 사용됩니다. Azure에서 호스팅되는 내부 웹사이트에는 필요하지 않으며, 그 자체로 MFA를 구현하지도 않습니다. 이를 사용하더라도 MFA는 일반적으로 Application Proxy만으로가 아니라 Conditional Access를 통해 적용됩니다.

오답입니다. “Baseline policies”는 레거시 방식이며 대부분 Security Defaults와 Conditional Access로 대체되었습니다. 사용 가능하더라도 baseline/security defaults는 tenant 전체에 적용되며, 특정 애플리케이션에 대한 전용 Conditional Access policy만큼 세분화되어 있지 않습니다. 문제는 웹사이트에 MFA를 구현하라고 묻고 있으며, 이는 app을 대상으로 하는 Conditional Access policy로 수행하는 것이 가장 적절합니다.

문제 분석

핵심 개념: 이 문제는 Azure AD로 인증되는 애플리케이션에 대해 multifactor authentication (MFA)을 적용하는 방법을 테스트합니다. Azure AD에서 MFA는 일반적으로 Conditional Access (CA) policy를 통해 적용됩니다. CA는 강력한 인증과 위험 기반 액세스 결정을 가능하게 하므로 Azure Well-Architected Framework의 Security pillar와 일치하는 핵심 identity 보안 제어입니다. 정답이 맞는 이유: 이미 Azure AD를 사용하는 내부 직원용 웹사이트에 MFA를 요구하려면, 애플리케이션(enterprise app / app registration)과 관련 사용자/그룹을 대상으로 하는 Conditional Access policy를 만들고 grant control을 “Require multifactor authentication”으로 설정합니다. 그러나 Conditional Access는 대부분의 시나리오에서 free tier에서는 사용할 수 없으며 Azure AD Premium(일반적으로 P1) 라이선스가 필요합니다. 따라서 (1) Azure AD Premium으로 업그레이드하고 (2) 새 Conditional Access policy를 만들어야 합니다. 주요 기능 및 구성 포인트: - Licensing: Azure AD Premium P1은 Conditional Access를 활성화합니다. CA 적용 대상 사용자가 적절한 라이선스를 보유하고 있는지 확인합니다. - Policy scope: policy를 특정 cloud app(웹사이트의 enterprise application)과 적절한 사용자/그룹(이상적으로는 먼저 pilot group)에 할당합니다. - Controls: Grant에서 “Require multifactor authentication”을 선택합니다. 요구 사항에 따라 조건(device compliance, location, sign-in risk)을 선택적으로 추가할 수 있습니다. - Best practice: 사용자 잠금을 방지하기 위해 least privilege와 단계적 rollout(가능한 경우 report-only mode)을 사용하고, CA에서 제외된 break-glass account를 유지합니다. 일반적인 오해: - “Baseline policies”는 이전 방식이며 많은 tenant에서 Security Defaults로 대체되었고, app별 MFA에 권장되는 세분화된 방법이 아닙니다. - Azure AD B2C는 내부 직원 인증이 아니라 외부 고객 identity용입니다. - Application Proxy는 on-prem app을 외부에 게시하기 위한 것이며, 그 자체로는 CA 없이 MFA를 적용하지 않습니다. 시험 팁: 문제에서 앱이 이미 Azure AD를 사용한다고 하고 MFA 적용을 묻는다면 “Conditional Access + Azure AD Premium”을 떠올리십시오. 내부 workforce identity라면 B2C는 피하십시오. on-prem app 게시에 관한 내용이라면 Application Proxy를 고려할 수 있지만, MFA 적용은 여전히 일반적으로 Conditional Access에서 수행됩니다.

20
문제 20
(2개 선택)

ASP.NET Core Web API 웹 서비스를 개발하고 있습니다. 이 웹 서비스는 모든 telemetry 및 dependency tracking에 Azure Application Insights를 사용합니다. 이 웹 서비스는 Microsoft SQL Server 이외의 데이터베이스에 데이터를 읽고 씁니다. third-party 데이터베이스 호출에 대해 dependency tracking이 작동하도록 해야 합니다. 어떤 두 가지 dependency telemetry 속성을 사용해야 합니까? 각 정답은 솔루션의 일부를 나타냅니다. 참고: 각 정답 선택에는 1점이 부여됩니다.

Telemetry.Context.Cloud.RoleInstance는 App Service 인스턴스 또는 VM과 같이 telemetry를 내보낸 특정 compute 인스턴스를 식별합니다. 이는 scale-out 환경에서 node별 문제를 진단하는 데 도움이 될 수 있지만, 데이터베이스 호출에 대한 dependency tracking을 정의하거나 활성화하지는 않습니다. 이것은 호스트 metadata이지 dependency 자체를 표현하는 데 필요한 dependency telemetry 속성이 아닙니다. 따라서 여기서는 솔루션의 일부가 아닙니다.

Telemetry.Id는 dependency telemetry 항목의 고유 식별자입니다. Application Insights는 이 식별자를 telemetry 레코드의 일부로 사용하므로 dependency 호출이 traces 및 diagnostics에서 별개의 event로 표현됩니다. third-party 데이터베이스에 대해 dependencies를 수동으로 추적할 때 dependency 항목의 Id를 제공하는 것은 dependency telemetry 계약의 핵심 속성 중 하나입니다. 이는 호스트나 사용자 session에 대한 metadata가 아니라 dependency 레코드 자체를 식별합니다.

Telemetry.Name은 command, query 또는 논리적 데이터베이스 작업과 같은 dependency 작업의 사람이 읽을 수 있는 이름입니다. 이 필드는 dependency 보기, 검색 결과 및 analytics grouping에 표시되므로 third-party 데이터베이스 호출을 보이게 하고 이해 가능하게 만드는 데 필수적입니다. 의미 있는 Name이 없으면 dependency telemetry의 운영상 유용성이 크게 떨어집니다. 이는 dependency telemetry의 표준 속성이며 dependency tracking을 직접 지원합니다.

Telemetry.Context.Operation.Id는 telemetry 항목을 더 넓은 request 또는 distributed trace와 연결하는 데 사용되는 correlation context 속성입니다. correlation은 중요하지만, 이 문제는 third-party 데이터베이스에 대해 dependency tracking이 작동하도록 하기 위해 어떤 dependency telemetry 속성을 사용해야 하는지를 묻고 있습니다. dependency 항목 자체는 주로 Id 및 Name과 같은 필드로 정의되며, Operation.Id는 더 넓은 context로서 SDK에 의해 자동으로 전달되는 경우가 많습니다. 따라서 주어진 선택지 중에서는 최선의 답이 아닙니다.

Telemetry.Context.Session.Id는 telemetry를 사용자 또는 클라이언트 session과 연결하기 위한 용도이며, 가장 일반적으로는 대화형 애플리케이션 시나리오에서 사용됩니다. 데이터베이스에 대한 server-side Web API dependency 호출은 dependency로 추적되기 위해 session context에 의존하지 않습니다. 이 속성은 dependency 작업을 식별하지도 않고 dependency telemetry에 올바르게 표시되도록 하지도 않습니다. 따라서 요구 사항과 관련이 없습니다.

문제 분석

핵심 개념: Application Insights에서 지원되지 않거나 third-party 데이터베이스의 경우, custom dependency telemetry를 생성하고 dependency 호출을 식별하며 dependency event로 올바르게 표시되도록 하는 필드를 채워야 합니다. 정답인 이유: dependency telemetry에는 포털에서 호출을 식별할 수 있도록 의미 있는 Name이 필요하며, telemetry stream 내에서 dependency event가 고유하게 식별되도록 자체 Id도 필요합니다. 주요 기능: DependencyTelemetry는 Id, Name, Data, Target, Type, Duration, Success, ResultCode와 같은 필드를 사용합니다. 주변 request와의 correlation은 일반적으로 관련 없는 context 속성을 수동으로 선택하는 대신 SDK/activity context에 의해 자동으로 처리됩니다. 흔한 오해: Operation.Id는 작업 전반의 correlation에 사용되지만, 여기서 dependency 항목 자체를 정의하기 위해 일반적으로 필요한 두 가지 dependency telemetry 속성 중 하나는 아닙니다. Session.Id와 Cloud.RoleInstance는 dependency tracking과 관련이 없습니다. 시험 팁: dependency telemetry 속성을 구체적으로 묻는 경우, broader telemetry context 필드보다는 Id 및 Name처럼 dependency 항목에 직접 속하는 필드를 우선 선택하십시오. 단, 문제에서 correlation context를 명시적으로 묻는 경우는 예외입니다.

모의고사

Practice Test #1

50 문제·100분·합격 700/1000

Practice Test #2

50 문제·100분·합격 700/1000

Practice Test #3

50 문제·100분·합격 700/1000

Practice Test #4

50 문제·100분·합격 700/1000

Practice Test #5

50 문제·100분·합격 700/1000

다른 Microsoft 자격증

Microsoft AI-102

Microsoft AI-102

Associate

PL-300: Microsoft Power BI Data Analyst

PL-300: Microsoft Power BI Data Analyst

Microsoft AI-900

Microsoft AI-900

Fundamentals

Microsoft SC-200

Microsoft SC-200

Associate

Microsoft AZ-104

Microsoft AZ-104

Associate

Microsoft AZ-900

Microsoft AZ-900

Fundamentals

Microsoft SC-300

Microsoft SC-300

Associate

Microsoft DP-900

Microsoft DP-900

Fundamentals

Microsoft SC-900

Microsoft SC-900

Fundamentals

Microsoft AZ-305

Microsoft AZ-305

Expert

Microsoft AZ-500

Microsoft AZ-500

Associate

지금 학습 시작하기

Cloud Pass를 다운로드하여 모든 Microsoft AZ-204 기출 문제를 풀어보세요.

Get it on Google PlayDownload on the App Store
Cloud PassCloud Pass

IT 자격증 문제풀이 앱

Get it on Google PlayDownload on the App Store

자격증

AWSGCPMicrosoftCiscoCompTIADatabricks

법률

FAQ개인정보 처리방침서비스 약관

회사

문의하기계정 삭제

© Copyright 2026 Cloud Pass, All rights reserved.

이동 중에도 모든 문제를 풀고 싶으신가요?

앱 받기

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.