<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ktzzang0601 님의 블로그</title>
    <link>https://ktzzang0601.tistory.com/</link>
    <description>ktzzang0601 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Mon, 6 Apr 2026 12:18:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ktzzang0601</managingEditor>
    <item>
      <title>AKS GPU Sharing에 관한 고찰</title>
      <link>https://ktzzang0601.tistory.com/46</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 개요&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Azure에서 GPU를 활용하기 위해서는 기본적으로 VM 1대에 GPU 1개를 매칭하여 사용하며, 하나의 GPU를 여러대의 VM이 사용할 수 없다.&lt;/li&gt;
&lt;li&gt;다만, 컨테이너 환경에서는 GPU 자원을 쉐어링 할 수 있는데, AKS에서 GPU 사용 요건과 사용 방식에 대해 알아 보자.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. AKS에서 GPU 활용 조건&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GPU 지원 VM 노드풀 사용&lt;/li&gt;
&lt;li&gt;NVIDIA Device Plugin for Kubernetes&lt;br /&gt;- 쿠버네티스에서 GPU 리소스를 스케줄링하려면 반드시 nvidia-device-plugin DaemonSet을 배포해야 함.&lt;br /&gt;- 이 플러그인이 GPU 리소스를 nvidia.com/gpu라는 형태로 노출시켜, Pod이 요청할 수 있도록 해줌&lt;/li&gt;
&lt;li&gt;NVIDIA 드라이버 및 CUDA 라이브러리 &lt;br /&gt;- GPU 노드풀에는 NVIDIA 드라이버가 설치되어야 하며, CUDA/cuDNN 버전은 컨테이너 이미지 내부와 호환되어야 함.&lt;br /&gt;- 즉, &lt;b&gt;컨테이너 내부 CUDA 버전과 VM에 설치된 드라이버 버전이 호환&lt;/b&gt;되어야 여러 컨테이너에서 GPU 활용이 가능 &lt;br /&gt;- AKS는 &lt;a data-end=&quot;923&quot; data-start=&quot;828&quot;&gt;NVIDIA GPU Operator&lt;span aria-hidden=&quot;true&quot;&gt;&lt;/span&gt;&lt;/a&gt; 또는 VM 확장 기능을 통해 자동 설치 가능.&lt;/li&gt;
&lt;li&gt;QoS 설정은 반드시 Guaranteed(requests == limits).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;3. 하드웨어적 Sharing 기법 - Multi Instance GPU(MIG)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;NVIDIA Multi-Instance GPU(MIG)는 최신 NVIDIA GPU(A100, H100 등)에서 제공하는 하드웨어 기반 가상화 기술입니다. MIG는 단일 물리 GPU를 최대 7개의 완전 격리된 독립 GPU 인스턴스로 분할할 수 있습니다. 각 인스턴스는 자체 메모리, 컴퓨팅 코어, 캐시를 포함하며, 서로 간의 작업 간섭 없이 독립적으로 동작합니다. 이를 통해 여러 워크로드를 동시에 운영하면서도 예측 가능한 서비스 품질(QoS)을 보장할 수 있습니다. 또한, GPU 인스턴스 단위의 성능 모니터링과 관리가 가능해 GPU 자원의 효율적 배분과 안정성 확보에 탁월합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;MIG는 Ampere 이상(A100, A30)과 Hopper 이상(H100/H200 등)에서 지원됩니다. 드라이버 요구사항은 대략 A100/A30 = CUDA 11 / R450+, H100 = CUDA 12 / R525+&amp;nbsp;&lt;/li&gt;
&lt;li&gt;MIG는 한 개의 물리 GPU를 여러 개의 독립 인스턴스(MIG slice) 로 하드웨어 분할하는 기술임 따라서 같은 노드 안의 단일 GPU를 여러 Pod/컨테이너가 나눠 쓰게 해주지만, 여러 노드가 한 GPU를 공유하는 건 아님. NVIDIA 공식 가이드도 &amp;ldquo;단일 물리 GPU에서 여러 GPU 인스턴스가 병렬 실행&amp;rdquo;이라고 명시&lt;/li&gt;
&lt;li&gt;MIG 자원을 쿠버네티스에 노출하는 방식은 두 가지 전략 중 하나를 선택 &lt;br /&gt;- single: 모든 MIG 인스턴스를 nvidia.com/gpu 로 노출 &lt;br /&gt;- mixed: 프로파일별 자원명으로 노출(예: nvidia.com/mig-1g.5gb)&lt;/li&gt;
&lt;li&gt;AKS는 MIG 호환 VM 사이즈(예: A100 계열 NDv4, H100 Standard_NC40ads_H100_v5 등)로 MIG 노드풀을 만들 수 있고, 만들 때 GPU instance profile(예: MIG1g, MIG2g 등)을 지정합니다. 단, 적용한 profile은 노드풀 생성 후 변경 불가이고, Azure Linux 노드이미지에선 현재 미지원&lt;/li&gt;
&lt;li data-end=&quot;1218&quot; data-start=&quot;1154&quot;&gt;GPU는 limits에만 지정해도 되고, 그러면 request = limit 으로 간주되며 requests를 지정하려면 limits와 반드시 동일해야 함&lt;/li&gt;
&lt;li data-end=&quot;1218&quot; data-start=&quot;1154&quot;&gt;QOS 관점에서 GPU만 limits를 걸어도 CPU/메모리를 지정하지 않으면 BestEffort가 됩니다. 안정적인 스케줄/축출 회피가 필요하면 CPU/메모리도 requests=limits로 맞춰 Guaranteed를 권장&lt;/li&gt;
&lt;li data-end=&quot;1218&quot; data-start=&quot;1154&quot;&gt;GPU Operator를 쓰면 드라이버/디바이스 플러그인/GFD 등을 자동 배포하며 MIG Manager가 노드의 MIG 구성을 관리합니다. 다만 AKS에서는 MIG 프로파일은 노드풀 생성 시 고정(런타임 변경 불가) 제한이 있으니 설계 시에 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&lt;b&gt;4. 소프트웨어적 Shareing 기법 - &lt;span style=&quot;text-align: start;&quot;&gt;NVIDIA Multi-Process Service(MPS)&lt;/span&gt; &lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;NVIDIA Multi-Process Service(MPS)는 소프트웨어 레벨에서 여러 CUDA 프로세스를 동시에 실행시켜 GPU 이용률을 높이는 기술입니다. MPS는 단일 GPU 내에서 다중 프로세스의 작업을 병렬 처리할 수 있도록 하여 GPU의 자원 활용을 극대화하지만, 하드웨어 자원 격리 측면에서는 MIG에 비해 제한적입니다. 따라서 격리가 엄격히 요구되는 환경보다는 GPU 활용률 향상이 목표인 경우 적합하며, GPU idle 시간을 줄여 &lt;b&gt;효율 극대화&lt;/b&gt;, latency 줄일 수 있음 &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;다만, 하드웨어 자원 분리는 없기 때문에 (메모리&amp;middot;SM 등 격리 X, soft sharing임) &amp;nbsp;워크로드 간 간섭이 발생할 수 있어&amp;nbsp;안정성이 중요한 멀티 테넌트 환경에는 부적합&lt;/li&gt;
&lt;li&gt;MIG에 비해 Pod 및 워크로드 수의 제한이 없으며, 대부분 (Kepler 이후 Tesla, T4, V100 포함) GPU 사용이 가능한 VM에서 활용 가능함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 활용 방법&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1930&quot; data-start=&quot;1870&quot;&gt;&lt;b&gt;먼저 MIG로 GPU를 하드웨어 분할(&lt;/b&gt;예: A100 한 장을 1g.5gb &amp;times; 7로 쪼갬) 후&amp;nbsp;그 안에서 다시 &lt;b&gt;MPS를 켜면, 해당 MIG slice를 여러 프로세스가 소프트웨어 레벨로 공유&lt;/b&gt;할 수 있음&lt;/li&gt;
&lt;li data-end=&quot;1930&quot; data-start=&quot;1870&quot;&gt;즉 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;GPU를&amp;nbsp;다중&amp;nbsp;사용자&amp;nbsp;또는&amp;nbsp;다중&amp;nbsp;워크로드&amp;nbsp;환경에서&amp;nbsp;효율적으로&amp;nbsp;운영하기&amp;nbsp;위해서는&amp;nbsp;하드웨어&amp;nbsp;기반의&amp;nbsp;MIG,&amp;nbsp;소프트웨어&amp;nbsp;병렬&amp;nbsp;처리용&amp;nbsp;MPS,&amp;nbsp;그리고&amp;nbsp;Kubernetes&amp;nbsp;자원&amp;nbsp;정책을&amp;nbsp;함께&amp;nbsp;고려하는&amp;nbsp;통합적&amp;nbsp;접근이&amp;nbsp;필수&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1930&quot; data-start=&quot;1870&quot;&gt;(참고) &lt;b&gt;Time‑slicing&lt;/b&gt;: 디바이스 플러그인 옵션으로 &lt;b&gt;시간 분할 공유&lt;/b&gt;(오버서브스크립션) 가능. MIG 프로파일 자원에도 적용 가능. 격리는 MIG보다 약하지만 활용도는 높음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. 참고 문서&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GPU VM이란?&amp;nbsp;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/databox-online/azure-stack-edge-gpu-overview-gpu-virtual-machines#gpu-vm-deployment&quot;&gt;https://learn.microsoft.com/ko-kr/azure/databox-online/azure-stack-edge-gpu-overview-gpu-virtual-machines#gpu-vm-deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPU 공유 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/databox-online/azure-stack-edge-gpu-sharing&quot;&gt;https://learn.microsoft.com/ko-kr/azure/databox-online/azure-stack-edge-gpu-sharing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GPU 마이그레이션 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/virtual-machines/migration/sizes/n-series-migration&quot;&gt;https://learn.microsoft.com/ko-kr/azure/virtual-machines/migration/sizes/n-series-migration&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/46</guid>
      <comments>https://ktzzang0601.tistory.com/46#entry46comment</comments>
      <pubDate>Tue, 26 Aug 2025 01:05:08 +0900</pubDate>
    </item>
    <item>
      <title>AKS 장애 대응 - Node Not Ready, POD Pending 등 이슈 원인 파악 및 해결 방안</title>
      <link>https://ktzzang0601.tistory.com/45</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 개요&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AKS는 작업자 노드의 상태를 지속적으로 모니터링하고 비정상상태가 되면 노드를 자동 복구하며 두 가지 이중화된 방법으로 상태를 체크합니다..&lt;/li&gt;
&lt;li&gt;status 업데이트: kubelet이 주기적으로 Node의 리소스 상태를 API 서버에 업데이트&lt;/li&gt;
&lt;li&gt;Lease 객체: kubelet이 10초마다 Lease 객체를 갱&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 자동 복구 방법&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AKS가 5분 이상 비정상으로 유지되는 노드를 식별하는 경우 다음 작업을 수행&lt;br /&gt;- AKS가 노드를 다시 부팅&lt;br /&gt;- 부팅 후 노드가 비정상이라면 AKS는 노드를 이미지로 다시 설치&lt;br /&gt;- 이미지 설치 후 노드가 비정상이고 Linux 노드인 경우 AKS가 노드를 다시 배포&lt;br /&gt;- 위 과정은 최대 3회 다시 시도&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 자동 복구가 수행되지 않는 경우&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;네트워크 구성 오류로 노드 상태가 들어오지 않을 때&lt;/li&gt;
&lt;li&gt;노드가 처음에 정상 노드로 등록하지 못한 경우&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;노드에 다음 taint중 하나가 있는 경우&lt;/span&gt; : node.cloudprovider.kubernetes.io/shutdownToBeDeletedByClusterAutoscaler&lt;/li&gt;
&lt;li&gt;노드가 업그레이드 중인 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;Node Not Ready 원인 및 대응 방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상황 : &lt;br /&gt;- kubectl get nodes 에 NotReady 표기&lt;br /&gt;- kubectl describe node 의 Conditions에서 Ready=False, NetworkUnavailable=True, MemoryPressure=True, DiskPressure=True, PIDPressure=True 등 확인&lt;/li&gt;
&lt;li&gt;원인 및 대응 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 17px;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;A. kubelet/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;컨테이너&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;런타임&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;장애&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;ssh&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;를&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;통해&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;해당&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;node&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;접속&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어들을&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;이용해&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;kubelet,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;컨테이너&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;런타임&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;장애여부&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;확인&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;journalctl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-u&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;kubelet&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;--no-pager&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;journalctl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-u&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;containerd&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;200&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;--no-pager&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;kubelet&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;containerd&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;컨테이너&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;런타임&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;프로세스&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;재시작&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;restart&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;containerd&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;kubelet&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;B.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;부족&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;kubectl describe node&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;의&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Pressure=True&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;확인&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Memory/PID Pressure:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;과소요&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;파드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;제한&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스쿼터&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;도입&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;문제&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;파드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;축출&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;필요&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;시&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드풀&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;스케일아웃&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;DiskPressure:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;이미지&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;컨테이너&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;정리&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;sudo crictl images&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;sudo crictl rmi --prune&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;sudo du -sh /var/lib/containerd/* /var/lib/kubelet/* 2&amp;gt;/dev/null&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;br /&gt;C.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;네트워크&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/CNI&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;문제&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;NetworkUnavailable=True, kubelet&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;이&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;API&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;서버로&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Heartbeat&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;실패&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;(CoreDNS, konnectivity&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;예시&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;를&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;이용해&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;장애&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;여부&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;확인&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;kube-system&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pods&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-l&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;k8s-app=kube-dns&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;kube-system&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pods&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;grep&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;konnectivity&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;CNI/&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;시스템&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;파드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;재시작&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;재부팅&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;교체&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, UDR/NSG&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;변경&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;여부&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;점검&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;D.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;시간&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;동기화&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;인증&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;토큰&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;문제&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;시간이&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;크게&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;틀어진&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;경우&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;API&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;인증&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;실패&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;가능성이&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;존재&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, node&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;접속&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;후&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어를&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;이용해&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;시간&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;확인&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;timedatectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;status&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;NTP&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;동기화&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;복구&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, kubelet&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;재시작&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;E.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드가&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;cordon/drain&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;상태로&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;방치&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;NotReady,SchedulingDisabled&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;또는&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;kubectl get nodes&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;SchedulingDisabled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어를&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;통해&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;node&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;를&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;uncordon&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;으로&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;설정&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;혹은&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;필요시&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;drain&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;uncordon&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;NOD&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;drain&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;NOD&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;--ignore-daemonsets&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;--delete-emptydir-data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;5. &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;POD Pending 원인 및 대응 방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상황 :&amp;nbsp;&lt;br /&gt;-&lt;span style=&quot;font-size: 15px;&quot;&gt; 스케줄러가&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;아직&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;파드를&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;어떤&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;노드에도&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;배치하지&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;못한&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;상태. (이미&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;스케줄된&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;뒤&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;컨테이너&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;풀/이미지&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;문제는&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;보통&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;ContainerCreating/ImagePullBackOff&lt;/span&gt;로&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;보입니다.) &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;A. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;부족&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어로&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;부족&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;확인&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;describe&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pod&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;진단&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;결과에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;따른&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;대응&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;스케일&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아웃&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;풀&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;증가&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;요청&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;조정&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;: requests/limits &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;현실화&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;우선순위&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;검토&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;pod &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;제한&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;(kubelet&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;의&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; maxPods)&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;걸리면&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;타임&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;설정&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;변경&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;B. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;스케줄링&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;제약&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;불일치&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;nodeSelector/nodeAffinity/topologySpreadConstraints/podAntiAffinity&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;현실과&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;안&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;맞음&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;또는&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; taint/toleration &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;미스매치&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어로&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;진단&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;describe&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pod&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;PO&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;sed&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;-n&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #009817;&quot;&gt;'/Events:/,$p'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;진단&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;결과에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;따른&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;대응&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;label/taint &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;정합성&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;수정&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;제약&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;완화&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;또는&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;노드풀에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;해당&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;특성&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;라벨&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;부여&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;증설&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;C. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;스토리지&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;대기&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;(PVC Pending)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;1.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;파드가&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; Pending, PVC&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; Bound&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;되지&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;않음&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;명령어로&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;진단&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pvc&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #f9fafb;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #3973e1;&quot;&gt;kubectl&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;describe&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;pvc&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #bb5c00;&quot;&gt;PV&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;C&lt;/span&gt;&lt;span style=&quot;color: #e40021;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;진단&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;결과에&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;따른&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;대응&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;StorageClass &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;오타&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;존&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;불일치&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;용량&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;, I/O &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;제한&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;디스크&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;/SCI &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;문제&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;&lt;span&gt;o&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;리소스&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;쿼터&lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #1c1d1f;&quot;&gt;부족&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;6. Pod Pending 해결 방안 풀이&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;AKS&amp;nbsp;클러스터&amp;nbsp;내에서&amp;nbsp;Pod가&amp;nbsp;Pending&amp;nbsp;상태가&amp;nbsp;되는&amp;nbsp;것은&amp;nbsp;일반적으로&amp;nbsp;스케줄러가&amp;nbsp;해당&amp;nbsp;Pod를&amp;nbsp;적절한&amp;nbsp;노드에&amp;nbsp;할당하지&amp;nbsp;못하는&amp;nbsp;것을&amp;nbsp;의미&lt;/b&gt;합니다.&amp;nbsp;특히&amp;nbsp;노드가&amp;nbsp;준비되지&amp;nbsp;않은&amp;nbsp;상태일&amp;nbsp;때,&amp;nbsp;Pod&amp;nbsp;Pending이&amp;nbsp;자주&amp;nbsp;발생하는데,&amp;nbsp;이는&amp;nbsp;클러스터&amp;nbsp;운영에&amp;nbsp;심각한&amp;nbsp;영향을&amp;nbsp;줄&amp;nbsp;수&amp;nbsp;있으므로&amp;nbsp;원인&amp;nbsp;분석과&amp;nbsp;신속한&amp;nbsp;대응이&amp;nbsp;필요합니다.&lt;/li&gt;
&lt;li&gt;첫째, &lt;b&gt;노드 자체가 정상적으로 준비되지 않아서 스케줄러가 Pod를 할당하지 못하는 경우&lt;/b&gt;입니다. 이때 노드가 `NotReady` 상태이거나, 클러스터 노드 그룹에서 노드 생성 지연, OS 또는 에이전트 문제 등으로 초기화가 완료되지 않은 상황일 수 있습니다. 이에 대한 대응으로는 해당 노드의 상태를 `kubectl get nodes` 등으로 확인하고, AKS 노드 풀 상태를 모니터링하며 필요하면 노드를 재시작하거나, 문제가 지속 시 노드 풀을 재구성하거나 교체하는 조치가 필요합니다.&lt;/li&gt;
&lt;li&gt;둘째, &lt;b&gt;리소스 부족 문제&lt;/b&gt;입니다. 클러스터 내 가용 노드가 있지만, CPU, 메모리, GPU 등 자원 부족으로 인해 스케줄링이 불가능하여 Pod가 Pending 상태에 머무는 경우입니다. 특히 제한된 리소스를 가진 노드 풀에서 고리소스 요구 Pod가 다수 배포될 때 흔하게 발생합니다. 대응 방법으로는 리소스 요청(Request)과 제한(Limit)을 적절히 설계하고, 필요 시 노드 풀에 노드를 추가하거나 HPA(Horizontal Pod Autoscaler), Cluster Autoscaler를 활용해 클러스터 확장 정책을 적용하는 것이 효과적입니다.&lt;/li&gt;
&lt;li&gt;셋째, 스케줄링 제약 조건(Scheduling Constraints)으로 인해 노드에 Pod가 할당되지 못하는 경우입니다. 예를 들어, Pod에 설정된 노드 셀렉터(NodeSelector), 노드 친화성(Node Affinity), taint 및 toleration 정책과 같은 배치 제한 조건들이 노드와 맞지 않으면 스케줄러가 매칭을 못해 Pending 상태가 됩니다. 이 경우 Pod 및 노드의 라벨(Label), taint, toleration 설정을 점검하고 불필요하거나 잘못된 제약 조건을 제거하거나 수정해야 합니다.&lt;/li&gt;
&lt;li&gt;넷째, &lt;b&gt;네트워크 또는 스토리지 등의 외부 종속성 문제로 인해 Pod가 정상적으로 스케줄링되지 못하는 경우&lt;/b&gt;입니다. 예를 들어, Azure Disk, Azure Files와 같이 외부 볼륨 프로비저닝이 지연되거나 실패하면 Pod가 Pending 상태에 머무르게 됩니다. 이런 상황에선 PersistentVolume, PersistentVolumeClaim 상태를 점검하고, 적절한 스토리지 클래스와 프로비저닝 정책을 확인하는 것이 필요합니다.&lt;/li&gt;
&lt;li&gt;마지막으로, &lt;b&gt;클러스터 구성 또는 제어 평면(Control Plane) 문제로 노드 상태 갱신이 늦거나, API 서버와 노드 에이전트 간 통신 장애가 발생하는 경&lt;/b&gt;우도 있습니다. 이 경우에는 클러스터 상태 대시보드 확인, Azure 모니터링 로그 및 이벤트 분석, 필요한 경우 Azure 지원팀과 협력하여 문제 원인을 규명하고 해결해야 합니다.&lt;/li&gt;
&lt;li&gt;따라서, AKS에서 노드 준비 실패로 인한 Pod Pending 문제에 대응하기 위해서는 먼저 노드 상태 및 클러스터 리소스 현황을 정확히 파악하고, 스케줄링 제약 조건을 점검하며, 외부 종속성과 클러스터 상태까지 종합적으로 분석하는 체계적인 접근이 필요합니다. 이러한 과정을 통해 적절한 노드 재구성, 클러스터 확장, 배치 제약 완화, 외부 리소스 문제 해결 조치를 시행하여 안정적인 AKS 운영을 유지할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. 참고 문서&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #1b711d; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드 준비 안됨 현상&lt;/span&gt; &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/node-not-ready-basic-troubleshooting&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/node-not-ready-basic-troubleshooting&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #1b711d; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드 자동 복구&lt;/span&gt; &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/aks/node-auto-repair&quot;&gt;https://learn.microsoft.com/ko-kr/azure/aks/node-auto-repair&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #1b711d; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Pod 스케줄러 오류&lt;/span&gt; &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-pod-scheduler-errors&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-pod-scheduler-errors&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hjin9445s-organization.gitbook.io/archive/work/undefined/cds&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hjin9445s-organization.gitbook.io/archive/work/undefined/cds&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;reaction-37&quot; data-tistory-react-app=&quot;Reaction&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/45</guid>
      <comments>https://ktzzang0601.tistory.com/45#entry45comment</comments>
      <pubDate>Mon, 25 Aug 2025 22:58:56 +0900</pubDate>
    </item>
    <item>
      <title>AKS의 이슈상황 원인과 대응방안  + Pod Lifecycle</title>
      <link>https://ktzzang0601.tistory.com/44</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. POD FAILED 현상&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OOMKilled / Memory cgroup 초과&lt;/li&gt;
&lt;li&gt;Evicted(DiskPressure/EphemeralStorage/MemoryPressure)&lt;/li&gt;
&lt;li&gt;DeadlineExceeded (Job activeDeadlineSeconds 초과)&lt;/li&gt;
&lt;li&gt;Exit code &amp;ne; 0 (프로세스 조기 종료, entrypoint 오타, 권한 문제)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2. POD FAILED 해결 방안&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OOMKilled:   resources.requests/limits 합리화, 메모리 leak 점검, VPA/HPA 도입, GC/힙 옵션 조정&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Evicted: 노드 DiskPressure해소(이미지/컨테이너/워킹디렉 정리), ephemeral-storage requests/limits 및 emptyDir.sizeLimit 설정, 노드풀 디스크/사이즈 증설&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Job 실패: backoffLimit, activeDeadlineSeconds, 재시도 간격 재설계. 반복 실패면 InitContainer로 프리체크, 종속 서비스 준비(health/endpoint) 확인&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;Exit code &amp;ne; 0 : &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;권한&amp;middot;엔트리포인트: securityContext, command/args 검증, 실행 비사용자(shell) 문제 해결&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px; color: #ee2323;&quot;&gt;3. &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;BackOff 계열(CrashLoopBackOff, ImagePullBackOff, ErrImagePull 등등..)&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;a. 원인 : &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;어플리케이션 예외/의존 미준비/잘못된 CMD, liveness probe 오탐 등&lt;/span&gt; &lt;br /&gt;b. 대응방법 :&amp;nbsp;&lt;br /&gt;&amp;nbsp; - Startup, Readness, Liveness Probe 분리&lt;br /&gt;&amp;nbsp; - InitContainer로 의존 리소스(DB 등) 준비 확인&lt;br /&gt;&amp;nbsp; - 애플리케이션 종료 신호 처리(SIGTERM)와 graceful shutdown 구성&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;&lt;b&gt;ImagePullBackOff / ErrImagePull&lt;/b&gt;&lt;br /&gt;a. 원인 : &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;레지스트리 인증, 네트워크 혹은 이미지 태그 오타&lt;/span&gt; &lt;br /&gt;b. 대응방법 :&amp;nbsp;&lt;br /&gt;&amp;nbsp; - A&lt;/span&gt;&lt;/span&gt;CR 사용 시 AKS-ACR 연결(Managed Identity attach-acr), 또는 imagePullSecrets 설정&lt;br /&gt;&amp;nbsp; - 프록시/NSG/DNS 확인, 사설 레지스트리면 프라이빗 엔드포인트/방화벽 예외&lt;br /&gt;&amp;nbsp; - 태그 고정(immutable), imagePullPolicy: IfNotPresent 적절히 사용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;CreateContainerConfigError / CreateContainerError&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;a. &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;&amp;nbsp;pod pending과 동일한 대응을 통해 예방 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;4. (추가) &lt;/span&gt;Nodegroup Scale-in시 고려할 Pod Lifecycle 설정&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Scale-in 시 연결 드레이닝, 데이터 무결성 보장이 중요합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;핵심 체크리스트는 아래와 같습니다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px; background-color: #ffffff;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px; background-color: #ffffff; color: #1c1d1f;&quot;&gt;Pod Disruption Budget(PDB): 과도한 동시 축출 방지&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px; background-color: #ffffff; color: #1c1d1f;&quot;&gt;Copy&lt;br /&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;preStop hook + terminationGracePeriodSecondsCopy&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;br /&gt;&amp;nbsp; -&amp;gt; &lt;/span&gt;&lt;/span&gt;preStop에서 LB 등록 헤제/세션 종료/큐 flush&lt;br /&gt;&amp;nbsp; -&amp;gt; SIGTERM 후 readiness가 자동 false되지만, 어플리케이션 자체 graceful 필요&lt;/li&gt;
&lt;li&gt;readinessProbe 엄격화: 종료 직전 트래픽 유입 차단 속도를 높이고 정상 동작 중에만 Ready 유지&lt;/li&gt;
&lt;li&gt;PDB + HPA 조합: 축출 가능한 파드 수와 자동 확장 균형 맞추기&lt;/li&gt;
&lt;li&gt;safe-to-evict 어노테이션: 스케일인 시 지우면 안되는 파드에 다음과 같이 safe-to-evict 어노테이션 추가&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;빈약한 스테이트풀 방지: StatefulSet은 PodManagementPolicy=Parallel와 PodAntiAffinity로 분산, 스토리지는 RWO/PV 바인딩 존 일치.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;5. 참고 문서&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Kubernetes Service&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Pod &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스케줄러 오류 문제 해결 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-pod-scheduler-errors&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-pod-scheduler-errors&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;AKS &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클러스터에서 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;OOMKilled&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문제 해결 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-oomkilled-aks-clusters&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/troubleshoot-oomkilled-aks-clusters&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드 준비 안 됨 오류의 기본 문제 해결 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/node-not-ready-basic-troubleshooting&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/availability-performance/node-not-ready-basic-troubleshooting&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Pod&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CrashLoopBackOff&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모드 상태에 중단됨 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/create-upgrade-delete/pod-stuck-crashloopbackoff-mode&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/troubleshoot/azure/azure-kubernetes/create-upgrade-delete/pod-stuck-crashloopbackoff-mode&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hjin9445s-organization.gitbook.io/archive/work/undefined/cds&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hjin9445s-organization.gitbook.io/archive/work/undefined/cds&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 추가 검색 내용&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h1 data-end=&quot;224&quot; data-start=&quot;191&quot;&gt;① OOMKilled (메모리 초과로 프로세스 KILL)&lt;/h1&gt;
&lt;span&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;419&quot; data-start=&quot;233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;297&quot; data-start=&quot;233&quot;&gt;&lt;span&gt;컨테이너 memory.limit 초과 &amp;rarr; 커널 OOMKiller가 프로세스를 SIGKILL(137)로 종료.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;360&quot; data-start=&quot;298&quot;&gt;&lt;span&gt;애플리케이션 메모리 누수, JVM/Node/Go 등 런타임 힙/네이티브 메모리/DirectBuffer 과다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;419&quot; data-start=&quot;361&quot;&gt;&lt;span&gt;캐시/버퍼(파일 캐시)&amp;middot;tmpfs 사용 등도 cgroup 메모리 사용량에 포함되어 limit에 닿음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;진단&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;753&quot; data-start=&quot;428&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;507&quot; data-start=&quot;428&quot;&gt;&lt;span&gt;kubectl describe pod &amp;lt;pod&amp;gt;: Last State: Terminated, Reason: OOMKilled 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;559&quot; data-start=&quot;508&quot;&gt;&lt;span&gt;kubectl logs &amp;lt;pod&amp;gt; --previous로 직전 크래시 직전 로그 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;626&quot; data-start=&quot;560&quot;&gt;&lt;span&gt;메트릭: kubectl top pod, APM/프로파일러(Heap/Alloc 곡선이 지속 증가하면 누수 의심).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;753&quot; data-start=&quot;627&quot;&gt;&lt;span&gt;JVM은 -XX:+HeapDumpOnOutOfMemoryError로 덤프 확인, Node.js는 &amp;ndash;max-old-space-size와 heap snapshot, Go는 pprof(net/http/pprof) 등.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;해결/예방&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1712&quot; data-start=&quot;765&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1025&quot; data-start=&quot;765&quot;&gt;&lt;span&gt;&lt;b&gt;리소스 합리화&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;928&quot; data-start=&quot;783&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;876&quot; data-start=&quot;783&quot;&gt;&lt;span&gt;requests는 실제 95&lt;s&gt;99퍼센타일 사용량 근거로 잡고, limits는 requests의 1.2&lt;/s&gt;1.5배(메모리는 너무 타이트하게 잡지 않기).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;928&quot; data-start=&quot;879&quot;&gt;&lt;span&gt;메모리는 스로틀링이 없고 바로 OOM이므로 &lt;b&gt;충분한 헤드룸(20~30%)&lt;/b&gt; 확보.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1197&quot; data-start=&quot;1026&quot;&gt;&lt;span&gt;&lt;b&gt;VPA/HPA&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1197&quot; data-start=&quot;1044&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1104&quot; data-start=&quot;1044&quot;&gt;&lt;span&gt;HPA는 보통 CPU 중심(또는 외부 지표), 메모리는 변동/버스트가 크면 HPA 신호로 쓰기 위험.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1197&quot; data-start=&quot;1107&quot;&gt;&lt;span&gt;VPA는 최소 &lt;b&gt;추천(&amp;ldquo;Off&amp;rdquo; 모드)&lt;/b&gt; 으로 켜서 요청값을 주기적으로 조정. HPA와 동시에 &amp;ldquo;자동 적용&amp;rdquo;은 충돌 우려 &amp;rarr; 한쪽은 추천/관측용으로 운용.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1634&quot; data-start=&quot;1198&quot;&gt;&lt;span&gt;&lt;b&gt;런타임/GC 튜닝(언어별 핵심)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1634&quot; data-start=&quot;1226&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1421&quot; data-start=&quot;1226&quot;&gt;&lt;span&gt;&lt;b&gt;JVM&lt;/b&gt;: -XX:+UseContainerSupport(JDK 8u191+), -XX:MaxRAMPercentage=60 등으로 힙이 컨테이너 제한을 존중. -Xms/-Xmx를 limit보다 여유 있게. -XX:+ExitOnOutOfMemoryError로 조기 실패, -XX:MaxDirectMemorySize도 관리.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1493&quot; data-start=&quot;1424&quot;&gt;&lt;span&gt;&lt;b&gt;Node.js&lt;/b&gt;: --max-old-space-size=&amp;lt;MB&amp;gt; 지정(컨테이너 limit 기준 여유 있게).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1565&quot; data-start=&quot;1496&quot;&gt;&lt;span&gt;&lt;b&gt;Go&lt;/b&gt;: GOGC 조정(예: 100&amp;rarr;150), 메모리 재사용 패턴 점검, pprof로 hot path 추적.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1634&quot; data-start=&quot;1568&quot;&gt;&lt;span&gt;&lt;b&gt;Python&lt;/b&gt;: tracemalloc, MALLOC_ARENA_MAX=2 등으로 arena 폭주 억제.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1712&quot; data-start=&quot;1635&quot;&gt;&lt;span&gt;&lt;b&gt;코드 측면&lt;/b&gt;: 캐시 상한, large object 재분할, 스트리밍 처리, 연결/버퍼 누수, goroutine/쓰레드 누수 제거.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-end=&quot;1752&quot; data-start=&quot;1719&quot;&gt;② Evicted (노드 DiskPressure로 퇴거)&lt;/h1&gt;
&lt;span&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1922&quot; data-start=&quot;1761&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1861&quot; data-start=&quot;1761&quot;&gt;&lt;span&gt;노드의 nodefs(루트 디스크) 혹은 imagefs(컨테이너 레이어/이미지 디스크)가 임계치 이하로 남음 &amp;rarr; kubelet이 Eviction 정책에 따라 Pod 축출.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1922&quot; data-start=&quot;1862&quot;&gt;&lt;span&gt;주범: 컨테이너 로그 과다, emptyDir 무제한 사용, 이미지 누적, 워킹 디렉터리 대용량 쓰기.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;진단&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2206&quot; data-start=&quot;1931&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1998&quot; data-start=&quot;1931&quot;&gt;&lt;span&gt;kubectl describe pod &amp;lt;pod&amp;gt; 이벤트에 Evicted + DiskPressure 메시지.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2066&quot; data-start=&quot;1999&quot;&gt;&lt;span&gt;kubectl describe node &amp;lt;node&amp;gt;에서 Conditions: DiskPressure=True.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2206&quot; data-start=&quot;2067&quot;&gt;&lt;span&gt;노드 진입(예: kubectl debug node/&amp;lt;node&amp;gt; --image=nicolaka/netshoot) 후 /var/lib/containerd, /var/log/containers, /var/lib/kubelet 용량 확인.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;해결/예방 (우선순위순)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;3016&quot; data-start=&quot;2226&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;2335&quot; data-start=&quot;2226&quot;&gt;&lt;span&gt;&lt;b&gt;즉시 압력 해소&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2335&quot; data-start=&quot;2245&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2291&quot; data-start=&quot;2245&quot;&gt;&lt;span&gt;불필요 이미지/컨테이너/죽은 Pod 로그 정리(운영 표준 작업으로 스크립트화).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2335&quot; data-start=&quot;2295&quot;&gt;&lt;span&gt;로그 레벨 하향, 애플리케이션 로그 로테이션(파일에 쓸 경우) 적용.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;2651&quot; data-start=&quot;2336&quot;&gt;&lt;span&gt;&lt;b&gt;리소스 한도 명시&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2419&quot; data-start=&quot;2358&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2419&quot; data-start=&quot;2358&quot;&gt;&lt;span&gt;ephemeral-storage requests/limits로 컨테이너 임시 저장소 상한을 명확히:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2566&quot; data-start=&quot;2547&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2566&quot; data-start=&quot;2547&quot;&gt;&lt;span&gt;emptyDir 용량 제한:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;2849&quot; data-start=&quot;2652&quot;&gt;&lt;span&gt;&lt;b&gt;노드/런타임 레벨 설정&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2849&quot; data-start=&quot;2675&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2744&quot; data-start=&quot;2675&quot;&gt;&lt;span&gt;kubelet &lt;b&gt;eviction&lt;/b&gt; 임계값(기본값 유지 권장, 필요시 완화는 신중): 메모리/디스크 가용률 임계치.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2849&quot; data-start=&quot;2748&quot;&gt;&lt;span&gt;&lt;b&gt;컨테이너 로그 로테이션&lt;/b&gt;(kubelet):&lt;br /&gt;containerLogMaxSize, containerLogMaxFiles를 적정선으로(예: 10Mi, 5).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;3016&quot; data-start=&quot;2850&quot;&gt;&lt;span&gt;&lt;b&gt;용량 확장/구조 개선&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3016&quot; data-start=&quot;2872&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2921&quot; data-start=&quot;2872&quot;&gt;&lt;span&gt;노드풀 디스크/사이즈 증설(특히 /var/lib/containerd가 작을 때).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2977&quot; data-start=&quot;2925&quot;&gt;&lt;span&gt;이미지 다이어트(멀티스테이지, alpine/distroless, 불필요 레이어 제거).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3016&quot; data-start=&quot;2981&quot;&gt;&lt;span&gt;대용량 임시파일은 오브젝트 스토리지/외부 볼륨으로 오프로딩.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 data-end=&quot;3073&quot; data-start=&quot;3023&quot;&gt;③ Job 실패 (backoffLimit, activeDeadlineSeconds 등)&lt;/h1&gt;
&lt;span&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3186&quot; data-start=&quot;3082&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3133&quot; data-start=&quot;3082&quot;&gt;&lt;span&gt;작업 자체 실패(종속 서비스 준비 전 시작, 입력 데이터 불완전, 권한/네트워크 문제).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3186&quot; data-start=&quot;3134&quot;&gt;&lt;span&gt;재시도/시간 제한 정책이 워크로드 특성에 맞지 않음 &amp;rarr; 불필요한 반복 실패, 장시간 점유.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;진단&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3382&quot; data-start=&quot;3195&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3261&quot; data-start=&quot;3195&quot;&gt;&lt;span&gt;kubectl describe job &amp;lt;job&amp;gt;: .status.failed, conditions 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3335&quot; data-start=&quot;3262&quot;&gt;&lt;span&gt;kubectl get pods -l job-name=&amp;lt;job&amp;gt; -o wide + 실패한 Pod 로그/exit code 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3382&quot; data-start=&quot;3336&quot;&gt;&lt;span&gt;실패 패턴(즉시 실패 vs 오래 걸리다 timeout vs 간헐 성공)을 분리.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;해결/설계 팁&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4213&quot; data-start=&quot;3396&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3597&quot; data-start=&quot;3396&quot;&gt;&lt;span&gt;&lt;b&gt;재시도/시간 제한 재설계&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3834&quot; data-start=&quot;3598&quot;&gt;&lt;span&gt;&lt;b&gt;종속성 프리체크(InitContainer)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3666&quot; data-start=&quot;3630&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3666&quot; data-start=&quot;3630&quot;&gt;&lt;span&gt;DB/큐/HTTP 엔드포인트 준비 확인 후 본 컨테이너 실행:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;3919&quot; data-start=&quot;3835&quot;&gt;&lt;span&gt;&lt;b&gt;PodFailurePolicy(고급)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3919&quot; data-start=&quot;3866&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3919&quot; data-start=&quot;3866&quot;&gt;&lt;span&gt;특정 exit code는 즉시 실패로 간주하거나 재시도 제외 등 세밀 제어(지원 버전에서).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;3997&quot; data-start=&quot;3920&quot;&gt;&lt;span&gt;&lt;b&gt;Idempotency &amp;amp; 체크포인트&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3997&quot; data-start=&quot;3950&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3997&quot; data-start=&quot;3950&quot;&gt;&lt;span&gt;같은 입력 재처리에도 안전하도록 설계, 중간 산출물은 외부 스토리지에 체크포인트.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;4098&quot; data-start=&quot;3998&quot;&gt;&lt;span&gt;&lt;b&gt;리소스/네트워크&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4098&quot; data-start=&quot;4017&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4053&quot; data-start=&quot;4017&quot;&gt;&lt;span&gt;Job이 CPU/메모리/IO 부족으로 지연되면 요청 상향.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4098&quot; data-start=&quot;4056&quot;&gt;&lt;span&gt;대량 출력은 PVC/오브젝트 스토리지 사용, stdout 과다로그 금지.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;4213&quot; data-start=&quot;4099&quot;&gt;&lt;span&gt;&lt;b&gt;스케줄링&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4213&quot; data-start=&quot;4114&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4161&quot; data-start=&quot;4114&quot;&gt;&lt;span&gt;많은 Job 동시 제출 시 parallelism 제한, 큐잉 시스템 도입.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4213&quot; data-start=&quot;4164&quot;&gt;&lt;span&gt;&lt;b&gt;startingDeadlineSeconds&lt;/b&gt;(CronJob)로 지연 시작 방지.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-end=&quot;4255&quot; data-start=&quot;4220&quot;&gt;④ Exit code &amp;ne; 0 (권한/엔트리포인트/커맨드 등)&lt;/h1&gt;
&lt;span&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4448&quot; data-start=&quot;4264&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4361&quot; data-start=&quot;4264&quot;&gt;&lt;span&gt;실행 파일 권한/소유자 문제, 잘못된 엔트리포인트/인자, 셸 기능 필요하지만 sh -c 없이 실행, 잘못된 아키텍처 이미지, shebang 누락&amp;middot;CRLF 라인엔딩 등.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4418&quot; data-start=&quot;4362&quot;&gt;&lt;span&gt;securityContext로 &lt;b&gt;비루트&lt;/b&gt; 사용자 실행 시, 파일/포트/디렉터리 권한 미흡.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4448&quot; data-start=&quot;4419&quot;&gt;&lt;span&gt;마운트한 볼륨이 바이너리를 가려버리는 경로 충돌.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;진단&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4700&quot; data-start=&quot;4457&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4562&quot; data-start=&quot;4457&quot;&gt;&lt;span&gt;Pod 로그의 에러 메시지 + 종료 코드 표:&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4562&quot; data-start=&quot;4487&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4562&quot; data-start=&quot;4487&quot;&gt;&lt;span&gt;126 실행 권한/실행 불가, 127 명령 없음, 137 OOM/SIGKILL, 139 세그폴트, 1 일반 에러.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;4636&quot; data-start=&quot;4563&quot;&gt;&lt;span&gt;kubectl exec로 컨테이너 진입 &amp;rarr; ls -l, file ./app, ldd ./app, 권한/의존 확인.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4700&quot; data-start=&quot;4637&quot;&gt;&lt;span&gt;kubectl describe pod의 command/args, securityContext 확인.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;해결/예방&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5413&quot; data-start=&quot;4712&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4853&quot; data-start=&quot;4712&quot;&gt;&lt;span&gt;&lt;b&gt;엔트리포인트/인자 검증&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4853&quot; data-start=&quot;4808&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4853&quot; data-start=&quot;4808&quot;&gt;&lt;span&gt;스크립트는 #!/bin/sh + chmod +x + LF 줄바꿈 유지.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;5223&quot; data-start=&quot;4854&quot;&gt;&lt;span&gt;&lt;b&gt;securityContext 정렬&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5115&quot; data-start=&quot;5049&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5115&quot; data-start=&quot;5049&quot;&gt;&lt;span&gt;애플리케이션이 쓰기 필요한 경로(/tmp, /app/data 등)는 &lt;b&gt;writable&lt;/b&gt; 볼륨으로 마운트:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;5344&quot; data-start=&quot;5224&quot;&gt;&lt;span&gt;&lt;b&gt;아키텍처/의존성&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5344&quot; data-start=&quot;5241&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5303&quot; data-start=&quot;5241&quot;&gt;&lt;span&gt;ARM 노드에 amd64 이미지(또는 반대)면 exec format error &amp;rarr; 멀티아키 이미지 사용.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;5344&quot; data-start=&quot;5306&quot;&gt;&lt;span&gt;네이티브 라이브러리 의존(예: glibc vs musl) 맞추기.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;5413&quot; data-start=&quot;5345&quot;&gt;&lt;span&gt;&lt;b&gt;경로 충돌 방지&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5413&quot; data-start=&quot;5362&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5413&quot; data-start=&quot;5362&quot;&gt;&lt;span&gt;volumeMount가 /app을 덮어 이미지 내 바이너리를 가리지 않는지 확인.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h1 data-end=&quot;235&quot; data-start=&quot;215&quot;&gt;① CrashLoopBackOff&lt;/h1&gt;
&lt;span&gt;컨테이너가 시작하자마자 비정상 종료(exit&amp;ne;0) &amp;rarr; kubelet이 &lt;b&gt;지수적 back-off&lt;/b&gt;(수초&amp;rarr;수분 상한)로 재시도하는 상태.&lt;/span&gt;&lt;br /&gt;
&lt;h2 data-end=&quot;322&quot; data-start=&quot;314&quot; data-ke-size=&quot;size26&quot;&gt;주된 원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;521&quot; data-start=&quot;323&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;375&quot; data-start=&quot;323&quot;&gt;&lt;span&gt;앱 예외/환경 값 누락/잘못된 command / args/엔트리포인트 스크립트 오류&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;426&quot; data-start=&quot;376&quot;&gt;&lt;span&gt;의존 서비스(DB, MQ, API) &lt;b&gt;준비 전&lt;/b&gt; 시작 &amp;rarr; 초기화 실패 후 즉시 종료&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;472&quot; data-start=&quot;427&quot;&gt;&lt;span&gt;livenessProbe 오탐(초기 기동이 긴 서비스인데 너무 이른 검사)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;521&quot; data-start=&quot;473&quot;&gt;&lt;span&gt;종료 시그널(SIGTERM) 미처리 &amp;rarr; 다음 기동에서 락/캐시/포트 충돌로 재크래시&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;532&quot; data-start=&quot;523&quot; data-ke-size=&quot;size26&quot;&gt;진단 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;802&quot; data-start=&quot;533&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;607&quot; data-start=&quot;533&quot;&gt;&lt;span&gt;kubectl describe pod &amp;lt;pod&amp;gt; 이벤트: Back-off restarting failed container&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;667&quot; data-start=&quot;608&quot;&gt;&lt;span&gt;직전 크래시 로그: kubectl logs &amp;lt;pod&amp;gt; -c &amp;lt;container&amp;gt; --previous&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;724&quot; data-start=&quot;668&quot;&gt;&lt;span&gt;종료 코드/시그널: Last State: Terminated (ExitCode, Reason)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;802&quot; data-start=&quot;725&quot;&gt;&lt;span&gt;프로브 실패 이력: describe 이벤트에 Liveness probe failed / Readiness probe failed&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;812&quot; data-start=&quot;804&quot; data-ke-size=&quot;size26&quot;&gt;해결/예방&lt;/h2&gt;
&lt;span&gt;&lt;b&gt;A. 프로브 분리/튜닝&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1363&quot; data-start=&quot;1254&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1317&quot; data-start=&quot;1254&quot;&gt;&lt;span&gt;startupProbe 통과 전에는 livenessProbe가 &lt;b&gt;동작하지 않음&lt;/b&gt;(초기 오탐 방지).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1363&quot; data-start=&quot;1318&quot;&gt;&lt;span&gt;readiness는 트래픽 유입 제어, liveness는 진짜 장애만 재시작.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;B. 의존성 프리체크(InitContainer)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;C. 정상 종료/그레이스풀 셧다운&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1752&quot; data-start=&quot;1701&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1752&quot; data-start=&quot;1701&quot;&gt;&lt;span&gt;앱이 &lt;b&gt;SIGTERM&lt;/b&gt; 수신 시 커넥션 종료, 워커 중단, 임시파일 정리하도록 구현.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;D. 커맨드/엔트리포인트 가드&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;E. 기타&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2087&quot; data-start=&quot;1926&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1981&quot; data-start=&quot;1926&quot;&gt;&lt;span&gt;컨테이너가 &lt;b&gt;너무 빨리 죽는 경우&lt;/b&gt; 재현을 위해 liveness 임시 비활성화 후 원인 파악&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2020&quot; data-start=&quot;1982&quot;&gt;&lt;span&gt;로그/메트릭 수집기(APM, 프로파일러)로 초기화 경로 예외 포착&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2087&quot; data-start=&quot;2021&quot;&gt;&lt;span&gt;Job성 작업이면 Deployment 대신 &lt;b&gt;Job + backoffLimit&lt;/b&gt; 사용(잘못된 재시작 루프 방지)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-end=&quot;2129&quot; data-start=&quot;2094&quot;&gt;② ImagePullBackOff / ErrImagePull&lt;/h1&gt;
&lt;span&gt;이미지 풀 실패. ErrImagePull은 즉시 오류, 그 다음부터 &lt;b&gt;back-off&lt;/b&gt;로 재시도하며 ImagePullBackOff.&lt;/span&gt;&lt;br /&gt;
&lt;h2 data-end=&quot;2219&quot; data-start=&quot;2211&quot; data-ke-size=&quot;size26&quot;&gt;주된 원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2366&quot; data-start=&quot;2220&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2253&quot; data-start=&quot;2220&quot;&gt;&lt;span&gt;&lt;b&gt;인증 실패&lt;/b&gt;(프라이빗 레지스트리/ACR 권한 없음)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2307&quot; data-start=&quot;2254&quot;&gt;&lt;span&gt;네트워크/DNS/프록시/방화벽(ACR Private Endpoint/DNS 설정 누락 포함)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2340&quot; data-start=&quot;2308&quot;&gt;&lt;span&gt;이미지 참조 오류(리포지토리/태그 오타, 삭제된 태그)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2366&quot; data-start=&quot;2341&quot;&gt;&lt;span&gt;Docker Hub 레이트 리밋/미러 필요&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;2377&quot; data-start=&quot;2368&quot; data-ke-size=&quot;size26&quot;&gt;진단 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2674&quot; data-start=&quot;2378&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2527&quot; data-start=&quot;2378&quot;&gt;&lt;span&gt;kubectl describe pod 이벤트의 &lt;b&gt;정확한 에러 메시지&lt;/b&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2527&quot; data-start=&quot;2426&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2467&quot; data-start=&quot;2426&quot;&gt;&lt;span&gt;unauthorized: authentication required&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2490&quot; data-start=&quot;2470&quot;&gt;&lt;span&gt;manifest unknown&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2527&quot; data-start=&quot;2493&quot;&gt;&lt;span&gt;dial tcp ... i/o timeout(네트워크)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;2598&quot; data-start=&quot;2528&quot;&gt;&lt;span&gt;서비스어카운트에 연결된 imagePullSecrets 유효성:&lt;br /&gt;kubectl get sa &amp;lt;sa&amp;gt; -o yaml&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2674&quot; data-start=&quot;2599&quot;&gt;&lt;span&gt;레지스트리 FQDN DNS/443 연결성: 디버그 파드에서 nslookup, curl -I https://&amp;lt;registry&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;2684&quot; data-start=&quot;2676&quot; data-ke-size=&quot;size26&quot;&gt;해결/예방&lt;/h2&gt;
&lt;span&gt;&lt;b&gt;A. 인증 구성&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2886&quot; data-start=&quot;2698&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2860&quot; data-start=&quot;2698&quot;&gt;&lt;span&gt;&lt;b&gt;AKS &amp;harr; ACR(Managed Identity)&lt;/b&gt;&lt;br /&gt;AKS 클러스터 MI에 ACR AcrPull 권한을 부여(예: --attach-acr).&lt;br /&gt;운영 점검 포인트: 클러스터(혹은 노드풀) MI의 &lt;b&gt;AcrPull 역할 바인딩&lt;/b&gt;과 ACR 방화벽/네트워크 규칙.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2886&quot; data-start=&quot;2861&quot;&gt;&lt;span&gt;&lt;b&gt;이미지 풀 시크릿&lt;/b&gt;(기타 레지스트리)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;B. 네트워크/DNS&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3345&quot; data-start=&quot;3143&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3201&quot; data-start=&quot;3143&quot;&gt;&lt;span&gt;프록시 환경이면 &lt;b&gt;노드(컨테이너 런타임)&lt;/b&gt; 에 프록시 설정 필요(파드 내부 프록시 설정과 별개).&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3345&quot; data-start=&quot;3202&quot;&gt;&lt;span&gt;ACR Private Endpoint 사용 시:&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3345&quot; data-start=&quot;3233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3303&quot; data-start=&quot;3233&quot;&gt;&lt;span&gt;노드 VNet에 privatelink.azurecr.io(및 데이터/토큰 FQDN)용 &lt;b&gt;Private DNS&lt;/b&gt; 링크&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3345&quot; data-start=&quot;3306&quot;&gt;&lt;span&gt;NSG/방화벽에서 443 허용, 라우팅이 사설 IP로 향하는지 확인&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;C. 이미지 참조 안정화&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3430&quot; data-start=&quot;3365&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3430&quot; data-start=&quot;3365&quot;&gt;&lt;span&gt;latest 지양, &lt;b&gt;태그 고정 + 불변(tag immutability)&lt;/b&gt; 또는 &lt;b&gt;digest 고정&lt;/b&gt;:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3571&quot; data-start=&quot;3537&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3571&quot; data-start=&quot;3537&quot;&gt;&lt;span&gt;Docker Hub는 조직 계정/미러/캐시 레지스트리 검토&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;D. 빠른 확인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3689&quot; data-start=&quot;3586&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3633&quot; data-start=&quot;3586&quot;&gt;&lt;span&gt;같은 네임스페이스에서 &lt;b&gt;작은 테스트 파드&lt;/b&gt;로 pull 시도해 에러 메시지 비교&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3689&quot; data-start=&quot;3634&quot;&gt;&lt;span&gt;이벤트 나열: kubectl get events --sort-by=.lastTimestamp&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-end=&quot;3749&quot; data-start=&quot;3696&quot;&gt;③ CreateContainerConfigError / CreateContainerError&lt;/h1&gt;
&lt;span&gt;스케줄링은 됐는데 &lt;b&gt;컨테이너 생성 단계&lt;/b&gt;에서 실패.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3940&quot; data-start=&quot;3782&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3857&quot; data-start=&quot;3782&quot;&gt;&lt;span&gt;&lt;b&gt;CreateContainerConfigError&lt;/b&gt;: 컨테이너 &lt;b&gt;설정&lt;/b&gt;이 잘못됨(볼륨/CM/Secret/환경 참조 오류 등)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;3940&quot; data-start=&quot;3858&quot;&gt;&lt;span&gt;&lt;b&gt;CreateContainerError&lt;/b&gt;: 런타임가 컨테이너 &lt;b&gt;생성 자체&lt;/b&gt;를 실패(OCI runtime, 보안 프로필, 마운트 문제 등)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;3950&quot; data-start=&quot;3942&quot; data-ke-size=&quot;size26&quot;&gt;주된 원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4245&quot; data-start=&quot;3951&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4011&quot; data-start=&quot;3951&quot;&gt;&lt;span&gt;존재하지 않는 &lt;b&gt;ConfigMap/Secret/PVC&lt;/b&gt; 참조(이름 오타/네임스페이스 불일치/키 누락)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4073&quot; data-start=&quot;4012&quot;&gt;&lt;span&gt;volumeMounts &amp;harr; volumes 불일치, subPath 대상이 파일/디렉터리와 안 맞음&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4141&quot; data-start=&quot;4074&quot;&gt;&lt;span&gt;PodSecurity(Restricted)/Seccomp/AppArmor/Capabilities 정책으로 &lt;b&gt;거부&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4204&quot; data-start=&quot;4142&quot;&gt;&lt;span&gt;읽기 전용 루트(readOnlyRootFilesystem: true)인데 앱이 /tmp 등 쓰기 시도&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4245&quot; data-start=&quot;4205&quot;&gt;&lt;span&gt;잘못된 UID/GID로 권한 부족, 또는 존재하지 않는 사용자로 실행&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;4256&quot; data-start=&quot;4247&quot; data-ke-size=&quot;size26&quot;&gt;진단 포인트&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4648&quot; data-start=&quot;4257&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4467&quot; data-start=&quot;4257&quot;&gt;&lt;span&gt;kubectl describe pod 이벤트의 상세 메시지:&lt;br /&gt;예) configmap &quot;app-cm&quot; not found, secret key &quot;password&quot; not found,&lt;br /&gt;MountVolume.SetUp failed, Error: container has runAsNonRoot and image has non-numeric user&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4588&quot; data-start=&quot;4468&quot;&gt;&lt;span&gt;리소스 존재 확인:&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4588&quot; data-start=&quot;4483&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4527&quot; data-start=&quot;4483&quot;&gt;&lt;span&gt;kubectl get cm/secret/pvc &amp;lt;name&amp;gt; -n &amp;lt;ns&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;4588&quot; data-start=&quot;4530&quot;&gt;&lt;span&gt;키 확인: kubectl get secret &amp;lt;name&amp;gt; -o yaml(base64 decode)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;4648&quot; data-start=&quot;4589&quot;&gt;&lt;span&gt;보안 거부 로그: 이벤트에 denied by policy/seccomp/apparmor 표기&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;4662&quot; data-start=&quot;4650&quot; data-ke-size=&quot;size26&quot;&gt;해결/예방 스니펫&lt;/h2&gt;
&lt;span&gt;&lt;b&gt;A. CM/Secret 정확 매칭&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;B. subPath/마운트 정합&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;C. 보안 컨텍스트/쓰기 경로&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;D. PodSecurity 정책과의 합의&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5659&quot; data-start=&quot;5561&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5659&quot; data-start=&quot;5561&quot;&gt;&lt;span&gt;Restricted 수준 네임스페이스면 hostPath/특권/NET_RAW 등 차단.&lt;br /&gt;&amp;rarr; 매니페스트에서 금지 기능 제거/대체, 혹은 정책-네임스페이스 레벨 조정.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;E. PVC 관련(경계)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5780&quot; data-start=&quot;5679&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5780&quot; data-start=&quot;5679&quot;&gt;&lt;span&gt;&lt;b&gt;PVC 미바인드&lt;/b&gt;면 보통 Pod가 Pending으로 멈춥니다.&lt;br /&gt;CreateContainerConfigError라면 마운트/경로/권한 &lt;b&gt;구성 오류&lt;/b&gt; 가능성에 초점.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b&gt;F. 사전 검증/디버깅&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;6030&quot; data-start=&quot;5799&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5865&quot; data-start=&quot;5799&quot;&gt;&lt;span&gt;로컬 스키마 검증: kubeconform/kubectl apply --dry-run=client -f ...&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;5923&quot; data-start=&quot;5866&quot;&gt;&lt;span&gt;이벤트 타임라인: kubectl get events --sort-by=.lastTimestamp&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;6030&quot; data-start=&quot;5924&quot;&gt;&lt;span&gt;에페메럴 디버그 컨테이너로 마운트/권한 확인:&lt;br /&gt;kubectl debug -it pod/&amp;lt;pod&amp;gt; --target=&amp;lt;container&amp;gt; --image=nicolaka/netshoot&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/44</guid>
      <comments>https://ktzzang0601.tistory.com/44#entry44comment</comments>
      <pubDate>Mon, 25 Aug 2025 22:31:28 +0900</pubDate>
    </item>
    <item>
      <title>Azure Virtual Network 암호화</title>
      <link>https://ktzzang0601.tistory.com/43</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 의미&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt;Azure Virtual Networks의 기능으로 가상 네트워크 암호화를 사용하면 DTLS 터널을 만들어 Azure Virtual Machines 간에 트래픽을 원활하게 암호화 및 암호 해독할 수 있음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt;가상 네트워크 암호화를 사용하면 동일한 가상 네트워크 내에서 Virtual Machines와 Virtual Machine Scale Sets 간의 트래픽을 암호화할 수 있습니다. 가상 네트워크 암호화는 지역적으로 피어링된 가상 네트워크와 전역적으로 피어링된 가상 네트워크 간의 트래픽을 암호화&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: start;&quot;&gt;2. 주요 제약사항&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;암호화는 가상 네트워크의 가상 머신 간의 트래픽에만 적용됩니다. 트래픽은 개인 IP 주소에서 개인 IP 주소로 암호화&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;b&gt;가상 네트워크에서 암호화를 사용하도록&lt;/b&gt; &lt;b&gt;설정한 후에는 기존 가상 머신의 시작/중지가 필요&lt;/b&gt;&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;내부 부하 분산 장치의 경우, 부하 분산 장치 뒤에 있는 모든 가상 머신은 지원되는 가상 머신 SKU에 있어야 합니다&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;b&gt;AllowUnencrypted&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;는 일반 공급에서 유일하게 지원되는 적용입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;DropUnencrypted&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;적용은 향후 지원될 예정&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;암호화가 사용하도록 설정된 가상 네트워크는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #0065b3; text-align: left;&quot; href=&quot;https://learn.microsoft.com/ko-kr/azure/dns/dns-private-resolver-overview&quot; data-linktype=&quot;absolute-path&quot;&gt;Azure DNS Private Resolver&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #0065b3; text-align: left;&quot; href=&quot;https://learn.microsoft.com/ko-kr/azure/application-gateway/overview&quot; data-linktype=&quot;absolute-path&quot;&gt;Application Gateway&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;및&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #0065b3; text-align: left;&quot; href=&quot;https://learn.microsoft.com/ko-kr/azure/firewall/overview&quot; data-linktype=&quot;absolute-path&quot;&gt;Azure Firewall&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;을 지원하지 않습니다&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;b&gt;Azure ExpressRoute 게이트웨이&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;가 있는 가상 네트워크에서는 가상 네트워크 암호화를 사용하도록 설정&lt;/span&gt;&lt;a style=&quot;background-color: #ffffff; color: #0065b3; text-align: left;&quot; href=&quot;https://learn.microsoft.com/ko-kr/azure/expressroute/expressroute-introduction&quot; data-linktype=&quot;absolute-path&quot;&gt;해서는 안&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;됩니다.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Azure Private Link 서비스로 구성된 가상 네트워크는 Virtual Network 암호화를 지원하지 않으므로&lt;/b&gt;&lt;/span&gt; 이러한 Virtual Network에서는 Virtual Network 암호화를 사용하도록 설정해서는 안 됨.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;부하 분산 장치에 대한 연결 실패를 방지하기 위해 내부 부하 분산 장치의 백 엔드 풀에는 네트워크 인터페이스 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;보조 IPv4 구성이 포함되어서는 안 됨.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;Azure 기밀 컴퓨팅 VM SKU가 있는 가상 네트워크에서는 Virtual Network 암호화를 사용하도록 설정하면 안 됩니다.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;지역 피어링, 글로벌 피어링을 통한 가상 머신 간 트래픽에서 지원됩니다.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;Azure CNI(일반 또는 오버레이 모드), Kubenet 또는 BYOCNI를 사용하는 AKS에서 지원됩니다. 노드 및 Pod 트래픽이 암호화됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;Azure CNI 동적 Pod IP 할당(podSubnetId 지정)을 사용하여 AKS에서 부분적으로 지원됩니다. 노드 트래픽은 암호화되지만 Pod 트래픽은 암호화되지 않습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;AKS 관리 컨트롤 플레인에 대한 트래픽이 가상 네트워크에서 송신되므로 가상 네트워크 암호화 범위에 포함되지 않습니다. 그러나 이 트래픽은 항상 TLS를 통해 암호화됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #161616; text-align: left;&quot;&gt;3. 추가 암호화 설계&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;외부 인터넷 -&amp;gt; WAF 구간&lt;/b&gt;&lt;/span&gt; : mTLS 및 SSL/TLS 1.2버전 이상 통신 암호화 적용&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;WAF -&amp;gt; F/W 구간&lt;/b&gt;&lt;/span&gt; : SSL/TLS 1.2버전 이상 통신 암호화 적용&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;MSA Service &amp;lt;-&amp;gt; 타 시스템 호출 구간&lt;/b&gt;&lt;/span&gt; : SSL/TLS 1.2버전 이상 통신 암호화 적용&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Application&lt;/b&gt; &lt;/span&gt;: Always Encrypted + Dynamic Data Masking 동시 사용&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;DBMS - SQL Management Instance&lt;/b&gt;&lt;/span&gt; : &lt;b&gt;TDE(Transparent data encryption)을 이용한 스토리지 암호화&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Azure Files&lt;/b&gt;&lt;/span&gt; : &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;CMK 기반의 SSE 지원 설정 혹은 Key Vault + MI 권한 설정 관리를 통한 암호화&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Azure Blob Storage&lt;/b&gt;&lt;/span&gt; : Azure Key Vault에 저장된 CMK를 사용하여 암호화&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 네트워크 암호화&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Azure VPN Gateway는 IPsec/IKE 기반 암호화 터널을 사용하며, 내부적으로 AES256/SHA2/PFS 같은 알고리즘을 조합&lt;/b&gt;&lt;/span&gt;한다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;ExpressRoute &amp;rarr; 기본은 암호화 없음. 필요 시&lt;/span&gt; &lt;br /&gt;- &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;MACsec(L2) : ExpressRoute Direct서 포트 단 암호화(BYOK, Key Vault 보관).&lt;/span&gt; &lt;br /&gt;- &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;IPsec over ER : VPN over ExpressRoute(끝단 간 L3 암호화) 조합 가능.&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;Virtual Network Encryption (VNE) &amp;rarr; 동일 VNet/피어링 간 VM&amp;harr;VM 트래픽을 DTLS로 암호화. 특정 VM SKU/Accelerated Networking 요구, 일부 네트워크 리소스와 비호환.&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;Azure Files: 기본적으로 SMB 3.x + 암호화 필수(암호화 미지원 클라이언트 연결 거부)&lt;/span&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1c1d1f; text-align: start;&quot;&gt;5. 참고 문서&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Virtual Network &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;암호화란&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;? &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/virtual-network/virtual-network-encryption-overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/virtual-network/virtual-network-encryption-overview&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/43</guid>
      <comments>https://ktzzang0601.tistory.com/43#entry43comment</comments>
      <pubDate>Mon, 25 Aug 2025 18:37:00 +0900</pubDate>
    </item>
    <item>
      <title>PV/PVC with Azure File 구성시 필요한 Network 설정</title>
      <link>https://ktzzang0601.tistory.com/42</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot; data-start=&quot;485&quot; data-end=&quot;517&quot;&gt;&lt;b&gt;1. Azure File + PV/PVC 구성 개요&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;519&quot; data-end=&quot;816&quot;&gt;
&lt;li data-start=&quot;519&quot; data-end=&quot;614&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Kubernetes 환경에서 **Persistent Volume(PV)**과 **Persistent Volume Claim(PVC)**를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Azure File&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;스토리지로 구성하려면,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;단순히 YAML로 PV/PVC를 정의하는 것뿐만 아니라&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;네트워크 설정&lt;/b&gt;이 반드시 뒷받침되어야 합니다.&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Azure File은 SMB(서버 메시지 블록) 프로토콜을 사용하므로,&amp;nbsp;&lt;/span&gt;&lt;b&gt;네트워크 라우팅, DNS, 방화벽(NSG) 규칙&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;등이 제대로 설정되어 있어야 정상적으로 마운트&lt;/span&gt;됩니다.&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;519&quot; data-end=&quot;614&quot;&gt;&lt;b&gt;PV (Persistent Volume)&lt;/b&gt;&lt;br /&gt;클러스터 관리자가 프로비저닝한 스토리지 리소스로, 스토리지의 실제 물리적/클라우드 리소스에 대한 추상화 레이어.&lt;/li&gt;
&lt;li data-start=&quot;618&quot; data-end=&quot;700&quot;&gt;&lt;b&gt;PVC (Persistent Volume Claim)&lt;/b&gt;&lt;br /&gt;개발자/애플리케이션이 요청하는 스토리지 요구사항. PV에 매칭되어 바인딩됨.&lt;/li&gt;
&lt;li data-start=&quot;702&quot; data-end=&quot;816&quot;&gt;&lt;b&gt;Azure File&lt;/b&gt;&lt;br /&gt;Azure Storage 계정에서 제공하는 SMB 3.0 기반 네트워크 파일 공유 서비스. Kubernetes에서는 csi.azure.com 드라이버를 통해 접근.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot; data-start=&quot;823&quot; data-end=&quot;845&quot;&gt;&lt;b&gt;2. 네트워크 설정의 핵심 포인트&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;847&quot; data-end=&quot;865&quot;&gt;(1) &lt;b&gt;접근 경로&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;866&quot; data-end=&quot;1003&quot;&gt;
&lt;li data-start=&quot;866&quot; data-end=&quot;937&quot;&gt;Azure File은 &lt;b&gt;퍼블릭 엔드포인트&lt;/b&gt; 또는 **프라이빗 엔드포인트(Private Endpoint)**로 접근 가능.&lt;/li&gt;
&lt;li data-start=&quot;938&quot; data-end=&quot;1003&quot;&gt;&lt;b&gt;보안 강화&lt;/b&gt;를 위해 AKS 클러스터와 같은 VNet 내부에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Private Endpoint&lt;/b&gt;&lt;/span&gt; 구성 권장.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;1005&quot; data-end=&quot;1024&quot;&gt;(2) &lt;b&gt;DNS 해석&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1025&quot; data-end=&quot;1264&quot;&gt;
&lt;li data-start=&quot;1025&quot; data-end=&quot;1164&quot;&gt;Private Endpoint 사용 시, Azure Storage의 FQDN({storageaccount}.file.core.windows.net)이 Private IP로 해석되도록 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Azure Private DNS Zone 설정 필요&lt;/b&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;li data-start=&quot;1165&quot; data-end=&quot;1223&quot;&gt;Private DNS Zone 링크: privatelink.file.core.windows.net&lt;/li&gt;
&lt;li data-start=&quot;1224&quot; data-end=&quot;1264&quot;&gt;AKS VNet과 DNS Zone을 연결(VNet Link)해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;1266&quot; data-end=&quot;1287&quot;&gt;(3) &lt;b&gt;네트워크 라우팅&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1288&quot; data-end=&quot;1472&quot;&gt;
&lt;li data-start=&quot;1288&quot; data-end=&quot;1327&quot;&gt;AKS 노드 &amp;rarr; Azure File Storage까지의 경로 확인.&lt;/li&gt;
&lt;li data-start=&quot;1328&quot; data-end=&quot;1421&quot;&gt;VNet이 피어링된 경우, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;PEERING 설정에서 &quot;Allow forwarded traffic&quot; 및 &quot;Allow gateway transit&quot; 활성화&lt;/b&gt;&lt;/span&gt; 필요.&lt;/li&gt;
&lt;li data-start=&quot;1422&quot; data-end=&quot;1472&quot;&gt;On-prem과 연결 시 ExpressRoute 또는 VPN Gateway 사용 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;1474&quot; data-end=&quot;1498&quot;&gt;(4) &lt;b&gt;방화벽(NSG) 규칙&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1499&quot; data-end=&quot;1621&quot;&gt;
&lt;li data-start=&quot;1499&quot; data-end=&quot;1520&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;SMB 포트(445/TCP) 허용.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;1521&quot; data-end=&quot;1582&quot;&gt;Azure File에 접근하는 서브넷에서 &lt;b&gt;Outbound 445/TCP&lt;/b&gt;가 막혀 있으면 마운트 불가.&lt;/li&gt;
&lt;li data-start=&quot;1583&quot; data-end=&quot;1621&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Private Endpoint 사용 시에도 해당 포트 허용 필요&lt;/b&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;1623&quot; data-end=&quot;1644&quot;&gt;(5) &lt;b&gt;스토리지 방화벽&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1645&quot; data-end=&quot;1741&quot;&gt;
&lt;li data-start=&quot;1645&quot; data-end=&quot;1696&quot;&gt;Storage Account의 &quot;방화벽 및 가상 네트워크&quot; 설정에서 AKS 서브넷 허용.&lt;/li&gt;
&lt;li data-start=&quot;1697&quot; data-end=&quot;1741&quot;&gt;Private Endpoint 사용 시 Public Access 차단 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot; data-start=&quot;1743&quot; data-end=&quot;1758&quot;&gt;(6) &lt;b&gt;인증&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1759&quot; data-end=&quot;1954&quot;&gt;
&lt;li data-start=&quot;1759&quot; data-end=&quot;1825&quot;&gt;Azure File PV/PVC는 Storage Account Key 또는 Azure AD 기반 SMB 인증 지원.&lt;/li&gt;
&lt;li data-start=&quot;1826&quot; data-end=&quot;1878&quot;&gt;Storage Account Key를 Secret로 저장 후 PV/PVC YAML에 참조.&lt;/li&gt;
&lt;li data-start=&quot;1879&quot; data-end=&quot;1954&quot;&gt;Azure AD 인증 시, AKS 노드가 Azure File 리소스에 접근 가능한 &lt;b&gt;Managed Identity&lt;/b&gt; 권한 필요.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot; data-start=&quot;1961&quot; data-end=&quot;2020&quot;&gt;&lt;b&gt;3. PV/PVC + Azure File 네트워크 구성 절차 (Private Endpoint 기준)&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-start=&quot;2022&quot; data-end=&quot;2769&quot;&gt;
&lt;li data-start=&quot;2022&quot; data-end=&quot;2151&quot;&gt;&lt;b&gt;Storage Account 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2051&quot; data-end=&quot;2151&quot;&gt;
&lt;li data-start=&quot;2051&quot; data-end=&quot;2097&quot;&gt;Performance: Standard (HDD) 또는 Premium (SSD)&lt;/li&gt;
&lt;li data-start=&quot;2101&quot; data-end=&quot;2126&quot;&gt;Account kind: StorageV2&lt;/li&gt;
&lt;li data-start=&quot;2130&quot; data-end=&quot;2151&quot;&gt;File shares 기능 활성화.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2153&quot; data-end=&quot;2310&quot;&gt;&lt;b&gt;Private Endpoint 생성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2183&quot; data-end=&quot;2310&quot;&gt;
&lt;li data-start=&quot;2183&quot; data-end=&quot;2212&quot;&gt;Target sub-resource: file&lt;/li&gt;
&lt;li data-start=&quot;2216&quot; data-end=&quot;2237&quot;&gt;연결할 VNet/Subnet 지정.&lt;/li&gt;
&lt;li data-start=&quot;2241&quot; data-end=&quot;2310&quot;&gt;Private DNS Zone(privatelink.file.core.windows.net)에 자동 등록되도록 설정.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2312&quot; data-end=&quot;2468&quot;&gt;&lt;b&gt;Private DNS Zone 구성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2342&quot; data-end=&quot;2468&quot;&gt;
&lt;li data-start=&quot;2342&quot; data-end=&quot;2388&quot;&gt;privatelink.file.core.windows.net Zone 생성.&lt;/li&gt;
&lt;li data-start=&quot;2392&quot; data-end=&quot;2439&quot;&gt;Private Endpoint의 Private IP가 A 레코드로 등록되어야 함.&lt;/li&gt;
&lt;li data-start=&quot;2443&quot; data-end=&quot;2468&quot;&gt;AKS VNet과 DNS Zone을 링크.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2470&quot; data-end=&quot;2561&quot;&gt;&lt;b&gt;NSG 설정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2487&quot; data-end=&quot;2561&quot;&gt;
&lt;li data-start=&quot;2487&quot; data-end=&quot;2521&quot;&gt;AKS 노드 서브넷에 Outbound 445/TCP 허용.&lt;/li&gt;
&lt;li data-start=&quot;2525&quot; data-end=&quot;2561&quot;&gt;필요 시 Inbound SMB 규칙도 설정(특정 상황에서만).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2563&quot; data-end=&quot;2635&quot;&gt;&lt;b&gt;스토리지 방화벽 설정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2585&quot; data-end=&quot;2635&quot;&gt;
&lt;li data-start=&quot;2585&quot; data-end=&quot;2604&quot;&gt;Public access 차단.&lt;/li&gt;
&lt;li data-start=&quot;2608&quot; data-end=&quot;2635&quot;&gt;Private Endpoint 서브넷만 허용.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-start=&quot;2637&quot; data-end=&quot;2769&quot;&gt;&lt;b&gt;인증 구성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;2653&quot; data-end=&quot;2769&quot;&gt;
&lt;li data-start=&quot;2653&quot; data-end=&quot;2698&quot;&gt;Storage Account Key를 Kubernetes Secret에 저장.&lt;/li&gt;
&lt;li data-start=&quot;2702&quot; data-end=&quot;2769&quot;&gt;또는 Managed Identity에 Azure File Data SMB Share Contributor 권한 부여.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot; data-start=&quot;2776&quot; data-end=&quot;2791&quot;&gt;&lt;b&gt;4. 주요 용어 정리&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-start=&quot;2793&quot; data-end=&quot;3461&quot;&gt;
&lt;tbody data-start=&quot;2821&quot; data-end=&quot;3461&quot;&gt;
&lt;tr data-start=&quot;2821&quot; data-end=&quot;2886&quot;&gt;
&lt;td data-start=&quot;2821&quot; data-end=&quot;2850&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;PV (Persistent Volume)&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;2850&quot; data-end=&quot;2886&quot;&gt;클러스터에서 사용할 수 있는 스토리지 리소스의 추상화 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;2887&quot; data-end=&quot;2955&quot;&gt;
&lt;td data-start=&quot;2887&quot; data-end=&quot;2923&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;PVC (Persistent Volume Claim)&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;2923&quot; data-end=&quot;2955&quot;&gt;사용자가 요청하는 스토리지 요구사항, PV에 바인딩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;2956&quot; data-end=&quot;2998&quot;&gt;
&lt;td data-start=&quot;2956&quot; data-end=&quot;2973&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Azure File&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;2973&quot; data-end=&quot;2998&quot;&gt;SMB 기반 클라우드 파일 공유 서비스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;2999&quot; data-end=&quot;3061&quot;&gt;
&lt;td data-start=&quot;2999&quot; data-end=&quot;3022&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Private Endpoint&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3022&quot; data-end=&quot;3061&quot;&gt;VNet 내부에서 Azure 서비스에 Private IP로 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3062&quot; data-end=&quot;3146&quot;&gt;
&lt;td data-start=&quot;3062&quot; data-end=&quot;3085&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Private DNS Zone&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3085&quot; data-end=&quot;3146&quot;&gt;Private Endpoint 연결 시 서비스 FQDN을 Private IP로 해석하는 DNS Zone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3147&quot; data-end=&quot;3204&quot;&gt;
&lt;td data-start=&quot;3147&quot; data-end=&quot;3182&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;NSG (Network Security Group)&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3182&quot; data-end=&quot;3204&quot;&gt;Azure 네트워크의 방화벽 역할&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3205&quot; data-end=&quot;3261&quot;&gt;
&lt;td data-start=&quot;3205&quot; data-end=&quot;3238&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;SMB (Server Message Block)&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3238&quot; data-end=&quot;3261&quot;&gt;파일 공유를 위한 네트워크 프로토콜&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3262&quot; data-end=&quot;3316&quot;&gt;
&lt;td data-start=&quot;3262&quot; data-end=&quot;3288&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Storage Account Key&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3288&quot; data-end=&quot;3316&quot;&gt;Storage Account 인증을 위한 키&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3317&quot; data-end=&quot;3368&quot;&gt;
&lt;td data-start=&quot;3317&quot; data-end=&quot;3340&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Managed Identity&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3340&quot; data-end=&quot;3368&quot;&gt;Azure 리소스에 부여되는 인증 아이덴티티&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-start=&quot;3369&quot; data-end=&quot;3461&quot;&gt;
&lt;td data-start=&quot;3369&quot; data-end=&quot;3392&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Azure CSI Driver&lt;/b&gt;&lt;/td&gt;
&lt;td data-col-size=&quot;md&quot; data-start=&quot;3392&quot; data-end=&quot;3461&quot;&gt;Kubernetes에서 Azure 스토리지를 사용하기 위한 Container Storage Interface 드라이버&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 관련 문서&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원본 게시글 : &lt;a href=&quot;https://seongduck.tistory.com/488&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://seongduck.tistory.com/488&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;AKS(Azure Kubernetes Service)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Files CSI(Container Storage Interface) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;드라이버 사용 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/aks/azure-files-csi&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/aks/azure-files-csi&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/42</guid>
      <comments>https://ktzzang0601.tistory.com/42#entry42comment</comments>
      <pubDate>Mon, 25 Aug 2025 11:13:58 +0900</pubDate>
    </item>
    <item>
      <title>Azure Storage 암호화</title>
      <link>https://ktzzang0601.tistory.com/41</link>
      <description>&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Azure Storage 암호화 개요&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Azure는 저장 데이터(At Rest)와 전송 데이터(In Transit) 모두에 대해 암호화를 제공합니다. 이 암호화는 서버측에서 자동으로 적용되거나, 필요에 따라 사용자가 클라이언트측에서 직접 수행할 수도 있습니다. 또한 ES-256 같은 강력한 암호화 알고리즘과 Key Vault를 통한 중앙 집중형 키 관리 기능을 제공해 기업이 보안과 규정 준수를 동시에 달성할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2. 미사용 데이터 암호화&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;미사용 데이터 암호화는 디스크, Blob, File, Table, SQL Database, Cosmos DB 등 다양한 스토리지 서비스에 적용됩니다.&lt;br /&gt;- 서버측 암호화(SSE): Azure가 저장 전에 자동으로 암호화하고, 읽을 때 자동 복호화&lt;br /&gt;- 클라이언트측 암호화: 업로드 전에 사용자가 직접 암호화&lt;/li&gt;
&lt;li&gt;서비스별 주요 특징&lt;/li&gt;
&lt;/ul&gt;
&lt;figure data-origin-height=&quot;439&quot; data-origin-width=&quot;1005&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/dK6WxX/btsPNMjvL6p/AAAAAAAAAAAAAAAAAAAAAKh2uqmny9cFWN0y8sjQHs-IY0EbW098wNVdE1Em0eGt/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1756652399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=jxPfWlL9RVDhT1WvzW7dmebN938%3D&quot; width=&quot;755&quot; height=&quot;330&quot; data-phocus-index=&quot;0&quot; data-origin-height=&quot;439&quot; data-origin-width=&quot;1005&quot; /&gt;&lt;/figure&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;3. 전송 중 데이터 암호화&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TLS(전송 계층 보안)&lt;/b&gt;: 클라이언트와 서버 간 및 모든 클라우드-클라이언트 통신 보호. PFS 지원. &lt;br /&gt;ex&amp;gt;&amp;nbsp;Azure Storage와 REST API를 사용할 때 HTTPS만 허용하도록 설정하면 중간자 공격을 방지할 수 있습니다. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;PFS(Perfect Forward Secrecy)&lt;/b&gt;: 세션 키 보호&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MACsec&lt;/b&gt;: 데이터센터 간 네트워크 링크 암호화&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SMB 3.0&lt;/b&gt;: 파일 공유 전송 암호화 (Windows Server 2012+).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VPN Gateway(IPsec/IKE, 사이트 간/지점 연결 암호화) / SSH(비대칭키) / RDP(TLS)&lt;/b&gt;: 안전한 원격 접속 및 데이터 전송&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 링크 계층&lt;/b&gt;: MACsec(IEEE 802.1AE)로 데이터센터 간 링크 암호화, 기본 적용.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Azure Storage 접근&lt;/b&gt; 시 HTTPS 필수 설정 및 SAS 토큰 사용시 HTTPS 강제 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 키 관리 전략&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Azure Key Vault는 암호화 키, 비밀, 인증서를 안전하게 저장하고 접근을 제어합니다.&lt;br /&gt;-&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;서비스 관리 키(SMK)&lt;/b&gt;&lt;/span&gt;: Azure에서 자동 관리&lt;br /&gt;-&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; 고객 관리 키(CMK)&lt;/b&gt;:&lt;/span&gt; BYOK(Bring Your Own Key) 지원&lt;br /&gt;-&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;HYOK(Host Your Own Key)&lt;/b&gt;&lt;/span&gt;: 고객의 하드웨어에서 완전 관리 &lt;/li&gt;
&lt;li&gt;Key Vault를 활용하면 키를 주기적으로 순환하고, HSM(Hardware Security Module)에서 안전하게 생성 및 저장할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 보안 모범 사례&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;보안 전송 강제 적용&lt;br /&gt;- 스토리지 계정에서 &amp;lsquo;Secure Transfer Required&amp;rsquo;를 켜고 HTTPS만 허용하세요. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;BYOK 적용 시 주기적 키 순환&lt;br /&gt;- 데이터 보호와 규정 준수를 위해 키를 주기적으로 변경해야 합니다. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;모니터링 및 감사 활성화&lt;br /&gt;- &lt;/span&gt;Azure Monitor와 함께 Key Vault 진입 시도를 로깅하면 보안 위협을 신속히 탐지할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 미사용 데이터 암호화 (At Rest Encryption)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대상: 디스크, Blob, Table Storage, SQL DB, Cosmos DB, Data Lake 등 저장된 모든 데이터.&lt;/li&gt;
&lt;li&gt;기술: 기본적으로 AES-256 사용.&lt;/li&gt;
&lt;li&gt;암호화 모델&lt;br /&gt;1. 서비스 관리 키 (Microsoft 관리) &amp;ndash; 편리하지만 고객 제어 낮음.&lt;br /&gt;2. 고객 관리 키 (BYOK) &amp;ndash; Key Vault로 직접 관리.&lt;br /&gt;3. 고객 제어 하드웨어 키 (HYOK) &amp;ndash; 자체 하드웨어에서 관리, 제한적 지원.&lt;br /&gt;&amp;bull; 클라이언트 쪽 암호화: Azure 외부에서 암호화 후 업로드. 키는 고객이 완전 제어.&lt;br /&gt;&amp;bull; 서버 쪽 암호화: Azure가 데이터 저장 시 자동 암호화&amp;middot;해독.&lt;br /&gt;&amp;bull; 서비스별 특징&lt;br /&gt;&amp;nbsp; - Disk Encryption: 관리 디스크&amp;middot;스냅샷 모두 암호화.&lt;br /&gt;&amp;nbsp; - Storage Service Encryption(SSE): Blob&amp;middot;File 저장 전 자동 암호화.&lt;br /&gt;&amp;nbsp; - Azure SQL:&lt;br /&gt;&amp;nbsp; &amp;nbsp; * TDE(투명 데이터 암호화) &amp;ndash; 서버 쪽, 기본 활성화.&lt;br /&gt;&amp;nbsp; &amp;nbsp; * Always Encrypted &amp;ndash; 클라이언트 쪽, 민감 데이터 보호.&lt;br /&gt;&amp;nbsp; &amp;nbsp; * CLE(셀&amp;middot;열 수준 암호화) &amp;ndash; 더 세밀한 단위 암호화.&lt;br /&gt;&amp;nbsp; - Cosmos DB: 기본 암호화 + 선택적 CMK 이중 암호화.&lt;br /&gt;&amp;nbsp; - Data Lake: 기본 자동 암호화, 키 직접 관리 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;7. 키 관리 (Azure Key Vault)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;역할: 암호화 키 보관&amp;middot;관리&amp;middot;액세스 제어.&lt;/li&gt;
&lt;li&gt;특징&lt;br /&gt;- HSM 기반, Microsoft는 키 열람 불가.&lt;br /&gt;- 고객이 키 생성&amp;middot;가져오기&amp;middot;순환 가능.&lt;br /&gt;- Microsoft Entra 계정 기반 권한 부여.&lt;br /&gt;- 장점: 하드웨어&amp;middot;패치&amp;middot;운영 부담 제거, 보안성&amp;middot;관리 편의성 향상.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. 참고 문서&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;미사용 데이터에 대한 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Storage &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;암호화 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/storage/common/storage-service-encryption&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/storage/common/storage-service-encryption&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;암호화 개요 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/security/fundamentals/encryption-overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/security/fundamentals/encryption-overview&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/41</guid>
      <comments>https://ktzzang0601.tistory.com/41#entry41comment</comments>
      <pubDate>Mon, 25 Aug 2025 08:38:37 +0900</pubDate>
    </item>
    <item>
      <title>Azure Monitoring 활용시 LogData 효율적 관리에 대해</title>
      <link>https://ktzzang0601.tistory.com/40</link>
      <description>&lt;h3 data-end=&quot;37&quot; data-start=&quot;0&quot; data-ke-size=&quot;size23&quot;&gt;1. Azure Monitor 및 기본 개념 정리&lt;/h3&gt;
&lt;p data-end=&quot;37&quot; data-start=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(1) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Monitor&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 전반의 리소스 상태, 성능, 보안 이벤트를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;수집&amp;middot;분석하는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 플랫폼 서비스&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;메트릭과&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 로그 두 가지 데이터 형식 지원&lt;br /&gt;&lt;br /&gt;(2) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytics&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Monitor&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 로그 데이터를 저장하고 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Kusto&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Query&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Language&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(KQL)로 분석하는 서비스&lt;br /&gt;&amp;bull; 데이터 수집, 저장, 쿼리에 따라 비용 부과&lt;br /&gt;&lt;br /&gt;(3) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Diagnostic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Settings&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; 어떤 리소스에서 어떤 종류의 로그를 어디로 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;보낼지&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 설정하는 기능&lt;br /&gt;&amp;bull; 예: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytics&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Storage&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Account&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Event&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Hub&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;br /&gt;(4) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Retention&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Policy&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; (보존 정책)&lt;br /&gt;&amp;bull; 로그 데이터를 저장하는 기간을 지정&lt;br /&gt;&amp;bull; 저장기간이 길수록 비용 증가, 짧게 하면 비용 절감&lt;br /&gt;&lt;br /&gt;(5) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Sampling&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; (샘플링)&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Application&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Insights에서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 모든 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요청&amp;middot;트랜잭션&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 로그를 수집하지 않고 일부만 수집하는 기능&lt;br /&gt;&amp;bull; 트래픽이 많은 서비스에서 비용 절감에 효과적&lt;br /&gt;&lt;br /&gt;(6) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Basic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;vs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Basic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 장기간 저장, 검색 빈도가 낮은 로그 (저렴)&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;쿼리&amp;middot;분석이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 많은 로그 (비쌈)&lt;br /&gt;&lt;br /&gt;(7) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Archive&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Tier&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; 장기간 사용하지 않는 로그를 저비용 저장소에 보관하는 방식&lt;br /&gt;&amp;bull; 검색 시 복원 시간이 필요&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-end=&quot;37&quot; data-start=&quot;0&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2. 최적화 개요&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;37&quot; data-start=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(1) 수집 단계에서 절감&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Diagnostic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Settings에서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 불필요한 로그 카테고리 제외&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Application&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Insights에서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Sampling&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 설정 적용 (예: 100% &amp;rarr; 20%)&lt;br /&gt;&lt;br /&gt;(2) 저장 단계에서 절감&lt;br /&gt;&amp;bull; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Retention&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Policy로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 저장기간 단축 (예: 90일 &amp;rarr; 30일)&lt;br /&gt;&amp;bull; 자주 쓰지 않는 데이터는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Archive&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Tier로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 이동&lt;br /&gt;&lt;br /&gt;(3) 분석 단계에서 절감&lt;br /&gt;&amp;bull; 쿼리 실행 횟수 최소화&lt;br /&gt;&amp;bull; 동일한 쿼리를 반복 실행 시 쿼리 결과 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;캐싱&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 또는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Export&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 기능 활용&lt;br /&gt;&lt;br /&gt;(4) 로그 형식 구분&lt;br /&gt;&amp;bull; 자주 분석하는 데이터: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;bull; 거의 조회하지 않는 데이터: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Basic&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Logs로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 설정&lt;br /&gt;&lt;br /&gt;(5) 외부 저장소 연계&lt;br /&gt;&amp;bull; 장기 보관 필요 시 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Analytics가&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 아닌 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Storage에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 보관 &amp;rarr; 저렴한 저장 비용 + 규제 준수 가능&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;37&quot; data-start=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;66&quot; data-start=&quot;44&quot; data-ke-size=&quot;size26&quot;&gt;3. 세부 내용 설명&lt;/h2&gt;
&lt;p data-end=&quot;66&quot; data-start=&quot;44&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(1) 수집할 로그 데이터량 최적화&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;309&quot; data-start=&quot;68&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;188&quot; data-start=&quot;68&quot;&gt;&lt;span&gt;&lt;b&gt;필요한 데이터만 수집&lt;/b&gt;하세요. 수집 대상 및 조건을 신중히 설정해 불필요한 로그를 줄여야 합니다.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;rarr; 예: 진단 설정(Diagnostic setting), 데이터 수집 규칙(Data Collection Rule, DCR)을 통해 특정 이벤트/로그 수준만 수집하도록 제한&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;309&quot; data-start=&quot;190&quot;&gt;&lt;span&gt;&lt;b&gt;테이블별 Basic Logs 플랜 활용&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;디버깅 또는 드문 쿼리에만 필요한 테이블은 &lt;b&gt;Basic Logs 플랜&lt;/b&gt;으로 설정해 &lt;b&gt;데이터 수집 비용을 낮출 수 있습니다&lt;/b&gt;. 단, 일부 기능 제한이 있습니다.&lt;/span&gt;&amp;nbsp;&lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;336&quot; data-start=&quot;316&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(2) 가격 모델 및 티어 활용&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;542&quot; data-start=&quot;338&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;416&quot; data-start=&quot;338&quot;&gt;&lt;span&gt;**Commitment 티어 (예약량 기반 요금제)**로 전환 시, 데이터 수집량이 많을 때 &lt;b&gt;단가를 낮출 수 있습니다&lt;/b&gt;. 기본은 페이-애즈-유-고(Pay-as-you-go)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;542&quot; data-start=&quot;418&quot;&gt;&lt;span&gt;&lt;b&gt;데이터 보관 기간 최적화&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;기본 보존 기간 이후 장기 보존이 필요하지 않다면 데이터를 자동으로 삭제해 저장 공간과 비용을 줄이세요&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;571&quot; data-start=&quot;549&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(3) 모니터링 및 알림 기반 관리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;911&quot; data-start=&quot;573&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;655&quot; data-start=&quot;573&quot;&gt;&lt;span&gt;&lt;b&gt;Log Analytics Workspace Insights&lt;/b&gt;를 통해 로그 수집량 트렌드를 시각화하고, 어떤 솔루션이나 테이블이 과다 수집의 주범인지를 파악할 수 있습니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;783&quot; data-start=&quot;657&quot;&gt;&lt;span&gt;&lt;b&gt;Alert (알림) 설정으로 이상 전송량 대응&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;예시: 하루 50GB 이상 로그가 수집되면 알림을 받도록 설정하여 비용 예측력을 높이고, 필요 시 즉시 대응할 수 있습니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;911&quot; data-start=&quot;785&quot;&gt;&lt;span&gt;&lt;b&gt;Azure Advisor 비용 최적화 권장사항 적용&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Advisor가 자동으로 제안하는 &amp;lsquo;Basic Logs 사용&amp;rsquo;, &amp;lsquo;프리미엄 요금제 전환&amp;rsquo; 등 권고사항을 알림으로 설정해 놓으면, 실시간으로 비용 절감 기회를 놓치지 않을 수 있습니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;940&quot; data-start=&quot;918&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(4) 데이터 분석 기반 원인 탐지&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1298&quot; data-start=&quot;942&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1042&quot; data-start=&quot;942&quot;&gt;&lt;b&gt;Usage 테이블&lt;/b&gt;&lt;br /&gt;&lt;span&gt;워크스페이스별, 솔루션별, 테이블별 수집된 &lt;b&gt;청구 대상(billable) 데이터 양&lt;/b&gt;을 분석할 수 있습니다. 예시 쿼리도 제공되어 있습니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1170&quot; data-start=&quot;1044&quot;&gt;&lt;span&gt;&lt;b&gt;_IsBillable, _BilledSize 컬럼 활용&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;실제 과금이 발생하는 개별 로그 항목 및 사이즈를 상세 분석해, 어떤 이벤트가 비용을 유발하는지 구체적으로 확인할 수 있습니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1298&quot; data-start=&quot;1172&quot;&gt;&lt;span&gt;&lt;b&gt;자원, 리소스 그룹, 컴퓨터 단위 분석&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;어느 리소스나 VM이 로그를 많이 생성하고 있는지 단위별 분석해 수집 전략을 세울 수 있어요&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1326&quot; data-start=&quot;1305&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(5) 쿼리 최적화 및 성능 관리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1454&quot; data-start=&quot;1328&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1454&quot; data-start=&quot;1328&quot;&gt;&lt;span&gt;&lt;b&gt;쿼리 최적화&lt;/b&gt;는 직접적인 수집 사이징보다는 간접적인 비용 절감에 도움이 됩니다.&lt;/span&gt;&lt;span&gt;효율적인 쿼리는 CPU, 멀티스레드 활용, 메모리 등 자원 소비를 줄여 &lt;b&gt;전체 처리 비용을 절감&lt;/b&gt;시키고, 쿼리 지연이나 스로틀링도 방지합니다&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1486&quot; data-start=&quot;1461&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;4. 요약&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 147px;&quot; border=&quot;1&quot; data-end=&quot;1979&quot; data-start=&quot;1488&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px;&quot;&gt;전략 영역&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 21px;&quot;&gt;수행 지침 요약&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;1633&quot; data-start=&quot;1570&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1590&quot; data-start=&quot;1570&quot;&gt;&lt;b&gt;수집량 최적화&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1633&quot; data-start=&quot;1590&quot;&gt;&lt;span&gt;필요한 데이터만 수집, Basic Logs 플랜 적용(빠른 분석 필요시 Analytic)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;1723&quot; data-start=&quot;1634&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1676&quot; data-start=&quot;1634&quot;&gt;&lt;b&gt;&lt;span&gt;가격 모델 활용 및 티어 조정&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1723&quot; data-start=&quot;1676&quot;&gt;&lt;span&gt;Commitment 이용, 불필요 보존기간 줄임(보유 정책 조정)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;1817&quot; data-start=&quot;1724&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1770&quot; data-start=&quot;1724&quot;&gt;&lt;b&gt;&lt;span&gt;모니터링 및 알림 설정&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1817&quot; data-start=&quot;1770&quot;&gt;&lt;span&gt;Workspace 인사이트, 데이터 사용량 알림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;1908&quot; data-start=&quot;1818&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1865&quot; data-start=&quot;1818&quot;&gt;&lt;b&gt;&lt;span&gt;원인 분석 기반 개선&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-end=&quot;1908&quot; data-start=&quot;1865&quot; data-col-size=&quot;sm&quot;&gt;&lt;span&gt;Usage 테이블, 상세 쿼리 분석(저/고빈도 조회 로그 분석), 리소스별 검토&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot; data-end=&quot;1979&quot; data-start=&quot;1909&quot;&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1930&quot; data-start=&quot;1909&quot;&gt;&lt;b&gt;쿼리 최적화&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;1979&quot; data-start=&quot;1930&quot;&gt;&lt;span&gt;효율적인 KQL 작성으로 처리 비용 절감, 샘플링 기법으로 일부 로그 수집&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;외부 저장소 Export&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span&gt;규제 준수 및 비용 절감을 위해 외부 저장 방법도 추가 고려 사항&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;1995&quot; data-start=&quot;1986&quot; data-ke-size=&quot;size23&quot;&gt;5. 참고 문서&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2330&quot; data-start=&quot;1997&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2080&quot; data-start=&quot;1997&quot;&gt;&lt;span&gt;[Azure Monitor Logs cost calculations and options]&lt;/span&gt; &lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/logs/cost-logs?utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Azure 문서&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2164&quot; data-start=&quot;2081&quot;&gt;&lt;span&gt;[Best practices for Azure Monitor Logs] (비용 관리 및 운영 &amp;middot; 수집 최적화 관련)&lt;/span&gt; &lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/logs/best-practices-logs?utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2248&quot; data-start=&quot;2165&quot;&gt;&lt;span&gt;[Analyze usage in a Log Analytics workspace] (Usage 분석 및 알림 설정)&lt;/span&gt; &lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/logs/analyze-usage?utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2330&quot; data-start=&quot;2249&quot;&gt;&lt;span&gt;[Optimize log queries in Azure Monitor] (쿼리 성능 최적화)&lt;/span&gt; &lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/logs/query-optimization?utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/40</guid>
      <comments>https://ktzzang0601.tistory.com/40#entry40comment</comments>
      <pubDate>Sun, 24 Aug 2025 11:46:26 +0900</pubDate>
    </item>
    <item>
      <title>Azure Native 보안과 네트워크 보안 서비스 이해</title>
      <link>https://ktzzang0601.tistory.com/39</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.&amp;nbsp; Azure Native 보안이란?&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Azure에서 기본적으로 제공하는 보안 관련 기능 및 서비스를 의미&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;NSG &amp;rarr; Firewall &amp;rarr; WAF/DDoS &amp;rarr; Private Link/Bastion 같은 네트워크 계층 보안과, Defender for Cloud, Sentinel 같은 운영/모니터링 서비스가 유기적으로 맞물려 클라우드에서 기본적으로 제공되는 End-to-End 보안 프레임워크&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Azure 보안의 핵심 사상&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;631&quot; data-start=&quot;209&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;322&quot; data-start=&quot;209&quot;&gt;&lt;b&gt;클라우드 내장 보안(Platform-level Security)&lt;/b&gt;&lt;br /&gt;Azure 인프라 전반에 걸쳐 MS가 기본 제공하는 보안 기능 (네트워크, 데이터, ID, 애플리케이션 보안 포함).&lt;/li&gt;
&lt;li data-end=&quot;439&quot; data-start=&quot;323&quot;&gt;&lt;b&gt;Zero Trust 기반&lt;/b&gt;&lt;br /&gt;&amp;ldquo;아무도 신뢰하지 않는다(never trust, always verify)&amp;rdquo; 원칙으로, 네트워크 경계뿐 아니라 사용자&amp;middot;디바이스&amp;middot;애플리케이션 모두 지속적으로 검증.&lt;/li&gt;
&lt;li data-end=&quot;553&quot; data-start=&quot;440&quot;&gt;&lt;b&gt;통합 관리&lt;/b&gt;&lt;br /&gt;Azure Security Center(현재는 Microsoft Defender for Cloud) 같은 서비스로 &lt;b&gt;보안 posture&lt;/b&gt;를 모니터링하고 권고사항 제공.&lt;/li&gt;
&lt;li data-end=&quot;631&quot; data-start=&quot;554&quot;&gt;&lt;b&gt;자동화 &amp;amp; 위협 인텔리전스&lt;/b&gt;&lt;br /&gt;Microsoft의 글로벌 위협 인텔리전스 기반으로 보안 로그/이벤트를 자동 분석해 대응.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 네트워크 서비스 종류와 특징&lt;/h3&gt;
&lt;p data-end=&quot;719&quot; data-start=&quot;667&quot; data-ke-size=&quot;size16&quot;&gt;(1) &lt;b&gt;네트워크 보안 그룹 (NSG, Network Security Group)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;822&quot; data-start=&quot;720&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;765&quot; data-start=&quot;720&quot;&gt;VM, Subnet 수준에서 인바운드/아웃바운드 트래픽을 제어하는 방화벽 룰.&lt;/li&gt;
&lt;li data-end=&quot;792&quot; data-start=&quot;766&quot;&gt;L3/L4 기반 (IP, 포트, 프로토콜).&lt;/li&gt;
&lt;li data-end=&quot;822&quot; data-start=&quot;793&quot;&gt;기본적인 &quot;보안 그룹&quot;으로 AWS의 SG와 유사.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;855&quot; data-start=&quot;829&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;(2) Azure Firewall&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1003&quot; data-start=&quot;856&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;900&quot; data-start=&quot;856&quot;&gt;&lt;b&gt;Fully managed 방화벽 서비스 (stateful firewall).&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;920&quot; data-start=&quot;901&quot;&gt;&lt;b&gt;L3~L7 트래픽 필터링 가능.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;984&quot; data-start=&quot;921&quot;&gt;&lt;b&gt;FQDN 필터링, Application rule, Threat Intelligence 기반 차단 지원.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1003&quot; data-start=&quot;985&quot;&gt;&lt;b&gt;고가용성 및 확장 자동 제공.&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1003&quot; data-start=&quot;985&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아웃바운드&amp;middot;인바운드&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;트래픽 필터링&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1052&quot; data-start=&quot;1010&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;(3) &lt;b&gt;Web Application Firewall (WAF)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1212&quot; data-start=&quot;1053&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1123&quot; data-start=&quot;1053&quot;&gt;&lt;b&gt;Application Gateway WAF: L7 로드밸런서 + WAF 기능 (OWASP Top 10 공격 방어).&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1180&quot; data-start=&quot;1124&quot;&gt;&lt;b&gt;Azure Front Door WAF: 글로벌 CDN + WAF (전 세계 트래픽 보호).&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1212&quot; data-start=&quot;1181&quot;&gt;&lt;b&gt;SQL Injection, XSS 등 웹 공격 방어.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1246&quot; data-start=&quot;1219&quot; data-ke-size=&quot;size16&quot;&gt;(4) &lt;b&gt;DDoS Protection&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1353&quot; data-start=&quot;1247&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1279&quot; data-start=&quot;1247&quot;&gt;기본 제공(Free) + 표준(Advanced) 버전.&lt;/li&gt;
&lt;li data-end=&quot;1302&quot; data-start=&quot;1280&quot;&gt;L3/L4 네트워크 공격 자동 완화.&lt;/li&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1303&quot;&gt;Standard 버전은 Adaptive Tuning, 공격 분석 리포트, SLA 제공.&lt;/li&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1303&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대규모 분산 서비스 거부 공격(DDOS) 방어&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1404&quot; data-start=&quot;1360&quot; data-ke-size=&quot;size16&quot;&gt;(5) &lt;b&gt;Private Link &amp;amp; Service Endpoints&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1469&quot; data-start=&quot;1405&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1435&quot; data-start=&quot;1405&quot;&gt;Azure 서비스에 대한 &lt;b&gt;비공개 연결&lt;/b&gt; 제공.&lt;/li&gt;
&lt;li data-end=&quot;1469&quot; data-start=&quot;1436&quot;&gt;인터넷 노출 없이 VNet 내부에서만 서비스 접근 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1501&quot; data-start=&quot;1476&quot; data-ke-size=&quot;size16&quot;&gt;(6) &lt;b&gt;Azure Bastion&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1588&quot; data-start=&quot;1502&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1549&quot; data-start=&quot;1502&quot;&gt;Public IP 없이도 포털 기반으로 안전하게 VM에 RDP/SSH 접속 가능.&lt;/li&gt;
&lt;li data-end=&quot;1588&quot; data-start=&quot;1550&quot;&gt;Jump server 없이도 관리 가능 &amp;rarr; 원격 접속 보안 강화.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1650&quot; data-start=&quot;1595&quot; data-ke-size=&quot;size16&quot;&gt;(7) &lt;b&gt;Azure DDoS + Threat Intelligence + Sentinel&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1767&quot; data-start=&quot;1651&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1716&quot; data-start=&quot;1651&quot;&gt;&lt;b&gt;Azure Sentinel&lt;/b&gt;: 클라우드 기반 SIEM/SOAR &amp;rarr; 로그 수집, 위협 탐지, 자동화 대응.&lt;/li&gt;
&lt;li data-end=&quot;1767&quot; data-start=&quot;1717&quot;&gt;&lt;b&gt;Threat Intelligence 통합&lt;/b&gt;: 글로벌 위협 데이터로 정책 강화.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(8) &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Sentinel&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SIEM(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Security&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Information&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Event&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Management) + SOAR(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Security&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Orchestration&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, Automation and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Response&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) 기능 제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;온&amp;middot;오프프레미스&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;멀티클라우드&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SaaS&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;애플리케이션의 보안 이벤트를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;수집&amp;middot;분석&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;머신러닝&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;기반 위협 감지, 자동 대응&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;(9) Microsoft&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Defender&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Identity&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;온프레미스&amp;nbsp;AD 환경과&amp;nbsp;Azure&amp;nbsp;AD 간&amp;nbsp;계정&amp;middot;인증&amp;nbsp;위협 탐지&lt;/li&gt;
&lt;li&gt;의심스러운 로그인 패턴, 권한 상승 시도 감지&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;(10) Microsoft&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Defender&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Endpoint&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔드포인트&amp;nbsp;보안 &amp;rarr; 악성코드,&amp;nbsp;랜섬웨어, 취약점 보호&lt;/li&gt;
&lt;li&gt;침입 방지, 위협 사냥(Threat Hunting) 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #000000;&quot;&gt;(11)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Key&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Vault&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비밀 값(Secrets), 암호화 키(Keys), 인증서(Certificates) 안전 저장&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;CMK(Customer Managed Key) 사용 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(12) Microsoft&amp;nbsp;Entra&amp;nbsp;ID (Azure&amp;nbsp;AD) 보안 기능&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건부 액세스(Conditional Access)&lt;/li&gt;
&lt;li&gt;MFA(Multi-Factor Authentication)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;ID 보호(ID Protection)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(13) Azure Policy + Blueprints&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조직 전체 리소스에 보안 규칙 강제 적용&lt;br /&gt;&amp;bull; 예: 특정 지역에만 리소스 생성 허용, 암호화 필수화&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1595&quot; data-end=&quot;1650&quot;&gt;&lt;b&gt;(14)&lt;span&gt;&amp;nbsp;&lt;/span&gt;Azure DDoS + Threat Intelligence + Sentinel&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;1651&quot; data-end=&quot;1767&quot;&gt;
&lt;li data-start=&quot;1651&quot; data-end=&quot;1716&quot;&gt;&lt;b&gt;Azure Sentinel&lt;/b&gt;: 클라우드 기반 SIEM/SOAR &amp;rarr; 로그 수집, 위협 탐지, 자동화 대응.&lt;/li&gt;
&lt;li data-start=&quot;1717&quot; data-end=&quot;1767&quot;&gt;&lt;b&gt;Threat Intelligence 통합&lt;/b&gt;: 글로벌 위협 데이터로 정책 강화.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 참고링크&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Azure 보안 개요 : &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/security/fundamentals/overview&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/security/fundamentals/overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Azure Network 보안 개요 : &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/networking/security/network-security?toc=%2Fazure%2Ffirewall%2Ftoc.json&amp;amp;bc=%2Fazure%2Ffirewall%2Fbreadcrumb%2Ftoc.json&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/networking/security/network-security?toc=%2Fazure%2Ffirewall%2Ftoc.json&amp;amp;bc=%2Fazure%2Ffirewall%2Fbreadcrumb%2Ftoc.json&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/39</guid>
      <comments>https://ktzzang0601.tistory.com/39#entry39comment</comments>
      <pubDate>Sun, 24 Aug 2025 10:41:04 +0900</pubDate>
    </item>
    <item>
      <title>Support VM OS SKU 및 Migration 방법</title>
      <link>https://ktzzang0601.tistory.com/38</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Azure Migrate 이란?&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; Azure Migrate는 Azure로의 마이그레이션을 결정, 계획 및 실행하는 데 도움이 되는 서비스입니다. Azure Migrate를 사용하면 최상의 마이그레이션 방법을 찾고, Azure 준비 상태 및 Azure에서 워크로드를 호스트하는 비용을 평가하고, 가동 중지 시간 및 위험을 최소화하여 마이그레이션을 수행할 수 있습니다. Azure Migrate는 Azure Data Box를 사용하여 서버, 데이터베이스, 웹앱, 가상 데스크톱 및 대규모 오프라인 마이그레이션을 지원합니다. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2. VMware To Azure Migration 방식&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Agentless (권장/기본, VMware 전용)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;vCenter + VMware 스냅샷/CBT로 증분 복제. 게스트 OS에 설치 없음. 대규모(최대 300~500대 동시)까지 스케일아웃 어플라이언스로 확장. 일부 제한(예: VMDK 이름에 비-ASCII 문자가 있으면 미지원)&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Agent (대안)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 서버에 Mobility Service를 설치해 블록 단위로 거의 연속 복제. 온프레미스 VMware는 물론 물리 서버&amp;middot;타 클라우드(AWS/GCP) 이전에도 사용. 포트/구성요소(복제 어플라이언스/프로세스 서버/443&amp;middot;9443 등) 요건이 있음.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 제약 사항&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;1065&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설정&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Agentless&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Agent&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;30&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;권한&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Migrate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프로젝트를 만들고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, Azure Migrate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 배포할 때 만든&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Microsoft Entra &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;앱을 등록하기 위한 권한이 필요합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;구독에 대한 기여자 권한이 필요합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;66&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스케일 아웃 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 사용하여 여러&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; vCenter Server(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하나의 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스에서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 검색됨&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 최대&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 500&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개의&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;을 동시에 복제할 수 있습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;포털에서 복제할 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;머신을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 한 번에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대까지 선택할 수 있습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;더 많은 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;머신을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 복제하려면&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대 일괄 처리를 추가합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제 어플라이언스의 크기를 스케일링하면 복제 용량을 늘릴 수 있습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 배포&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/migrate-appliance?view=migrate-classic&quot;&gt;Azure Migrate 어플라이언스&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 온&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프레미스에 배포됩니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/migrate-replication-appliance?view=migrate-classic&quot;&gt;Azure Migrate &lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/migrate-replication-appliance?view=migrate-classic&quot;&gt;복제&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/migrate-replication-appliance?view=migrate-classic&quot;&gt;어플라이언스&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 온&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프레미스에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 배포됩니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Site Recovery &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;호환성&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;호환 가능합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Site Recovery&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 사용하여 머신 복제를 설정한 경우 마이그레이션 및 현대화 도구로 복제할 수 없습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;25&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대상 디스크&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;관리 디스크&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;관리 디스크&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;34&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;디스크 제한&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;OS &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2TB&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터 디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;32TB&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최대 디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 60&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;OS &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2TB&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터 디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;32TB&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최대 디스크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;: 63&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;25&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;통과 디스크&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지원되지 않음&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지원됨&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;25&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;UEFI &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;부팅&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지원&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;지원&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 11.3953%;&quot; width=&quot;126&quot; height=&quot;46&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연결&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 52.5582%;&quot; width=&quot;585&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공용 인터넷&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개인 피어링을 사용하는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ExpressRoute&lt;br /&gt;Microsoft &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;피어링을 사용하는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ExpressRoute&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사이트 간&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; VPN&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 35.9302%;&quot; width=&quot;355&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공용 인터넷&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개인 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;피어링을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 사용하는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ExpressRoute&lt;br /&gt;Microsoft &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;피어링을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 사용하는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ExpressRoute&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사이트 간&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; VPN&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 배포 단계&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 483px;&quot; border=&quot;1&quot; width=&quot;1095&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 26px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 20.6977%; height: 26px;&quot; width=&quot;221&quot; height=&quot;26&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;과업&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 36.3953%; height: 26px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;세부 정보&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 20%; height: 26px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Agentless&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; width: 22.7907%; height: 26px;&quot; width=&quot;259&quot;&gt;Agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 92px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 92px;&quot; width=&quot;221&quot; height=&quot;188&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Migrate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 배포&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 92px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VMware VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 실행되는 경량 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해당 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;머신을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 검색 및 평가하고 에이전트 없는 마이그레이션을 사용하여 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;머신을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 마이그레이션하는 데 사용됩니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 92px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;평가를 위해 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 이미 설정한 경우 에이전트 없는 마이그레이션에 동일한 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 사용할 수 있습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 92px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수 아님.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;평가를 위해 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 설정한 경우 해당 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플라이언스를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 그대로 두거나 평가가 완료된 경우 제거할 수 있습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 42px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 42px;&quot; width=&quot;221&quot; height=&quot;32&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버 평가 도구 사용&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 42px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Migrate: &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버 평가 도구를 사용하여 머신을 평가합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 42px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;평가는 선택 사항입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 42px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;평가는 선택 사항입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 42px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 42px;&quot; width=&quot;221&quot; height=&quot;42&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마이그레이션 도구 사용&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 42px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Azure Migrate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프로젝트에 마이그레이션 및 현대화 도구를 추가합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 42px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 42px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 42px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 42px;&quot; width=&quot;221&quot; height=&quot;33&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마이그레이션을 위해 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VMware &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;준비&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 42px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VMware &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버 및 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 대한 설정을 구성합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 42px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 42px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 45px;&quot; width=&quot;221&quot; height=&quot;45&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Mobility Service &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설치&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 45px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Mobility Service&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 복제하려는 각 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 실행됩니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 45px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필요하지 않음&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 45px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 84px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 84px;&quot; width=&quot;221&quot; height=&quot;71&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제 어플라이언스 배포&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 84px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #75b6e7;&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/migrate-replication-appliance?view=migrate-classic&quot;&gt;복제 어플라이언스&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 에이전트 기반 마이그레이션에 사용되며 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 실행되는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Mobility Service&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;와 마이그레이션 및 현대화 도구 간에 연결됩니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 84px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필요하지 않음&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 84px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 45px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 45px;&quot; width=&quot;221&quot; height=&quot;45&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. VM &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제를 사용하도록 설정&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 45px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복제 설정을 구성하고 복제할 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;을 선택&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 45px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 45px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 44px;&quot; width=&quot;221&quot; height=&quot;44&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;테스트 마이그레이션 실행&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 44px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;테스트 마이그레이션을 실행하여 모든 것이 예상대로 작동하는지 확인합니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 44px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 44px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 20.6977%; height: 21px;&quot; width=&quot;221&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전체 마이그레이션 실행&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 36.3953%; height: 21px;&quot; width=&quot;413&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VM &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마이그레이션&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 21px;&quot; width=&quot;202&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.7907%; height: 21px;&quot; width=&quot;259&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필수&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;5. Agentless 추가 특징&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;vCenter에 연결해 게스트 OS에 에이전트 설치 없이 VMware VM을 Azure로 복제/마이그레이션하는 방식&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전용 복제 어플라이언스(어플라이언스/게이트웨이) 를 배포 &amp;rarr; vCenter와 스토리지에서 스냅샷 기반 증분 복제 수집 &amp;rarr; Azure로 전송 &amp;rarr; 테스트 마이그레이션 후 컷오버&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;검색이 완료되면 검색된 서버를 그룹으로 수집하고 그룹별로 평가를 실행&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;6. Agentless 동작 흐름&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #1c1d1f; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;발견(Discovery): vCenter 등록 &amp;rarr; 인벤토리/성능 수집&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;평가(Assessment): 목표 Azure VM Size/SKU&amp;middot;디스크&amp;middot;비용 산정&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;복제(Replication): 초기 전체 &amp;rarr; 이후 증분 복제(CBT)&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;테스트 마이그레이션: 다운타임 없이 검증 환경 부팅&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마이그레이션(컷오버): 짧은 정지 후 전환, 최종 동기화&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. Agent 방식 제약 사항 상세 내용&lt;/h3&gt;
&lt;p data-end=&quot;113&quot; data-start=&quot;81&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;(1) 지원 운영체제 (Windows + Linux)&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;151&quot; data-start=&quot;114&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; Azure Migrate의 agent 기반(Migration and Modernization 툴) 마이그레이션 방식은 다양한 OS를 지원합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;660&quot; data-start=&quot;153&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;231&quot; data-start=&quot;153&quot;&gt;&lt;span&gt;&lt;b&gt;Windows&lt;/b&gt;: Azure Migrate는 UEFI 기반 머신을 Azure Generation 2 VM으로 마이그레이션하며, BIOS 기반 머신은 Generation 1 VM으로 마이그레이션됩니다&lt;/span&gt; &lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/migrate/prepare-for-migration?view=migrate-classic&amp;amp;utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;TECHCOMMUNITY.MICROSOFT.COM&lt;/span&gt;&lt;span&gt;+6&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+6&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Reddit&lt;/span&gt;&lt;span&gt;+6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-state=&quot;closed&quot;&gt;&lt;span data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/azure/migrate/common-questions-server-migration?view=migrate-classic&amp;amp;utm_source=chatgpt.com&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Reddit&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Microsoft Learn&lt;/span&gt;&lt;span&gt;+9&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/li&gt;
&lt;li data-end=&quot;660&quot; data-start=&quot;232&quot;&gt;&lt;span&gt;&lt;b&gt;지원되는 OS 목록&lt;/b&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;660&quot; data-start=&quot;274&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;315&quot; data-start=&quot;274&quot;&gt;&lt;span&gt;&lt;b&gt;Windows Server&lt;/b&gt;: 2025, 2022, 2019, 2016, 2012, 2012 R2 (단, EOS 버전은 안정성 보장 안 됨)&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;357&quot; data-start=&quot;318&quot;&gt;&lt;span&gt;&lt;b&gt;Windows 10 / 11 (Pro, Enterprise)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;575&quot; data-start=&quot;360&quot;&gt;&lt;b&gt;Linux 분포&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;575&quot; data-start=&quot;380&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;419&quot; data-start=&quot;380&quot;&gt;&lt;span&gt;SUSE: Enterprise Server 15 SP1&amp;ndash;SP6, 12 SP4&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;463&quot; data-start=&quot;424&quot;&gt;&lt;span&gt;Ubuntu Server: 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;507&quot; data-start=&quot;468&quot;&gt;&lt;span&gt;RHEL: 6.x, 7.x (7.0&amp;ndash;7.8), 8.0&amp;ndash;8.1, 9.x&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;527&quot; data-start=&quot;512&quot;&gt;CentOS Stream&lt;/li&gt;
&lt;li data-end=&quot;575&quot; data-start=&quot;532&quot;&gt;&lt;span&gt;Oracle Linux: 6, 7.7, 7.7‑CI, 8, 9&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;660&quot; data-start=&quot;578&quot;&gt;&lt;span&gt;모든 경우에 대해 agentless/agent 기반 VMware 및 agentless Hyper‑V 방식 모두 지원&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;743&quot; data-start=&quot;663&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;주의&lt;/b&gt;: Windows Server 2003, 2008, 2012, 2012 R2와 같이 EOS(End of Support)된 운영체제는 Azure Migrate가 일관되고 안정적인 결과를 보장하지 않으며, 마이그레이션 전 업그레이드를 강력히 권고합니다&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;793&quot; data-start=&quot;750&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;(2) 물리 서버 (또는 OS-불특정 머신) 마이그레이션에서의 OS 제약&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;834&quot; data-start=&quot;795&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp; agent 기반 방식은 물리 서버 마이그레이션에도 활용되는데, 이 경우 다음과 같은 OS 및 스토리지 관련 제약사항이 존재합니다:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1792&quot; data-start=&quot;836&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1137&quot; data-start=&quot;836&quot;&gt;&lt;span&gt;&lt;b&gt;파일 시스템 및 파티션&lt;/b&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1137&quot; data-start=&quot;880&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;921&quot; data-start=&quot;880&quot;&gt;&lt;span&gt;Windows: NTFS만 지원&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1052&quot; data-start=&quot;924&quot;&gt;&lt;span&gt;Linux: ext4, xfs, btrfs 지원&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;mdash; ZFS, UFS, ReiserFS, DazukoFS 등은 지원하지 않거나 특별 마운트 절차 필요&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1137&quot; data-start=&quot;1055&quot;&gt;&lt;span&gt;예: ReiserFS는 명시적으로 &amp;ldquo;지원되지 않음&amp;rdquo;으로 언급됨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1620&quot; data-start=&quot;1139&quot;&gt;&lt;span&gt;&lt;b&gt;디스크/볼륨 제약&lt;/b&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1620&quot; data-start=&quot;1183&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1224&quot; data-start=&quot;1183&quot;&gt;&lt;span&gt;&lt;b&gt;UEFI Secure Boot&lt;/b&gt;: 지원되지 않음&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1309&quot; data-start=&quot;1227&quot;&gt;&lt;span&gt;&lt;b&gt;OS 디스크 크기&lt;/b&gt;: Gen 1 VM 최대 2 TB / Gen 2 VM 최대 4 TB. 데이터 디스크는 최대 32 TB까지 지원&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1353&quot; data-start=&quot;1312&quot;&gt;&lt;span&gt;&lt;b&gt;디스크 수&lt;/b&gt;: 최대 63개까지&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1397&quot; data-start=&quot;1356&quot;&gt;&lt;span&gt;&lt;b&gt;암호화된 디스크/볼륨&lt;/b&gt;: 마이그레이션 대상에서 제외됨&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1441&quot; data-start=&quot;1400&quot;&gt;&lt;span&gt;&lt;b&gt;공유 디스크 클러스터&lt;/b&gt;: 지원되지 않음&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1620&quot; data-start=&quot;1444&quot;&gt;&lt;span&gt;&lt;b&gt;NFS, iSCSI, 페어링 NIC, IPv6, PV 드라이버 등&lt;/b&gt;: 여러 항목에서 제약 눈에 띔&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1620&quot; data-start=&quot;1492&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1533&quot; data-start=&quot;1492&quot;&gt;&lt;span&gt;예: iSCSI 대상 머신은 agentless 마이그레이션에선 지원되지 않음.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1620&quot; data-start=&quot;1538&quot;&gt;&lt;span&gt;멀티패스 IO는 Windows 서버에서 특정 조건 하에서만 지원&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1792&quot; data-start=&quot;1622&quot;&gt;&lt;span&gt;&lt;b&gt;VM 설정 제한&lt;/b&gt;:&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1792&quot; data-start=&quot;1666&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1707&quot; data-start=&quot;1666&quot;&gt;&lt;span&gt;BitLocker 활성화된 경우 복제 체크 실패 &amp;rarr; BitLocker 비활성화 필요&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1792&quot; data-start=&quot;1710&quot;&gt;&lt;span&gt;VM 이름 조건: 1~63자, 영문&amp;middot;숫자&amp;middot;하이픈만 허용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;188&quot; data-start=&quot;158&quot; data-ke-size=&quot;size23&quot;&gt;8. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;WAAgent (WALinuxAgent)란?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1246&quot; data-start=&quot;839&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;264&quot; data-start=&quot;190&quot;&gt;&lt;b&gt;정식 이름&lt;/b&gt;: Microsoft Azure Linux Agent (WALinuxAgent, 줄여서 waagent)&lt;/li&gt;
&lt;li data-end=&quot;323&quot; data-start=&quot;265&quot;&gt;&lt;b&gt;역할&lt;/b&gt;: Linux VM이 &lt;b&gt;Azure 플랫폼과 통신&lt;/b&gt;할 수 있도록 해주는 핵심 에이전트, &lt;b&gt;Azure 위에서 Linux VM이 정상적으로 동작하고 관리될 수 있도록 해주는 에이전트&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;750&quot; data-start=&quot;324&quot;&gt;&lt;b&gt;기능&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;750&quot; data-start=&quot;336&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;426&quot; data-start=&quot;336&quot;&gt;&lt;b&gt;VM 초기화&lt;/b&gt;: Azure Fabric에서 VM을 부팅할 때, 호스트에서 전달된 구성(Hostname, SSH 키, 사용자 계정 등)을 OS에 적용&lt;/li&gt;
&lt;li data-end=&quot;475&quot; data-start=&quot;429&quot;&gt;&lt;b&gt;네트워킹&lt;/b&gt;: DHCP 클라이언트 역할을 하여 VM 네트워크 설정 관리&lt;/li&gt;
&lt;li data-end=&quot;537&quot; data-start=&quot;478&quot;&gt;&lt;b&gt;스토리지 관리&lt;/b&gt;: Azure에서 제공하는 리소스 디스크를 자동으로 마운트하고 스왑 공간 구성&lt;/li&gt;
&lt;li data-end=&quot;621&quot; data-start=&quot;540&quot;&gt;&lt;b&gt;확장(Extensions) 관리&lt;/b&gt;: Azure Backup, Monitoring, Security 확장 에이전트 등을 설치하고 관리&lt;/li&gt;
&lt;li data-end=&quot;677&quot; data-start=&quot;624&quot;&gt;&lt;b&gt;상태 보고&lt;/b&gt;: VM의 상태/헬스 정보를 Azure Control Plane에 전달&lt;/li&gt;
&lt;li data-end=&quot;750&quot; data-start=&quot;680&quot;&gt;&lt;b&gt;마이그레이션 시 필수 역할&lt;/b&gt;: 복제/스냅샷/에이전트 기반 마이그레이션에서 VM이 Azure와 통신하기 위해 필요&lt;/li&gt;
&lt;li data-end=&quot;750&quot; data-start=&quot;680&quot;&gt;&lt;b&gt;&lt;b&gt;Azure Migrate (agent 기반)일 경우 &lt;/b&gt;&lt;/b&gt;Linux VM을 온프레미스 &amp;rarr; Azure로 옮길 때, 마이그레이션 후 VM이&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Azure 환경에 맞게 네트워킹/스토리지/헬스 리포팅 가능하도록 구성하며, &lt;/b&gt;마이그레이션 전 해당 Linux VM에 waagent가 설치되어 있어야, 복제 후 부팅이 정상적으로 됨&lt;/li&gt;
&lt;li data-end=&quot;750&quot; data-start=&quot;680&quot;&gt;&lt;b&gt;Azure VM 운영 &lt;/b&gt;VM Insights, Log Analytics, Security Extensions 같은 관리 도구들이 모두 waagent를 통해 배포&amp;middot;실행되며, 없으면 VM이 Azure Portal에서 &amp;ldquo;Provisioning failed&amp;rdquo; 상태가 되거나, IP/디스크 설정이 안 잡히는 문제 발생 가능.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 참고 문서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VMware &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;마이그레이션 옵션 선택 &lt;a href=&quot;https://learn.microsoft.com/ko-kr/azure/migrate/server-migrate-overview?view=migrate-classic&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learn.microsoft.com/ko-kr/azure/migrate/server-migrate-overview?view=migrate-classic&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/38</guid>
      <comments>https://ktzzang0601.tistory.com/38#entry38comment</comments>
      <pubDate>Sun, 24 Aug 2025 09:43:33 +0900</pubDate>
    </item>
    <item>
      <title>Dockerfile 기본 개념 및 레이어 구성 원리</title>
      <link>https://ktzzang0601.tistory.com/36</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 개념&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;도커 이미지(Docker Image)를 자동으로 만드는 설계도(스크립트)&lt;/li&gt;
&lt;li data-end=&quot;214&quot; data-start=&quot;107&quot;&gt;&lt;b&gt;Dockerfile&lt;/b&gt;은 텍스트 파일로, 어떤 &lt;b&gt;베이스 이미지&lt;/b&gt;를 쓰고, 어떤 &lt;b&gt;패키지/파일/설정&lt;/b&gt;을 넣을지, 마지막에 &lt;b&gt;어떻게 실행할지&lt;/b&gt;를 단계별로 적어놓은 문서입니다.&lt;/li&gt;
&lt;li data-end=&quot;266&quot; data-start=&quot;215&quot;&gt;Docker는 이 파일을 읽어 &lt;b&gt;위에서 아래로 순차 실행&lt;/b&gt;하면서 이미지를 빌드합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 기본 명령&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;753&quot; data-start=&quot;461&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;524&quot; data-start=&quot;461&quot;&gt;&lt;b&gt;실제 파일 변화를 만드는 명령:&lt;/b&gt; RUN, COPY, ADD &amp;rarr; 읽기 전용 FS 레이어가 생성&lt;/li&gt;
&lt;li data-end=&quot;700&quot; data-start=&quot;525&quot;&gt;&lt;b&gt;메타데이터/구성 변경 중심:&lt;/b&gt; ENV, WORKDIR, USER, EXPOSE, VOLUME, LABEL, ENTRYPOINT, CMD, ARG 등&lt;/li&gt;
&lt;li data-end=&quot;700&quot; data-start=&quot;525&quot;&gt;파일 내용을 늘리지는 않지만 &lt;b&gt;이미지 구성(메타데이터)&lt;/b&gt; 는 바뀌고, &lt;b&gt;빌드 캐시 키&lt;/b&gt;에도 영향을 줍니다.&lt;/li&gt;
&lt;li data-end=&quot;700&quot; data-start=&quot;525&quot;&gt;FROM 은 &lt;b&gt;새 빌드 단계(stage)&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 를 시작합니다(멀티 스테이지에서 중요). 따라서&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px; color: #666666;&quot;&gt;&amp;nbsp;어떤 단계에서든 &lt;/span&gt;&lt;b&gt;그 단계가 바뀌면 그 뒤의 모든 단계 캐시가 무효화&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px; color: #666666;&quot;&gt;되고 다시 빌드됩니다(계단식 무효화).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;letter-spacing: 0px; color: #333333;&quot;&gt;3. 빌드 캐쉬가 동작하는 방식&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;941&quot; data-start=&quot;845&quot;&gt;Docker/BuildKit은 &lt;b&gt;&amp;ldquo;명령 + 입력(컨텍스트, 이전 레이어 해시 등)&amp;rdquo;&lt;/b&gt; 으로 캐시 키를 만들고, 같으면 &lt;b&gt;재실행 없이&lt;/b&gt; 이전 레이어를 재사용합니다.&lt;/li&gt;
&lt;li data-end=&quot;996&quot; data-start=&quot;942&quot;&gt;&lt;b&gt;파일 복사(COPY/ADD)&lt;/b&gt; 는 &lt;b&gt;복사되는 파일의 내용 해시&lt;/b&gt;가 바뀌면 캐시 무효.&lt;/li&gt;
&lt;li data-end=&quot;1034&quot; data-start=&quot;997&quot;&gt;&lt;b&gt;ARG/ENV 값 변경&lt;/b&gt; 도 이후 단계 캐시를 깨뜨립니다.&lt;/li&gt;
&lt;li data-end=&quot;1152&quot; data-start=&quot;1035&quot;&gt;&lt;b&gt;네트워크 의존 RUN(예: apt-get)&lt;/b&gt; 결과도 캐싱되지만, 베이스 이미지 업데이트 등은 --pull(베이스 최신화) 또는 --no-cache(모든 캐시 무시) 같은 옵션으로 제어합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.&amp;nbsp; Best Practice&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-end=&quot;3528&quot; data-start=&quot;1681&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot; data-end=&quot;1991&quot; data-start=&quot;1681&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1803&quot; data-start=&quot;1723&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;변동이 적은 것 &amp;rarr; 위로, 자주 바뀌는 것 &amp;rarr; 아래로&lt;br /&gt;&lt;/b&gt;- 의존성 설치(자주 안 바뀜) 레이어를 먼저 만들고, &lt;b&gt;소스 코드 COPY&lt;/b&gt; 등 자주 바뀌는 단계는 뒤로 배치 &amp;rarr; &lt;b&gt;캐시 적중률&amp;uarr;&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt; &lt;b&gt;RUN 묶기 vs 가독성&lt;/b&gt; &lt;br /&gt;-&amp;nbsp;&lt;/b&gt;불필요한 레이어를 줄이려고 RUN 을 과도하게 한 줄로 합치기보다, &lt;b&gt;의미 단위로 적절히 묶되&lt;/b&gt; 레이어 수를 관리하세요.- - 패키지 매니저는 한 레이어에서 갱신/설치를 끝내고 &lt;b&gt;캐시 파일 삭제&lt;/b&gt;까지 마무리&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;.dockerignore&lt;/b&gt; 적극 사용&lt;br /&gt;- node_modules, .git, 빌드 산출물 등 &lt;b&gt;캐시를 자주 깨뜨리는 불필요 파일&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;을 빌드 컨텍스트에서 제외.&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;ADD 대신 COPY&lt;br /&gt;&lt;/b&gt;- URL 자동 다운로드/압축 해제 등 &lt;b&gt;암묵적 동작&lt;/b&gt;이 있는 ADD 대신, &lt;b&gt;예측 가능한 COPY&lt;/b&gt; 를 기본으로.&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;멀티 스테이지 빌드&lt;/b&gt; 로 최종 이미지 슬림화&lt;br /&gt;- 빌드 도구&amp;middot;헤더 등 &lt;b&gt;개발용 레이어&lt;/b&gt;는 중간 단계에 남기고, &lt;b&gt;최종 스테이지는 실행 파일만&lt;/b&gt; 가져갑니다.&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;BuildKit 고급 마운트&lt;br /&gt;&lt;/b&gt;- 캐시가 이미지에 포함되지 않도록&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;버전 고정 &amp;amp; 재현성&lt;br /&gt;&lt;/b&gt;- 패키지 버전을 고정(pinning)해 캐시 안정성을 높이고 &amp;ldquo;어제와 오늘 빌드가 다른&amp;rdquo; 상황을 줄입니다.&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;VOLUME 주의&lt;br /&gt;&lt;/b&gt;- VOLUME /data 를 선언하면 &lt;b&gt;해당 경로의 이후 변경은 컨테이너 볼륨에&lt;/b&gt; 매핑됩니다. VOLUME 선언 &lt;b&gt;이전&lt;/b&gt;에 넣은 파일은 런타임에 보이지 않을 수 있으니 순서를 신중히.&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;베이스 이미지 최신화&lt;br /&gt;&lt;/b&gt;- 태그가 같은데 내용이 바뀐 경우를 대비해 &lt;b&gt;정기적으로 --pull&lt;/b&gt; 로 베이스를 갱신하거나, &lt;b&gt;digest(sha256:...) 고정&lt;/b&gt;을 검토하세요.&lt;/li&gt;
&lt;li data-end=&quot;1803&quot; data-start=&quot;1723&quot;&gt;&lt;b&gt;레이어/캐시 청소&lt;br /&gt;&lt;/b&gt;- 개발 환경 용량이 불어나면 docker system df, docker system prune, (BuildKit) docker builder prune 로 캐시/중간 레이어를 정리.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 레이어 구성 원리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;202&quot; data-start=&quot;137&quot;&gt;Dockerfile의 각 &lt;b&gt;RUN, COPY, ADD 명령&lt;/b&gt;은 새로운 &lt;b&gt;레이어(layer)&lt;/b&gt; 를 만듭니다.&lt;/li&gt;
&lt;li data-end=&quot;257&quot; data-start=&quot;203&quot;&gt;&lt;b&gt;레이어는 캐시&lt;/b&gt;로 재사용 가능하고, &lt;b&gt;불변&lt;/b&gt;이라서 한 번 만들어지면 바뀌지 않습니다.&lt;/li&gt;
&lt;li data-end=&quot;257&quot; data-start=&quot;203&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;레이어를 많이 나누게 되면 얻는 이점/단점&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;- 캐시 효율 증대&lt;br /&gt;- 문제 원인 추적이 쉬움&lt;br /&gt;- 이미지 레이어 수가 늘어나면 저장/전송할 때 관리해야 할 블롭(blob)이 많아져서 오버헤드가 조금 생김.&lt;br /&gt;- 불필요한 파일 누적 위험&lt;/li&gt;
&lt;li data-end=&quot;257&quot; data-start=&quot;203&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;레이어를 적게 묶어서 만드는 이점/단점&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;- 이미지 크기 최적화&lt;br /&gt;- 전송/저장 효율 증대 : 레이어 수가 적어서 속도 저장 효율 올라감&lt;br /&gt;- 캐시 효율이 떨어짐&lt;br /&gt;- 가독성이 낮음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;6. Dockerfile 주요 명령어 개념 및 예시&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;`FROM`: 베이스 이미지 지정 (ex: `FROM ubuntu:20.04`)&lt;/li&gt;
&lt;li&gt;`RUN`: 이미지 빌드 시 실행할 커맨드 (ex: `RUN apt update &amp;amp;&amp;amp; apt install -y nginx`)&lt;/li&gt;
&lt;li&gt;`COPY`, `ADD`: 로컬 파일을 이미지 안으로 복사&lt;/li&gt;
&lt;li&gt;`ENV`: 환경 변수 설정&lt;/li&gt;
&lt;li&gt;`EXPOSE`: 컨테이너에서 서비스할 포트 명시&lt;/li&gt;
&lt;li&gt;`CMD` 또는 `ENTRYPOINT`: 컨테이너 시작 시 실행할 명령어&lt;/li&gt;
&lt;li&gt;RUN 명령어에서 여러 명령 병합 방법&lt;br /&gt;- 여러 개 명령을 한 줄에서 실행할 때는 `&amp;amp;&amp;amp;`로 체이닝하여 이전 명령 성공 시 다음 명령 실행&lt;br /&gt;&amp;nbsp; &amp;nbsp;예) `RUN apt update &amp;amp;&amp;amp; apt install -y nginx`&lt;br /&gt;- `\`&amp;nbsp;(백슬래시)&amp;nbsp;사용해&amp;nbsp;여러&amp;nbsp;줄로&amp;nbsp;나눠&amp;nbsp;가독성&amp;nbsp;개선&amp;nbsp;가능&lt;/li&gt;
&lt;li&gt;컨테이너 실행 흐름&lt;br /&gt;1. Dockerfile&amp;nbsp;작성&amp;nbsp;(설치&amp;nbsp;및&amp;nbsp;설정&amp;nbsp;명령어&amp;nbsp;포함)&lt;br /&gt;2. `docker&amp;nbsp;build`&amp;nbsp;명령으로&amp;nbsp;이미지&amp;nbsp;생성&amp;nbsp;(Dockerfile대로&amp;nbsp;순차적&amp;nbsp;실행)&lt;br /&gt;3. `docker&amp;nbsp;run`&amp;nbsp;명령으로&amp;nbsp;이미지를&amp;nbsp;실행해&amp;nbsp;컨테이너&amp;nbsp;상태&amp;nbsp;시작&lt;br /&gt;4. 컨테이너 안에서 앱 또는 서비스 동작&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. 결론&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Dockerfile은 컨테이너 이미지 만드는 레시피&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;`RUN`은 이미지 만드는 동안 실행할 명령어 입력 (명령어 묶는 기법은 `&amp;amp;&amp;amp;`가 일반적)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;빌드하면 `RUN` 명령어 순서대로 실행되며 이미지가 만들어짐&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;이미지를 기반으로 컨테이너를 실행해 서비스 구동하는 구조입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;8. 참고 문서&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DockerFile image layer 구성 &lt;a href=&quot;https://docs.docker.com/get-started/docker-concepts/building-images/understanding-image-layers/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.docker.com/get-started/docker-concepts/building-images/understanding-image-layers/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Azure 상식</category>
      <author>ktzzang0601</author>
      <guid isPermaLink="true">https://ktzzang0601.tistory.com/36</guid>
      <comments>https://ktzzang0601.tistory.com/36#entry36comment</comments>
      <pubDate>Sat, 23 Aug 2025 03:08:04 +0900</pubDate>
    </item>
  </channel>
</rss>