<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>모레</title>
    <link>https://m-oley.tistory.com/</link>
    <description>Linux 기반의 솔루션에 대해 정리한 내용</description>
    <language>ko</language>
    <pubDate>Mon, 20 Jul 2026 23:24:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>모레라니</managingEditor>
    <image>
      <title>모레</title>
      <url>https://tistory1.daumcdn.net/tistory/6713188/attach/7f468e0c4eb14384a0e0ae6c06bab10a</url>
      <link>https://m-oley.tistory.com</link>
    </image>
    <item>
      <title>Kubelet이 Metrics Server로, Metrics Server가 API Server로 데이터를 전송하는 과정</title>
      <link>https://m-oley.tistory.com/53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1589&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU8spA/btsLAWECMZQ/xZKrp9LmnhRKCK8tJDKcFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU8spA/btsLAWECMZQ/xZKrp9LmnhRKCK8tJDKcFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU8spA/btsLAWECMZQ/xZKrp9LmnhRKCK8tJDKcFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU8spA%2FbtsLAWECMZQ%2FxZKrp9LmnhRKCK8tJDKcFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1589&quot; height=&quot;964&quot; data-origin-width=&quot;1589&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Kubernetes에서 Kubelet이 Metrics Server로, 그리고 Metrics Server가 API Server로 데이터를 전송하는 과정에서 &lt;b&gt;데이터는 파일에 저장되지 않고 메모리 내에서 처리됩니다&lt;/b&gt;. 이는 실시간 모니터링과 효율적인 데이터 전송을 위해 설계된 구조입니다. 아래는 데이터 흐름과 처리 방식에 대한 상세 설명입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-model-slug=&quot;gpt-4o&quot; data-message-id=&quot;d630671e-9c16-435a-8361-ddcfb5ef6b31&quot; data-message-author-role=&quot;assistant&quot;&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 데이터 전송 구조&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;a) Kubelet &amp;rarr; Metrics Server&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kubelet은 각 노드에서 실행되며, /metrics와 /metrics/cadvisor와 같은 HTTP 엔드포인트를 통해 실시간 성능 데이터를 노출합니다.&lt;/li&gt;
&lt;li&gt;이 엔드포인트는 JSON 또는 Prometheus 형식으로 데이터를 반환하며, Metrics Server는 HTTP 요청을 통해 이 데이터를 주기적으로 수집합니다.&lt;/li&gt;
&lt;li&gt;데이터는 메모리 내에서 처리되며, 디스크에 저장되지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;b) Metrics Server &amp;rarr; API Server&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Metrics Server는 Kubelet에서 수집한 데이터를 처리하여 클러스터 전체의 리소스 사용량(CPU, 메모리 등)을 집계합니다.&lt;/li&gt;
&lt;li&gt;이 집계된 데이터는 Kubernetes API Server의 metrics.k8s.io API를 통해 노출됩니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: kubectl top nodes, kubectl top pods 명령어를 통해 조회 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터는 API Server와 Metrics Server 간에 &lt;b&gt;JSON 형식&lt;/b&gt;으로 전송되며, 메모리 내에서 처리됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 데이터 저장 방식&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Kubelet&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kubelet은 데이터를 직접 디스크에 저장하지 않습니다. 대신, /metrics 엔드포인트에서 실시간 데이터를 생성하여 제공하며, 이 데이터는 메모리 상에서 관리됩니다.&lt;/li&gt;
&lt;li&gt;/metrics/cadvisor는 cAdvisor에서 수집한 컨테이너 수준의 데이터를 제공합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Metrics Server&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Metrics Server도 데이터를 디스크에 저장하지 않고, 메모리 내에서 처리합니다.&lt;/li&gt;
&lt;li&gt;수집된 데이터는 일시적으로 메모리에 보관되며, API Server에 요청이 있을 때 처리된 데이터를 반환합니다.&lt;/li&gt;
&lt;li&gt;이 설계는 경량화를 목표로 하며, 장기적인 데이터 저장 및 분석은 Prometheus와 같은 별도의 도구를 사용하도록 의도되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;API Server&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Metrics Server가 제공하는 메트릭 데이터는 API Server에 &lt;b&gt;영구적으로 저장되지 않습니다&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;API Server는 단순히 Metrics Server로부터 데이터를 요청할 때마다 제공받아 사용자나 클라이언트로 전달합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 데이터가 파일로 저장되지 않는 이유&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;b&gt;경량화&lt;/b&gt;: Metrics Server는 경량 메트릭 수집 도구로 설계되었으며, 장기 데이터를 저장하지 않습니다. 이는 클러스터 리소스 사용을 최소화하기 위함입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장기 모니터링 외부화&lt;/b&gt;: 장기적인 데이터 저장과 분석은 Prometheus와 같은 모니터링 도구의 역할로 분리되어 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;성능&lt;/b&gt;: 메모리 내에서 데이터를 처리함으로써 높은 성능과 낮은 지연 시간을 제공합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 장기적인 데이터 저장 및 분석&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 메트릭 데이터를 장기적으로 저장하거나 분석해야 하는 경우, 다음과 같은 도구를 사용합니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;a) Prometheus&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할&lt;/b&gt;: 메트릭 데이터를 장기간 저장하며, 시계열 데이터베이스로 동작&lt;/li&gt;
&lt;li&gt;&lt;b&gt;동작 방식&lt;/b&gt;: Prometheus가 Kubelet 또는 Metrics Server의 /metrics 엔드포인트를 스크랩하여 데이터를 저장&lt;/li&gt;
&lt;li&gt;&lt;b&gt;저장 위치&lt;/b&gt;: Prometheus의 로컬 스토리지 또는 원격 저장소&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;b) Loki, Elasticsearch&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할&lt;/b&gt;: 로그 데이터를 저장 및 분석&lt;/li&gt;
&lt;li&gt;Metrics Server 자체 데이터는 저장하지 않지만, Kubernetes 이벤트 또는 클러스터 로그와 결합하여 메트릭 데이터를 간접적으로 활용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 요약&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;b&gt;데이터 저장 위치&lt;/b&gt;: Kubelet, Metrics Server, API Server 모두 데이터를 디스크에 저장하지 않고 메모리에서 처리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 형식&lt;/b&gt;: JSON 또는 Prometheus 형식으로 전송됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;장기 데이터 저장&lt;/b&gt;: Prometheus와 같은 외부 도구를 사용해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>kubernetes</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/53</guid>
      <comments>https://m-oley.tistory.com/53#entry53comment</comments>
      <pubDate>Sun, 29 Dec 2024 17:05:07 +0900</pubDate>
    </item>
    <item>
      <title>K8s 노드 및 클러스터 리소스 사용량 분석</title>
      <link>https://m-oley.tistory.com/52</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. K8s 노드 및 클러스터 리소스 사용량 분석&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;a) 메트릭 수집 도구 활용&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Kubelet Metrics&lt;/b&gt;: 각 노드에서 Kubelet이 제공하는 메트릭을 통해 CPU, 메모리, 디스크, 네트워크 사용량을 모니터링&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Prometheus &amp;amp; Grafana&lt;/b&gt;: 클러스터 전반의 메트릭을 수집하고 시각화하는 데 유용한 도구&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Metrics Server&lt;/b&gt;: Kubernetes 네이티브 리소스 메트릭을 제공하며 HPA와 같은 기능에 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;b) 주요 리소스 분석 지표&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Node Utilization&lt;/b&gt;: CPU, 메모리의 사용량 비율을 확인하여 노드 간 부하 분배를 분석&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pod Resource Requests/Usage&lt;/b&gt;: 각 Pod가 요청(requests)한 리소스와 실제 사용량(usage)을 비교&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Evicted Pods&lt;/b&gt;: 메모리 부족 등으로 인해 축출된 Pod를 모니터링&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Load Distribution&lt;/b&gt;: 클러스터의 워크로드가 특정 노드에 집중되어 있지 않은지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;c) 리소스 사용량 시각화&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;kubectl top 명령어: Pod 및 노드의 실시간 리소스 사용량 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735443373192&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl top nodes
kubectl top pods&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Grafana Dashboard&lt;/b&gt;: 클러스터 사용량을 한눈에 볼 수 있는 대시보드 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 리소스 과다 사용 감지 및 조정&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;a) ResourceQuota 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Namespace 단위로 리소스 사용을 제한하여 과도한 리소스 소비를 방지&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예시: CPU, 메모리, Pod 수 제한&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735443272470&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-quota
  namespace: example-namespace
spec:
  hard:
    pods: &quot;10&quot;
    requests.cpu: &quot;4&quot;
    requests.memory: &quot;8Gi&quot;
    limits.cpu: &quot;8&quot;
    limits.memory: &quot;16Gi&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;b) LimitRange 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pod, Container 단위로 리소스 요청(requests)과 상한(limits)을 정의하여 과다 사용 방지&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예시: Container당 CPU와 메모리 제한
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735443426517&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: v1
kind: LimitRange
metadata:
  name: limits
  namespace: example-namespace
spec:
  limits:
  - default:
      cpu: &quot;500m&quot;
      memory: &quot;512Mi&quot;
    defaultRequest:
      cpu: &quot;250m&quot;
      memory: &quot;256Mi&quot;
    type: Container&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;c) 과다 사용 탐지 및 알림&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Prometheus Alerts&lt;/b&gt;: 리소스 사용량 초과 시 알림 설정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Audit Logs&lt;/b&gt;: 특정 사용자가 과도한 리소스를 요청하는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 워크로드 최적화 및 스케일링&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;a) HPA (Horizontal Pod Autoscaler)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기능&lt;/b&gt;: Pod의 수를 동적으로 조정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기준&lt;/b&gt;: CPU 사용률, 메모리 사용률, 또는 사용자 정의 메트릭(Custom Metrics)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설정 예시&lt;/b&gt;:
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735443485919&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: hpa-example
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx-deployment
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;b) VPA (Vertical Pod Autoscaler)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기능&lt;/b&gt;: Pod 내 컨테이너의 requests와 limits를 동적으로 조정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;도입 효과&lt;/b&gt;: 리소스 과소/과다 요청을 방지하여 노드 활용 효율성 증가&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설정 예시&lt;/b&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735443521728&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: vpa-example
  namespace: default
spec:
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: nginx-deployment
  updatePolicy:
    updateMode: &quot;Auto&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;c) Cluster Autoscaler&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기능&lt;/b&gt;: 워크로드에 따라 클러스터의 노드 수를 자동으로 조정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;도입 사례&lt;/b&gt;: GKE, EKS, AKS 등 매니지드 클러스터에서 지원&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율적인 리소스 관리 및 최적화를 위해서는 지속적인 모니터링과 정책 기반 제어가 필수적입니다. Kubernetes의 네이티브 기능(ResourceQuota, LimitRange, HPA, VPA)과 도구(Prometheus, Grafana)를 적절히 활용하면 안정성과 비용 효율성을 동시에 확보할 수 있습니다.&lt;/p&gt;</description>
      <category>kubernetes</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/52</guid>
      <comments>https://m-oley.tistory.com/52#entry52comment</comments>
      <pubDate>Sat, 28 Dec 2024 22:07:39 +0900</pubDate>
    </item>
    <item>
      <title>Debian에 Anaconda를 설치</title>
      <link>https://m-oley.tistory.com/50</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Debian Linux에 Anaconda 패키지를 설치하는 간단한 튜토리얼입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Anaconda는 데이터 과학 및 머신 러닝 워크플로를 처리하는 데 필수적인 플랫폼입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;7,500개가 넘는 과학 패키지가 있어 대규모 데이터 처리, 예측 분석 및 과학적 컴퓨팅에 이상적인 솔루션입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Anaconda는 이러한 패키지와 종속성의 설치를 처리하여 직접 설치하는 번거로움을 덜어줍니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;게다가 통합된 Python 환경을 제공하므로 데이터 과학과 머신 러닝에 관심이 있는 모든 사람에게 적합한 선택입니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Debian에 Anaconda를 설치하는 방법&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래의 단계별 지침을 따르세요.&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;다운로드&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;터미널 창을 열고(CTRL+ALT+T) 다음 명령을 실행하여 시스템이 최신 상태인지 확인하세요.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot;&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade - y&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 설치를 위해, 우리는 웹사이트에서 공식 설치 프로그램을 다운로드해야 합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 페이지를 방문하여 Anaconda 설치 프로그램 스크립트를 다운로드하세요.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #5e5df0; color: #ffffff; text-align: center;&quot; href=&quot;https://www.anaconda.com/download&quot;&gt;아나콘다 다운로드&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A9C3o/btsJRAWozAD/OX4EaGyvyWJbXP3LdNmjj0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A9C3o/btsJRAWozAD/OX4EaGyvyWJbXP3LdNmjj0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A9C3o/btsJRAWozAD/OX4EaGyvyWJbXP3LdNmjj0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA9C3o%2FbtsJRAWozAD%2FOX4EaGyvyWJbXP3LdNmjj0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;394&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;공식 웹사이트에서 Anaconda 다운로드&lt;/p&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;아나콘다 설치&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다운로드 디렉토리로 가서 다음 bash 명령을 사용하여 설치합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시스템의 파일 이름과 다운로드 폴더를 변경할 수 있습니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;chmod +x Anaconda3-2023.07-1-Linux-x86_64.sh
./Anaconda3-2023.07-1-Linux-x86_64.sh&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;엔터를 치고 &quot;q&quot;를 누르세요. 그런 다음 &quot;yes&quot;를 입력하여 약관에 동의하세요(원하신다면!).&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/berD2q/btsJQzDYgw8/aP1zvGGxhE54VsdqREG73K/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/berD2q/btsJQzDYgw8/aP1zvGGxhE54VsdqREG73K/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/berD2q/btsJQzDYgw8/aP1zvGGxhE54VsdqREG73K/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FberD2q%2FbtsJQzDYgw8%2FaP1zvGGxhE54VsdqREG73K%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;847&quot; height=&quot;81&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;Anaconda 약관 동의&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;설치 프로그램은 설치를 위한 기본 폴더를 묻습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 이미지와 같이 홈의 기본 위치를 가정합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위치가 마음에 들면 Enter를 누르거나 지시에 따라 위치를 지정하세요.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cl3E6x/btsJPn5RHXX/6NoNu90owkhVUDyJTe9Oj0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cl3E6x/btsJPn5RHXX/6NoNu90owkhVUDyJTe9Oj0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cl3E6x/btsJPn5RHXX/6NoNu90owkhVUDyJTe9Oj0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcl3E6x%2FbtsJPn5RHXX%2F6NoNu90owkhVUDyJTe9Oj0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;282&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;기본 설치 디렉토리&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;설치 프로그램이 단계를 실행하는 동안 잠시 기다리세요.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FjIGG/btsJQUnuoHp/08g9pL3hkmsbb23ECtx9k1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FjIGG/btsJQUnuoHp/08g9pL3hkmsbb23ECtx9k1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FjIGG/btsJQUnuoHp/08g9pL3hkmsbb23ECtx9k1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFjIGG%2FbtsJQUnuoHp%2F08g9pL3hkmsbb23ECtx9k1%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;815&quot; height=&quot;461&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;Anaconda 설치가 진행 중입니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다음 메시지가 표시되면 Anaconda가 Debian&amp;nbsp; 시스템에 설치되어 있다는 의미입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;설치 프로그램은 conda 실행 파일을 init하라고 요청합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;yes를 입력하고 enter를 누릅니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6uJyD/btsJQDsGvso/ApRwHhRG1fSkHBzKbTUOR1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6uJyD/btsJQDsGvso/ApRwHhRG1fSkHBzKbTUOR1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6uJyD/btsJQDsGvso/ApRwHhRG1fSkHBzKbTUOR1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6uJyD%2FbtsJQDsGvso%2FApRwHhRG1fSkHBzKbTUOR1%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;815&quot; height=&quot;461&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;설치가 완료되었습니다&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;보시다시피 설치가 완료되었고 설치 프로그램이 .bashrc 파일을 수정했습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;변경 사항을 적용하려면 bashrc를 다시 컴파일해야 합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdFugL/btsJPzLWEvE/Q8riukQSnAZ2k3wRjgenVK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdFugL/btsJPzLWEvE/Q8riukQSnAZ2k3wRjgenVK/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdFugL/btsJPzLWEvE/Q8riukQSnAZ2k3wRjgenVK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdFugL%2FbtsJPzLWEvE%2FQ8riukQSnAZ2k3wRjgenVK%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;808&quot; height=&quot;531&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;bashrc 업데이트&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;설치 확인&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;conda list&amp;rdquo; 명령을 사용하여 설치를 확인합니다. 이 명령은 conda 환경의 패키지를 나열합니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;conda list&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또는, 다음 명령을 실행하여 설치가 올바른지 확인할 수도 있습니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;conda --version&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래에서 볼 수 있듯이, 내 테스트 시스템에서는 Anaconda 설치가 성공했습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZrJwM/btsJPRytpRm/8UYMS5wL5lkfbmdZWIAyL1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZrJwM/btsJPRytpRm/8UYMS5wL5lkfbmdZWIAyL1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZrJwM/btsJPRytpRm/8UYMS5wL5lkfbmdZWIAyL1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZrJwM%2FbtsJPRytpRm%2F8UYMS5wL5lkfbmdZWIAyL1%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;909&quot; height=&quot;398&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;설치 확인&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;아나콘다 제거&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Anaconda를 제거하려면 아래 명령을 통해 기본 설치 디렉터리를 삭제하기만 하면 됩니다.&lt;/p&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;rm -rf ~/anaconda3&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로 .bashrc 파일을 열고 설치 프로그램에서 추가한 파일의 마지막 부분을 제거(또는 주석 처리)합니다. 그런 다음 시스템을 다시 시작합니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;마무리 노트&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Debian에 Anaconda를 설치하려면 공식 웹사이트에서 Anaconda 설치 프로그램 파일을 다운로드하세요.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그런 다음 설치 프로그램 스크립트를 설치하고 &quot;conda list&quot; 또는 &quot;conda &amp;ndash;version&quot; 명령을 사용하여 확인하세요.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 글이 Debian Linux에 Anaconda를 설치하는 데 도움이 되기를 바랍니다.&lt;/p&gt;</description>
      <category>AI Dev</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/50</guid>
      <comments>https://m-oley.tistory.com/50#entry50comment</comments>
      <pubDate>Sun, 29 Sep 2024 13:14:06 +0900</pubDate>
    </item>
    <item>
      <title>Debian에 Jupyter Notebook 설치</title>
      <link>https://m-oley.tistory.com/49</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20200928_171122.jpg&quot; data-origin-width=&quot;5312&quot; data-origin-height=&quot;2988&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m5PKr/btsJQzDMY6P/2e2wJs36ZXIQKpaqT9kHY0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m5PKr/btsJQzDMY6P/2e2wJs36ZXIQKpaqT9kHY0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m5PKr/btsJQzDMY6P/2e2wJs36ZXIQKpaqT9kHY0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm5PKr%2FbtsJQzDMY6P%2F2e2wJs36ZXIQKpaqT9kHY0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;5312&quot; height=&quot;2988&quot; data-filename=&quot;20200928_171122.jpg&quot; data-origin-width=&quot;5312&quot; data-origin-height=&quot;2988&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Jupyter&lt;span&gt;&amp;nbsp;&lt;/span&gt;Notebook은 라이브 코드, 시각화 및 대화형 데이터를 만들고 공유할 수 있는 강력한 웹 기반 대화형 개발 도구입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노트북 형식은 코드와 텍스트를 결합하여 데이터 탐색, 분석 및 협업 프로젝트에 탁월한 선택입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 튜토리얼에서는 Debian 기반 시스템에 Jupyter Notebook을 설치하는 단계별 과정을 안내해 드리겠습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이를 통해 다양한 기능을 활용하고 프로그래밍 역량을 확장할 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;pip 설치&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시작하기 전에 Python 패키지 설치 프로그램인 pip가 시스템에 설치되어 있는지 확인하세요.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미 pip가 설치되어 있다면 이 단계를 건너뛸 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그렇지 않은 경우 다음 지침에 따라 설치하세요.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;터미널 창을 열고(Ctrl+Alt+T) 다음 명령을 입력하고 Enter를 누릅니다.&lt;/p&gt;
&lt;pre id=&quot;code_1727499057315&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt update 
sudo apt install python3 - pip&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호를 입력하라는 메시지가 표시될 수 있습니다. 비밀번호를 입력하고 설치가 완료될 때까지 기다리세요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;virtualenv 설치&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;필수는 아니지만 Jupyter Notebook 설치에서 이 도구를 통해 작업 환경을 격리하는 것이 좋습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 하면 설치하는 변경 사항이나 패키지가 시스템의 Python 환경을 방해하지 않습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가상 env를 설정하려면 아래 단계를 따르세요.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;터미널에 다음 명령을 입력하세요.&lt;/p&gt;
&lt;pre id=&quot;code_1727499109930&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt install python3 - virtualenv&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;설치가 완료될 때까지 기다리세요. 완료되면 다음 단계로 넘어가세요.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;가상 환경 만들기&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가상 환경을 만드는 것은 간단한 과정입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Jupyter Notebook을 위해 특별히 새로운 가상 환경을 설정하는 방법은 다음과 같습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가상 환경을 만들 디렉토리로 이동합니다. 터미널에서 다음 명령을 실행합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1727499161827&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;virtualenv my-jupyter-env&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;이 명령은 &quot;my-jupyter-env&quot;라는 새 디렉토리를 생성하는데, 여기에는 가상 환경 파일이 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/espuoy/btsJQmEwgXo/ooj4l3JlDAhYv0XFZEVz31/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/espuoy/btsJQmEwgXo/ooj4l3JlDAhYv0XFZEVz31/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/espuoy/btsJQmEwgXo/ooj4l3JlDAhYv0XFZEVz31/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fespuoy%2FbtsJQmEwgXo%2Fooj4l3JlDAhYv0XFZEVz31%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;jupyter 환경 생성&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;321&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;jupyter 환경 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;모든 파일 관리자를 통해 홈 폴더 아래에 디렉토리가 생성되었는지 확인할 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vYA1r/btsJPcDjg3Q/2la4O8fJ1f4CkoEMZZkjGk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vYA1r/btsJPcDjg3Q/2la4O8fJ1f4CkoEMZZkjGk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vYA1r/btsJPcDjg3Q/2la4O8fJ1f4CkoEMZZkjGk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvYA1r%2FbtsJPcDjg3Q%2F2la4O8fJ1f4CkoEMZZkjGk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;jupyter env 폴더&quot; loading=&quot;lazy&quot; width=&quot;917&quot; height=&quot;317&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;jupyter env 폴더&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;다음을 입력하여 가상 환경을 활성화합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1727499386221&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;source my-jupyter-env/bin/activate&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;가상 환경 내부에 들어왔음을 나타내는 터미널 프롬프트가 변경되는 것을 보실 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;883&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wgRT2/btsJQ5ozjLD/iRFn3g5xcDHX1VmQsKs3O0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wgRT2/btsJQ5ozjLD/iRFn3g5xcDHX1VmQsKs3O0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wgRT2/btsJQ5ozjLD/iRFn3g5xcDHX1VmQsKs3O0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwgRT2%2FbtsJQ5ozjLD%2FiRFn3g5xcDHX1VmQsKs3O0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;883&quot; height=&quot;214&quot; data-origin-width=&quot;883&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;환경을 활성화하다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Jupyter Notebook 설치&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가상 환경이 활성화되면 이제 Jupyter Notebook을 설치할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;터미널에 다음 명령을 입력하세요.&lt;/p&gt;
&lt;pre id=&quot;code_1727499491916&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install jupyter&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;이 명령은 필요한 패키지를 가져와 가상 환경에 Jupyter Notebook을 설치합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8t6N8/btsJQEZgz4u/UNcS3k9d42fdMFj8k4K3dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8t6N8/btsJQEZgz4u/UNcS3k9d42fdMFj8k4K3dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8t6N8/btsJQEZgz4u/UNcS3k9d42fdMFj8k4K3dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8t6N8%2FbtsJQEZgz4u%2FUNcS3k9d42fdMFj8k4K3dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;817&quot; height=&quot;604&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;pip를 사용하여 jupyter 설치&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Jupyter Notebook 실행&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;설치가 완료되면 Jupyter Notebook을 시작할 준비가 됩니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;터미널에 다음 명령을 입력하세요.&lt;/p&gt;
&lt;pre class=&quot;ebnf&quot; style=&quot;background-color: #f1f3f4; color: #000000; text-align: start;&quot;&gt;&lt;code&gt;jupyter notebook&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;명령을 실행하면 Jupyter Notebook이 시작되고 다음과 유사한 출력이 표시됩니다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duOWbI/btsJQktdpmD/YhghvYWlOBLiLnKpXE1AHK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duOWbI/btsJQktdpmD/YhghvYWlOBLiLnKpXE1AHK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duOWbI/btsJQktdpmD/YhghvYWlOBLiLnKpXE1AHK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduOWbI%2FbtsJQktdpmD%2FYhghvYWlOBLiLnKpXE1AHK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;911&quot; height=&quot;644&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;Debian에서 jupyter notebook 실행&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot;&gt;기본 웹 브라우저가 열리고 Jupyter Notebook 인터페이스가 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzhqA9/btsJPmr6OIf/DgP3pyQRpTnzppZ3MKkRQ0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzhqA9/btsJPmr6OIf/DgP3pyQRpTnzppZ3MKkRQ0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzhqA9/btsJPmr6OIf/DgP3pyQRpTnzppZ3MKkRQ0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzhqA9%2FbtsJPmr6OIf%2FDgP3pyQRpTnzppZ3MKkRQ0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;670&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;670&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #808080; text-align: center;&quot;&gt;브라우저에서 실행되는 Jupyter notebook&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;종료 및 재시작&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Notebook 서버를 종료하려면 모든 노트북을 닫고 저장해야 합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;브라우저를 닫습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그런 다음 터미널 창에서 &quot;CTRL+C&quot;를 누릅니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;서버를 종료할지 묻는 메시지가 표시됩니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Yes를 입력하고 Enter를 누릅니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로 터미널 창을 닫습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;서버를 다시 시작하려면 위에서 설명한 대로 &quot;virtualenv my-jupyter-env&quot;의 모든 명령을 실행해야 합니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;결론&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Debian 시스템에 Jupyter Notebook을 성공적으로 설치했습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 단계를 따르면 이제 Jupyter의 대화형 개발 환경을 활용하여 코드를 작성하고,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시각화를 만들고, 데이터를 손쉽게 탐색할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Jupyter Notebook은 Python을 포함한 다양한 프로그래밍 언어를 지원하고,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1d1d1f; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기능을 더욱 확장할 수 있는 광범위한 플러그인 목록을 제공합니다.&lt;/p&gt;</description>
      <category>AI Dev</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/49</guid>
      <comments>https://m-oley.tistory.com/49#entry49comment</comments>
      <pubDate>Sat, 28 Sep 2024 14:02:42 +0900</pubDate>
    </item>
    <item>
      <title>Elasticsearch에서 AWS OpenSearch로의 마이그레이션</title>
      <link>https://m-oley.tistory.com/48</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 현재 환경 분석&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.1 Elasticsearch 버전 확인&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;명령어: curl -X GET &quot;localhost:9200&quot;&lt;/li&gt;
&lt;li&gt;결과 분석: 버전 호환성 확인 (OpenSearch는 Elasticsearch 7.10.2 버전과 호환)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.2 데이터 볼륨 및 인덱스 구조 파악&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;/ul&gt;
&lt;pre id=&quot;code_1727486777162&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl -X GET &quot;localhost:9200/_cat/indices?v&quot;
curl -X GET &quot;localhost:9200/_cat/shards?v&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.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;/ul&gt;
&lt;pre id=&quot;code_1727486710269&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;curl -X GET &quot;localhost:9200/_cat/plugins?v&quot;
curl -X GET &quot;localhost:9200/_nodes/settings?pretty&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. AWS OpenSearch 환경 설정&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.1 OpenSearch 도메인 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS 관리 콘솔 사용 또는 AWS CLI 명령어:&lt;/p&gt;
&lt;pre id=&quot;code_1727485639518&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws opensearch create-domain --domain-name my-domain --engine-version OpenSearch_1.3 --cluster-config InstanceType=r6g.large.search,InstanceCount=3 --ebs-options EBSEnabled=true,VolumeType=gp3,VolumeSize=100 --node-to-node-encryption-options Enabled=true --encryption-at-rest-options Enabled=true --domain-endpoint-options EnforceHTTPS=true --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true,MasterUserOptions='{MasterUserName=admin,MasterUserPassword=YOUR-PASSWORD}' --access-policies '{&quot;Version&quot;:&quot;2012-10-17&quot;,&quot;Statement&quot;:[{&quot;Effect&quot;:&quot;Allow&quot;,&quot;Principal&quot;:{&quot;AWS&quot;:[&quot;*&quot;]},&quot;Action&quot;:[&quot;es:*&quot;],&quot;Resource&quot;:&quot;arn:aws:es:REGION:ACCOUNT-ID:domain/my-domain/*&quot;}]}'&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.2 네트워크 설정&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VPC, 서브넷, 보안 그룹 구성 (AWS 관리 콘솔 또는 AWS CLI 사용)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 데이터 마이그레이션 전략 수립&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.1 스냅샷 생성 및 복원&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Elasticsearch에서 스냅샷 생성:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1727486578372&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PUT /_snapshot/my_backup
{
  &quot;type&quot;: &quot;fs&quot;,
  &quot;settings&quot;: {
    &quot;location&quot;: &quot;/path/to/snapshot/directory&quot;
  }
}

PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OpenSearch로 스냅샷 복원:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1727486638775&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;POST /_snapshot/my_backup/snapshot_1/_restore&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.2 실시간 데이터 복제 (Logstash 사용)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Logstash 구성 파일 (logstash.conf):&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1727486356374&quot; class=&quot;puppet&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;input {
  elasticsearch {
    hosts =&amp;gt; [&quot;http://old-elasticsearch:9200&quot;]
    index =&amp;gt; &quot;*&quot;
    docinfo =&amp;gt; true
  }
}

output {
  amazon_es {
    hosts =&amp;gt; [&quot;https://new-opensearch-endpoint&quot;]
    region =&amp;gt; &quot;us-west-2&quot;
    aws_access_key_id =&amp;gt; &quot;YOUR_ACCESS_KEY&quot;
    aws_secret_access_key =&amp;gt; &quot;YOUR_SECRET_KEY&quot;
    index =&amp;gt; &quot;%{[@metadata][_index]}&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Logstash 실행: bin/logstash -f logstash.conf&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 애플리케이션 수정&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.1 OpenSearch 클라이언트 라이브러리 업데이트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: Java 애플리케이션의 경우 pom.xml 수정:&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;xml&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1727486237595&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.opensearch.client&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;opensearch-rest-high-level-client&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.3.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.2 연결 문자열 및 인증 방식 변경&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예: Java 코드 수정&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;java&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1727486186476&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(
        new HttpHost(&quot;your-opensearch-endpoint&quot;, 443, &quot;https&quot;))
    .setHttpClientConfigCallback(httpAsyncClientBuilder -&amp;gt; {
        return httpAsyncClientBuilder.setDefaultCredentialsProvider(
            new BasicCredentialsProvider()
                .setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials(&quot;username&quot;, &quot;password&quot;)));
    })
);&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 테스트&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.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;/li&gt;
&lt;li&gt;데이터 정합성 검증 쿼리 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.2 성능 테스트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Apache JMeter를 사용한 부하 테스트 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.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;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 마이그레이션 실행&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6.1 다운타임 최소화 전략&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;읽기 전용 모드 전환: PUT /_settings { &quot;index&quot;: { &quot;blocks.write&quot;: true } }&lt;/li&gt;
&lt;li&gt;최종 데이터 동기화&lt;/li&gt;
&lt;li&gt;트래픽 전환&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6.2 롤백 계획&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전 Elasticsearch 클러스터 유지&lt;/li&gt;
&lt;li&gt;빠른 DNS 전환 준비&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6.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;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 모니터링 및 최적화&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7.1 CloudWatch 모니터링 설정&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CloudWatch 대시보드 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알람 설정:&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;pre id=&quot;code_1727486099772&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws cloudwatch put-metric-alarm --alarm-name OpenSearch-CPU-Utilization --alarm-description &quot;Alarm when CPU exceeds 75%&quot; --metric-name CPUUtilization --namespace AWS/ES --statistic Average --period 300 --threshold 75 --comparison-operator GreaterThanThreshold --dimensions Name=DomainName,Value=my-domain Name=ClientId,Value=YOUR-ACCOUNT-ID --evaluation-periods 1 --alarm-actions arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7.2 성능 최적화&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;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1727486138629&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PUT /my-index/_settings
{
  &quot;index&quot; : {
    &quot;number_of_replicas&quot; : 2,
    &quot;refresh_interval&quot; : &quot;30s&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 문서화 및 교육&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8.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;/li&gt;
&lt;li&gt;운영 가이드 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8.2 운영팀 교육&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;Q&amp;amp;A 세션 준비&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>DB</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/48</guid>
      <comments>https://m-oley.tistory.com/48#entry48comment</comments>
      <pubDate>Sat, 28 Sep 2024 10:26:57 +0900</pubDate>
    </item>
    <item>
      <title>streamlit을 통해 GUI 구현</title>
      <link>https://m-oley.tistory.com/47</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Streamlit이란?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Streamlit은 &lt;b&gt;Python&lt;/b&gt; 기반의 오픈소스 라이브러리로, &lt;b&gt;간단한 코드만으로 웹 애플리케이션&lt;/b&gt;을 쉽게 만들 수 있는 도구입니다. 특히 데이터 과학, 머신러닝, AI 프로젝트에서 **GUI(그래픽 사용자 인터페이스)**를 빠르게 구축하는 데 자주 사용됩니다. 복잡한 웹 프레임워크를 사용할 필요 없이 &lt;b&gt;직관적인 API&lt;/b&gt;로, 데이터를 시각화하고 상호작용할 수 있는 웹 애플리케이션을 손쉽게 만들 수 있어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Streamlit의 주요 특징은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Python만으로 웹 개발 가능&lt;/b&gt;: HTML, CSS, JavaScript와 같은 웹 기술을 배우지 않아도 Python 코드로 GUI를 구현할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 시각화와 상호작용 지원&lt;/b&gt;: 다양한 차트, 데이터 테이블 등을 포함해 &lt;b&gt;Matplotlib&lt;/b&gt;, &lt;b&gt;Plotly&lt;/b&gt;, &lt;b&gt;Altair&lt;/b&gt; 등과의 통합이 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;간단한 배포&lt;/b&gt;: 로컬 환경에서 애플리케이션을 실행할 수 있을 뿐만 아니라 &lt;b&gt;Streamlit Cloud&lt;/b&gt; 또는 &lt;b&gt;Heroku&lt;/b&gt; 같은 플랫폼에 손쉽게 배포할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실시간 업데이트&lt;/b&gt;: 사용자 입력이나 데이터 변경에 따라 애플리케이션이 자동으로 업데이트되며, 상호작용성이 뛰어납니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Streamlit을 사용한 GUI 구현 방안&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;/b&gt;&lt;br /&gt;먼저 Streamlit을 설치해야 합니다. Python 환경에서 다음과 같은 명령어로 설치할 수 있어요.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;bash&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;pip install streamlit&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기본 Streamlit 애플리케이션 작성&lt;/b&gt;
&lt;div&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;import&lt;/span&gt; streamlit &lt;span&gt;as&lt;/span&gt; st st.title(&lt;span&gt;&quot;AI 모델 대시보드&quot;&lt;/span&gt;) st.write(&lt;span&gt;&quot;이 대시보드는 AI 모델의 결과를 시각화하고 조작할 수 있는 인터페이스입니다.&quot;&lt;/span&gt;) &lt;span&gt;# 슬라이더 위젯&lt;/span&gt; user_input = st.slider(&lt;span&gt;&quot;하이퍼파라미터 설정&quot;&lt;/span&gt;, &lt;span&gt;0.0&lt;/span&gt;, &lt;span&gt;1.0&lt;/span&gt;, &lt;span&gt;0.5&lt;/span&gt;) &lt;span&gt;# 결과 출력&lt;/span&gt; st.write(&lt;span&gt;f&quot;사용자가 선택한 하이퍼파라미터 값: &lt;span&gt;{user_input}&lt;/span&gt;&quot;&lt;/span&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;b&gt;이 코드를 실행&lt;/b&gt;하면 웹 페이지에서 제목과 슬라이더가 표시되고, 사용자의 입력값에 따라 결과가 업데이트됩니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;bash&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;streamlit run app.py&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;간단한 Streamlit 애플리케이션은 몇 줄의 코드만으로 만들 수 있습니다. 아래는 기본적인 Streamlit GUI 애플리케이션 예시입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;상호작용 요소 추가&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;버튼&lt;/b&gt;: 클릭 이벤트를 처리하여 특정 작업을 실행할 수 있습니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;if&lt;/span&gt; st.button(&lt;span&gt;&quot;모델 학습 시작&quot;&lt;/span&gt;): st.write(&lt;span&gt;&quot;모델 학습 중...&quot;&lt;/span&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;체크박스&lt;/b&gt;: 사용자가 선택한 옵션에 따라 애플리케이션의 동작을 변경할 수 있습니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;if&lt;/span&gt; st.checkbox(&lt;span&gt;&quot;결과 시각화&quot;&lt;/span&gt;): st.line_chart([&lt;span&gt;1&lt;/span&gt;, &lt;span&gt;2&lt;/span&gt;, &lt;span&gt;3&lt;/span&gt;, &lt;span&gt;4&lt;/span&gt;, &lt;span&gt;5&lt;/span&gt;])&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;텍스트 입력&lt;/b&gt;: 사용자가 입력한 텍스트를 받아서 처리할 수 있습니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;user_text = st.text_input(&lt;span&gt;&quot;모델 이름을 입력하세요&quot;&lt;/span&gt;) st.write(&lt;span&gt;f&quot;입력한 모델 이름: &lt;span&gt;{user_text}&lt;/span&gt;&quot;&lt;/span&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Streamlit에서는 다양한 상호작용 요소를 제공하여 GUI에 동적인 기능을 추가할 수 있습니다. 여기 몇 가지 예시를 들어볼게요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 시각화&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Matplotlib&lt;/b&gt; 차트를 Streamlit에 표시하려면 다음과 같은 코드를 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;import&lt;/span&gt; matplotlib.pyplot &lt;span&gt;as&lt;/span&gt; plt fig, ax = plt.subplots() ax.plot([&lt;span&gt;1&lt;/span&gt;, &lt;span&gt;2&lt;/span&gt;, &lt;span&gt;3&lt;/span&gt;, &lt;span&gt;4&lt;/span&gt;], [&lt;span&gt;10&lt;/span&gt;, &lt;span&gt;20&lt;/span&gt;, &lt;span&gt;25&lt;/span&gt;, &lt;span&gt;30&lt;/span&gt;]) st.pyplot(fig)&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Plotly&lt;/b&gt; 차트도 지원합니다.&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;import&lt;/span&gt; plotly.express &lt;span&gt;as&lt;/span&gt; px df = px.data.iris() fig = px.scatter(df, x=&lt;span&gt;'sepal_width'&lt;/span&gt;, y=&lt;span&gt;'sepal_length'&lt;/span&gt;, color=&lt;span&gt;'species'&lt;/span&gt;) st.plotly_chart(fig)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Streamlit은 데이터 시각화 도구와 통합이 원활해, 다양한 플롯이나 차트를 쉽게 만들 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;파일 업로드 및 처리&lt;/b&gt;
&lt;div&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;import&lt;/span&gt; pandas &lt;span&gt;as&lt;/span&gt; pd uploaded_file = st.file_uploader(&lt;span&gt;&quot;CSV 파일 업로드&quot;&lt;/span&gt;, &lt;span&gt;type&lt;/span&gt;=&lt;span&gt;&quot;csv&quot;&lt;/span&gt;) &lt;span&gt;if&lt;/span&gt; uploaded_file &lt;span&gt;is&lt;/span&gt; &lt;span&gt;not&lt;/span&gt; &lt;span&gt;None&lt;/span&gt;: df = pd.read_csv(uploaded_file) st.write(df)&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;파일을 업로드하여 데이터 파일을 읽고 처리할 수 있습니다. 예를 들어 CSV 파일을 업로드하고 Pandas를 이용해 데이터를 처리한 후, 그 결과를 표시할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI 모델 통합&lt;/b&gt;
&lt;div&gt;
&lt;div&gt;python&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span data-state=&quot;closed&quot;&gt;코드 복사&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;from&lt;/span&gt; sklearn.linear_model &lt;span&gt;import&lt;/span&gt; LogisticRegression &lt;span&gt;import&lt;/span&gt; numpy &lt;span&gt;as&lt;/span&gt; np &lt;span&gt;# 모델 학습&lt;/span&gt; X = np.array([[&lt;span&gt;1&lt;/span&gt;, &lt;span&gt;2&lt;/span&gt;], [&lt;span&gt;2&lt;/span&gt;, &lt;span&gt;3&lt;/span&gt;], [&lt;span&gt;3&lt;/span&gt;, &lt;span&gt;4&lt;/span&gt;], [&lt;span&gt;4&lt;/span&gt;, &lt;span&gt;5&lt;/span&gt;]]) y = np.array([&lt;span&gt;0&lt;/span&gt;, &lt;span&gt;0&lt;/span&gt;, &lt;span&gt;1&lt;/span&gt;, &lt;span&gt;1&lt;/span&gt;]) model = LogisticRegression() model.fit(X, y) &lt;span&gt;# 사용자 입력&lt;/span&gt; user_input = st.text_input(&lt;span&gt;&quot;데이터 입력 (형식: x1, x2)&quot;&lt;/span&gt;) &lt;span&gt;if&lt;/span&gt; user_input: input_data = np.array([&lt;span&gt;list&lt;/span&gt;(&lt;span&gt;map&lt;/span&gt;(&lt;span&gt;float&lt;/span&gt;, user_input.split(&lt;span&gt;','&lt;/span&gt;)))]) prediction = model.predict(input_data) st.write(&lt;span&gt;f&quot;예측 결과: &lt;span&gt;{prediction[&lt;span&gt;0&lt;/span&gt;]}&lt;/span&gt;&quot;&lt;/span&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Streamlit을 통해 AI 모델을 통합하여 결과를 실시간으로 제공할 수 있습니다. 다음은 간단한 예시로, 사용자가 입력한 데이터를 기반으로 예측 결과를 반환하는 방식입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배포&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Streamlit Cloud 배포 절차&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;a&gt;&lt;span&gt;Streamlit&lt;/span&gt;&lt;span&gt; Cloud&lt;/span&gt;&lt;/a&gt;에 가입&lt;/li&gt;
&lt;li&gt;GitHub 리포지토리와 연동&lt;/li&gt;
&lt;li&gt;배포할 Streamlit 애플리케이션 선택 후 배포&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;로컬에서 개발한 Streamlit 애플리케이션을 배포하려면, &lt;b&gt;Streamlit Cloud&lt;/b&gt;나 &lt;b&gt;Heroku&lt;/b&gt; 같은 플랫폼을 사용할 수 있습니다. 다음은 Streamlit Cloud에서 배포하는 간단한 방법입니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;결론&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Streamlit은 Python을 사용해 간편하게 &lt;b&gt;웹 애플리케이션&lt;/b&gt;을 구축할 수 있는 도구로, 특히 AI 및 데이터 과학 프로젝트에서 &lt;b&gt;데이터 시각화&lt;/b&gt; 및 &lt;b&gt;상호작용 인터페이스&lt;/b&gt;를 손쉽게 구현할 수 있습니다. 이 도구는 &lt;b&gt;빠르게 프로토타입을 만들고&lt;/b&gt;, &lt;b&gt;사용자와의 상호작용을 통해 AI 모델을 테스트&lt;/b&gt;하고 시각화하는 데 매우 유용하죠.&lt;/p&gt;</description>
      <category>OpenShift AI</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/47</guid>
      <comments>https://m-oley.tistory.com/47#entry47comment</comments>
      <pubDate>Thu, 26 Sep 2024 23:19:16 +0900</pubDate>
    </item>
    <item>
      <title>AI 개발 환경</title>
      <link>https://m-oley.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AI 개발 환경은 AI/ML 모델을 개발, 훈련, 배포하는 데 필요한 다양한 도구와 프레임워크를 말합니다. 특히 멀티클라우드 환경에서 AI를 구축하거나 MLOps(Machine Learning Operations)를 수행하려면, 효율적이고 확장 가능한 개발 환경을 구성하는 것이 매우 중요하죠.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;AI 개발 환경의 주요 요소&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;/b&gt;&lt;br /&gt;AI 개발을 위한 컴퓨팅 자원, 스토리지, 네트워킹을 제공하는 클라우드 환경입니다. 주요 클라우드 서비스 제공자로는 AWS, Google Cloud, Microsoft Azure가 있으며, OpenShift와 같은 멀티클라우드 플랫폼을 통해 클라우드를 관리할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI/ML 프레임워크&lt;/b&gt;&lt;br /&gt;딥러닝이나 머신러닝 모델을 개발하는 데 사용하는 프레임워크로는 대표적으로 TensorFlow, PyTorch, scikit-learn 등이 있습니다. 각각의 프레임워크는 특정한 데이터 유형이나 학습 방법에 따라 유리한 경우가 있으니, 선택은 개발자의 요구 사항에 따라 달라질 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 관리 및 처리&lt;/b&gt;&lt;br /&gt;AI 모델을 학습시키기 위해서는 대량의 데이터를 수집하고 처리하는 과정이 필요합니다. 이를 위해 Apache Spark, Hadoop, 또는 데이터베이스 관리 시스템인 Elasticsearch와 같은 도구가 많이 사용됩니다. 멀티클라우드 환경에서는 여러 클라우드에 걸쳐 분산 데이터 관리를 위한 솔루션도 고려해야 하죠.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컨테이너 및 오케스트레이션 도구&lt;/b&gt;&lt;br /&gt;AI 개발 환경에서는 Kubernetes와 같은 오케스트레이션 툴이 매우 중요합니다. Kubernetes는 애플리케이션을 컨테이너화하고, 자동으로 배포, 스케일링, 모니터링할 수 있도록 도와줍니다. OpenShift는 Kubernetes를 기반으로 한 PaaS 플랫폼으로, AI 워크로드를 쉽게 관리할 수 있도록 다양한 추가 기능을 제공합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DevOps/MLOps 도구&lt;/b&gt;&lt;br /&gt;AI 프로젝트를 진행할 때는 모델을 지속적으로 배포하고 업데이트하는 MLOps 파이프라인이 중요합니다. Jenkins, GitLab CI/CD, ArgoCD와 같은 DevOps 도구는 개발 자동화를 지원하며, Kubeflow나 MLflow와 같은 MLOps 도구는 모델의 배포와 모니터링을 돕습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GPU 가속&lt;/b&gt;&lt;br /&gt;딥러닝 모델의 훈련은 많은 컴퓨팅 자원을 필요로 하며, GPU(그래픽 처리 장치)를 사용하면 이를 크게 가속화할 수 있습니다. AWS, Google Cloud 등은 클라우드 환경에서 GPU 기반의 가속 인스턴스를 제공하며, OpenShift에서도 GPU 리소스를 사용할 수 있도록 지원합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;버전 관리 및 협업 도구&lt;/b&gt;&lt;br /&gt;Git은 코드 버전 관리를 위해 필수적인 도구이며, GitHub, GitLab 등을 통해 협업을 쉽게 할 수 있습니다. AI 모델 자체의 버전 관리를 위한 도구로는 DVC(Data Version Control)와 같은 시스템을 사용할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;OpenShift를 활용한 AI 개발 환경 구축 예시&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OpenShift 기반의 AI 개발 환경을 구축하려면 다음과 같은 단계로 진행할 수 있어요.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;OpenShift 클러스터 준비&lt;/b&gt;&lt;br /&gt;OpenShift를 설치하고 설정한 후, GPU가 필요한 경우 GPU Operator를 통해 클러스터 내 GPU 노드를 구성합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI/ML 프레임워크 배포&lt;/b&gt;&lt;br /&gt;TensorFlow, PyTorch와 같은 프레임워크를 OpenShift에서 사용하려면, 이를 컨테이너 이미지로 빌드하여 배포할 수 있습니다. OpenShift에서 제공하는 컨테이너 빌더나, Helm 차트를 사용할 수 있어요.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 관리 및 파이프라인 설정&lt;/b&gt;&lt;br /&gt;데이터 저장소로 S3 또는 Ceph를 연결하고, Apache Kafka나 Spark와 같은 데이터 처리 도구를 통합하여 AI 모델 훈련에 필요한 데이터를 관리합니다. MLOps 파이프라인은 Kubeflow를 이용해 자동화할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CI/CD 및 배포&lt;/b&gt;&lt;br /&gt;Jenkins나 GitLab CI/CD로 모델 훈련 및 배포 파이프라인을 구축하여, 새로운 모델이 생성될 때마다 자동으로 배포되고 평가되도록 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델 모니터링 및 관리&lt;/b&gt;&lt;br /&gt;배포된 모델의 성능을 모니터링하기 위해 Prometheus와 같은 모니터링 툴을 설정하고, AI 모델이 비즈니스 요구에 맞게 지속적으로 잘 동작하는지 평가합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;결론&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI 개발 환경은 클라우드 인프라, 데이터 관리 도구, MLOps 도구, GPU 리소스 등 여러 구성 요소가 유기적으로 통합되어야 효과적으로 운영될 수 있습니다. OpenShift와 같은 플랫폼을 사용하면 이러한 구성 요소를 효율적으로 관리하고 확장할 수 있는 환경을 구축할 수 있죠.&lt;/p&gt;</description>
      <category>OpenShift AI</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/46</guid>
      <comments>https://m-oley.tistory.com/46#entry46comment</comments>
      <pubDate>Thu, 26 Sep 2024 23:15:38 +0900</pubDate>
    </item>
    <item>
      <title>IBM Watsonx 교육</title>
      <link>https://m-oley.tistory.com/45</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;개요&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 자료는 AI 시장 동향과 IBM Watsonx 플랫폼의 활용을 중심으로, 프롬프트 엔지니어링, LangChain, 벡터 임베딩, 그리고 Retrieval Augmented Generation (RAG) 아키텍처 등을 사전 학습하기 위한 가이드입니다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. AI 비즈니스를 위한 플랫폼 IBM Watsonx 소개&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.1 AI 시장 동향과 생성형 AI&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;b&gt;생성형 AI(Generative AI)&lt;/b&gt;: 생성형 AI는 텍스트, 이미지, 코드, 음악 등 새로운 콘텐츠를 자동으로 생성할 수 있는 AI 기술입니다. 대표적인 예로는 ChatGPT와 같은 대형 언어 모델이 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI 시장 동향&lt;/b&gt;: AI 시장은 빠르게 성장하고 있으며, 특히 생성형 AI의 도입이 가속화되고 있습니다. 기업들은 고객 경험 향상, 비즈니스 자동화, 효율성 증대 등을 위해 AI를 적극적으로 활용하고 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;생성형 AI의 영향&lt;/b&gt;: 생성형 AI는 특히 기업의 콘텐츠 생성, 데이터 분석, 고객 서비스에 큰 영향을 미치고 있으며, 이에 대한 기술적 요구가 증가하고 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.2 생성형 AI 시대에서의 기업의 고민&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;b&gt;데이터 품질&lt;/b&gt;: AI 모델의 성능은 데이터에 크게 의존합니다. 기업은 훈련 데이터의 품질, 데이터 보안, 규제 준수 문제를 고려해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AI 활용의 효율성&lt;/b&gt;: 기업들은 AI 모델을 효과적으로 배포하고 관리하는 데 있어 어려움을 겪고 있습니다. 특히 AI의 비용 효율성과 ROI(Return on Investment)에 대한 고민이 큽니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;윤리적 문제&lt;/b&gt;: AI 모델이 생성하는 결과의 투명성, 편향성, 공정성 등을 유지하는 것이 기업의 중요한 과제가 되고 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.3 Enterprise AI를 위한 플랫폼, IBM Watsonx&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;b&gt;IBM Watsonx 개요&lt;/b&gt;: IBM Watsonx는 AI 모델 개발, 훈련, 배포 및 데이터 관리를 위한 통합 플랫폼입니다. 이 플랫폼은 특히 대형 언어 모델(LLM)과 AI 서비스에 특화되어 있으며, AI의 투명성과 신뢰성을 유지하는 관리 도구를 제공합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;주요 구성 요소&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Watsonx.ai&lt;/b&gt;: AI 모델 생성, 훈련, 배포를 위한 플랫폼.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Watsonx.data&lt;/b&gt;: 대규모 데이터 관리 및 분석 도구.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Watsonx.governance&lt;/b&gt;: AI 모델의 윤리적 사용과 규제 준수를 위한 관리 도구.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. IBM Watsonx.ai 기반의 생성형 AI 활용 사례 데모&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Watsonx.ai를 활용한 사례&lt;/b&gt;: Watsonx.ai는 자연어 처리(NLP), 이미지 생성, 데이터 분석 등을 지원하며, 다양한 비즈니스 케이스에서 활용됩니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;고객 서비스&lt;/b&gt;: 대형 언어 모델을 이용해 고객의 질문에 자동으로 답변하는 챗봇 구축.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;금융 리스크 분석&lt;/b&gt;: Watsonx.ai를 사용하여 금융 데이터의 패턴을 분석하고 예측 모델을 개발.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;마케팅 자동화&lt;/b&gt;: 생성형 AI를 통해 마케팅 메시지나 콘텐츠를 자동으로 생성하여 캠페인을 운영.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 프롬프트 엔지니어링 with Lab&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.1 프롬프트 엔지니어링 기법 및 멀티 모델&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;b&gt;프롬프트 엔지니어링&lt;/b&gt;: 생성형 AI를 효과적으로 활용하려면 프롬프트 엔지니어링이 중요합니다. 이는 AI에게 특정 결과를 요청하기 위한 최적의 지시문을 만드는 기술입니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기본 기법&lt;/b&gt;: 명확하고 구체적인 프롬프트를 통해 모델의 응답 품질을 개선할 수 있습니다. 예를 들어, &quot;마케팅 캠페인에 사용할 창의적인 아이디어를 제시해 줘&quot;보다 &quot;마케팅 캠페인을 위한 간결하고 독창적인 슬로건 3개를 제시해 줘&quot;와 같은 구체적인 요청이 더 좋은 결과를 이끌어냅니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;멀티 모델 프롬프트&lt;/b&gt;: Watsonx.ai는 다중 AI 모델을 활용할 수 있습니다. 이 경우 하나의 프롬프트가 여러 모델에 전달되어 각 모델이 다른 방식으로 결과를 생성합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.2 모델 파라미터의 이해&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;b&gt;모델 파라미터&lt;/b&gt;: AI 모델에서 파라미터는 모델이 입력 데이터를 처리하고 결과를 생성하는 데 중요한 역할을 합니다. 파라미터는 모델의 복잡성, 학습 속도, 결과의 정확성 등을 조절합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;하이퍼파라미터&lt;/b&gt;: 학습률(Learning Rate), 배치 크기(Batch Size), 에포크 수(Epochs) 등 모델 학습에 중요한 값을 의미합니다. Watsonx.ai는 이러한 하이퍼파라미터를 자동으로 튜닝하여 최적의 성능을 발휘할 수 있도록 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. IBM Python SDK 및 LangChain with Lab&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.1 IBM Python SDK&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;b&gt;Python SDK&lt;/b&gt;: IBM Watsonx.ai는 Python SDK를 제공하여 AI 모델과 데이터 관리를 자동화할 수 있습니다. Python을 통해 Watsonx.ai API에 접근하여 모델을 학습시키고, 데이터 처리 파이프라인을 구축하며, 배포된 모델을 모니터링할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.2 LangChain&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;b&gt;LangChain 통합&lt;/b&gt;: LangChain은 Watsonx.ai의 프롬프트 관리 및 멀티 모델 상호작용을 지원하는 도구입니다. LangChain을 사용하면 프롬프트 워크플로우를 자동화하고, 여러 AI 모델과의 연결을 쉽게 관리할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;프롬프트 템플릿 관리&lt;/b&gt;: 다양한 작업에 대해 일관된 프롬프트 템플릿을 유지할 수 있으며, 여러 모델에 걸쳐 통합적으로 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;멀티모델 구성&lt;/b&gt;: LangChain을 통해 Watsonx.ai에서 제공하는 여러 모델을 동시에 실행하여 다각도로 분석하고 비교할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. Retrieval Augmented Generation (RAG) with Lab&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5.1 Vector Embedding&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;b&gt;벡터 임베딩&lt;/b&gt;: 텍스트나 이미지와 같은 비정형 데이터를 수치화하여 벡터 공간에 매핑하는 기법입니다. Watsonx.ai에서는 텍스트 데이터의 유사도를 분석할 때 벡터 임베딩을 사용합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;예시&lt;/b&gt;: 문서를 임베딩하여 유사한 문서를 검색하거나, 질문에 대한 적절한 답변을 찾는 데 활용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 사례&lt;/b&gt;: 자연어 처리, 추천 시스템, 정보 검색 등에서 널리 사용됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5.2 Vector DB&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;b&gt;벡터 데이터베이스&lt;/b&gt;: 벡터화된 데이터를 저장하고 검색할 수 있는 데이터베이스입니다. Watsonx.ai는 벡터 검색을 통해 대규모 데이터셋에서 효율적으로 유사한 항목을 찾을 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;FAISS&lt;/b&gt;: Facebook AI가 개발한 FAISS(Facebook AI Similarity Search)를 사용하여 고차원 벡터를 빠르게 검색하는 기능을 제공합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 예시&lt;/b&gt;: Watsonx.ai는 벡터 DB를 사용하여 대규모 텍스트나 이미지 데이터에서 유사한 항목을 빠르게 검색합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5.3 RAG 아키텍처&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;b&gt;RAG (Retrieval Augmented Generation)&lt;/b&gt;: Watsonx.ai는 RAG 아키텍처를 통해 AI 모델이 외부 지식을 검색하고 해당 정보를 생성형 AI 응답에 통합할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;과정&lt;/b&gt;: AI 모델이 외부 데이터베이스에서 관련 정보를 검색한 후, 이를 바탕으로 응답을 생성합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;활용 사례&lt;/b&gt;: RAG는 대화형 AI, 고객 지원 시스템, 정보 검색 시스템 등에서 활용되어, 더욱 정확하고 관련성 높은 응답을 제공합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. IBM Watsonx Assistant 및 Watson Discovery를 활용한 RAG 아키텍처&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6.1 IBM Watsonx Assistant&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;b&gt;Watson Assistant&lt;/b&gt;: IBM Watson Assistant는 대화형 AI를 위한 플랫폼으로, 고객 서비스와 같은 다양한 분야에서 챗봇을 구축하는 데 사용됩니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;통합 RAG&lt;/b&gt;: Watson Assistant는 RAG 아키텍처와 통합되어, 질문에 대해 실시간으로 외부 정보를 검색하여 더욱 풍부한 답변을 생성할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동화된 고객 지원&lt;/b&gt;: 고객 질문에 대한 자동 응답과 문제 해결을 지원하며, Watsonx.ai에서 학습된 생성형 AI 모델을 통해 더욱 자연스럽고 정확한 대화를 제공합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6.2 Watson Discovery&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;b&gt;Watson Discovery&lt;/b&gt;: Watson Discovery는 문서 내에서 관련 정보를 검색하고 추출하는 데 사용되는 도구입니다. 대규모 비정형 데이터를 분석하여 유의미한 정보를 자동으로 추출할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;RAG와의 통합&lt;/b&gt;: RAG 아키텍처와 통합하여, Watson Discovery는 대화형 AI가 질문에 적절한 정보를 실시간으로 검색하고 이를 응답에 반영할 수 있도록 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>kubernetes</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/45</guid>
      <comments>https://m-oley.tistory.com/45#entry45comment</comments>
      <pubDate>Mon, 23 Sep 2024 11:10:32 +0900</pubDate>
    </item>
    <item>
      <title>Tanzu와 Openshift의 장단점 비교</title>
      <link>https://m-oley.tistory.com/44</link>
      <description>&lt;div&gt;
&lt;div data-message-id=&quot;c442ba98-9315-40e6-bd19-cb51e13b5554&quot; data-message-author-role=&quot;assistant&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Tanzu (VMware Tanzu)&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&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;&gt;
&lt;li&gt;&lt;b&gt;VMware 환경과의 깊은 통합&lt;/b&gt;:&lt;br /&gt;Tanzu는 VMware의 vSphere, NSX-T, vSAN 등 기존 VMware 인프라와의 통합이 매우 자연스럽습니다. 이를 통해 가상머신과 컨테이너의 혼합 운영이 용이합니다. 특히 기존 VMware 환경을 사용하는 조직에게는 큰 장점입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;멀티 클라우드 및 하이브리드 클라우드 지원&lt;/b&gt;:&lt;br /&gt;Tanzu는 다양한 클라우드 플랫폼(AWS, Azure, Google Cloud)과 온프레미스 환경을 쉽게 통합하여 클러스터를 관리할 수 있습니다. Tanzu Mission Control을 통해 멀티 클러스터 관리 및 멀티 클라우드 환경에서 일관된 관리가 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tanzu Mission Control&lt;/b&gt;:&lt;br /&gt;Tanzu는 Tanzu Mission Control(TMC)을 통해 여러 Kubernetes 클러스터를 중앙에서 관리할 수 있습니다. 이를 통해 멀티 클러스터 및 멀티 클라우드 환경에서 일관된 정책과 보안을 적용할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&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;&gt;
&lt;li&gt;&lt;b&gt;비용&lt;/b&gt;:&lt;br /&gt;VMware 라이선스와 Tanzu 플랫폼 비용이 합쳐지면서 비용이 높을 수 있습니다. 특히 기존에 VMware 인프라를 구축하지 않은 경우에는 추가적인 비용 부담이 큽니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복잡한 설정 및 관리&lt;/b&gt;:&lt;br /&gt;Tanzu의 VMware 통합은 강력하지만, 이로 인해 초기 설정과 관리가 복잡할 수 있습니다. VMware 전문가가 필요할 가능성이 높습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VMware 의존성&lt;/b&gt;:&lt;br /&gt;Tanzu는 VMware 환경에 최적화되어 있기 때문에, 다른 인프라를 사용하는 조직에서는 최적의 성능을 발휘하지 못할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. OpenShift (Red Hat OpenShift)&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&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;&gt;
&lt;li&gt;&lt;b&gt;엔터프라이즈급 Kubernetes&lt;/b&gt;:&lt;br /&gt;OpenShift는 Kubernetes의 엔터프라이즈 배포판으로, 보안, 안정성, 관리 편의성을 강화했습니다. Role-Based Access Control(RBAC), SELinux 기반의 보안, 네트워크 정책 등의 기능이 기본적으로 제공됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개발자 친화적 도구&lt;/b&gt;:&lt;br /&gt;OpenShift는 GitOps, CI/CD 파이프라인, 빌드 자동화 등의 도구를 통합 제공하여, 개발자가 애플리케이션을 쉽게 개발, 배포, 운영할 수 있게 지원합니다. 이를 통해 DevOps 팀의 생산성을 높일 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;광범위한 배포 옵션&lt;/b&gt;:&lt;br /&gt;OpenShift는 온프레미스(OpenShift Container Platform), 퍼블릭 클라우드(OpenShift Dedicated, OpenShift Online) 등 다양한 배포 모델을 지원하며, 이를 통해 다양한 환경에서 일관된 운영을 가능하게 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;광범위한 오픈소스 지원&lt;/b&gt;:&lt;br /&gt;Red Hat은 오픈소스 기술에 깊은 뿌리를 두고 있으며, 커뮤니티에 기여하고 있습니다. 이로 인해 오픈소스 프로젝트와의 연동이 원활하며, 커뮤니티 지원을 적극적으로 받을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&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;&gt;
&lt;li&gt;&lt;b&gt;비용&lt;/b&gt;:&lt;br /&gt;OpenShift는 엔터프라이즈 지원을 제공하기 때문에 오픈소스 Kubernetes에 비해 더 높은 비용이 발생합니다. 특히 Red Hat의 기술 지원을 포함할 경우 더 높은 가격을 지불해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복잡성&lt;/b&gt;:&lt;br /&gt;OpenShift는 강력한 기능을 제공하지만, 초기 설정 및 관리를 위해 높은 수준의 기술적 전문성이 요구될 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;제한된 커스터마이징&lt;/b&gt;:&lt;br /&gt;OpenShift는 기본적으로 보안 및 설정에 대한 엄격한 정책을 가지고 있어, 일부 사용자에게는 필요한 만큼의 유연성이 부족할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;어떤 상황에서 Tanzu와 OpenShift를 선택해야 하는가?&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Tanzu를 선택해야 할 경우&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;b&gt;VMware 중심의 인프라를 운영 중인 경우&lt;/b&gt;:&lt;br /&gt;기존에 VMware vSphere, NSX, vSAN과 같은 인프라를 사용하고 있다면, Tanzu는 최적의 선택입니다. VMware와의 깊은 통합을 통해 컨테이너와 가상 머신을 혼합 운영할 수 있으며, 기존 인프라를 최대한 활용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;멀티 클라우드 및 하이브리드 클라우드 전략을 추구하는 경우&lt;/b&gt;:&lt;br /&gt;여러 클라우드 환경을 통합 관리하고, 온프레미스와 클라우드 자원을 혼합하여 사용할 계획이라면 Tanzu Mission Control의 멀티 클러스터 관리 기능이 유리할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VMware의 다른 제품군과 통합이 중요한 경우&lt;/b&gt;:&lt;br /&gt;기존에 vSphere 또는 VMware의 다른 제품군을 사용 중이며, 이를 통해 중앙에서 통합된 관리를 추구하는 경우 Tanzu는 적합합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. OpenShift를 선택해야 할 경우&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;b&gt;엔터프라이즈급 Kubernetes 플랫폼을 원할 때&lt;/b&gt;:&lt;br /&gt;OpenShift는 엔터프라이즈 Kubernetes 플랫폼으로, 보안과 안정성이 강화된 솔루션을 찾고 있는 기업에게 적합합니다. 특히 금융, 정부, 의료 분야처럼 높은 보안 요구 사항을 충족해야 하는 환경에서 유리합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DevOps 및 CI/CD 자동화에 중점을 두는 경우&lt;/b&gt;:&lt;br /&gt;OpenShift는 통합 CI/CD 파이프라인, GitOps, 자동화 도구 등을 제공하여 개발자 생산성을 극대화할 수 있습니다. DevOps 및 개발 환경의 효율성을 높이고자 하는 조직에서 최적화된 선택입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;온프레미스 및 클라우드 환경에서 Kubernetes를 통합하려는 경우&lt;/b&gt;:&lt;br /&gt;온프레미스와 클라우드를 동시에 운영하며, Red Hat의 지원을 통해 안정적이고 일관된 운영을 원하는 경우 OpenShift는 강력한 선택입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VMware Tanzu&lt;/b&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Red Hat OpenShift&lt;/b&gt;의 주요 기능 및 특성에 대한 비교 표입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;VMware Tanzu&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Red Hat OpenShift&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;기본 플랫폼&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Kubernetes&lt;/td&gt;
&lt;td&gt;Kubernetes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;주요 제공사&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware&lt;/td&gt;
&lt;td&gt;Red Hat (IBM 소유)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;VMware 통합&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware vSphere, NSX, vSAN과의 깊은 통합&lt;/td&gt;
&lt;td&gt;통합 기능 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;배포 옵션&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;멀티 클라우드 (AWS, Azure, Google Cloud), 온프레미스 지원&lt;/td&gt;
&lt;td&gt;온프레미스, 퍼블릭 클라우드 (OpenShift Dedicated, Online)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;멀티 클러스터 관리&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Tanzu Mission Control (TMC)로 여러 클러스터 관리 가능&lt;/td&gt;
&lt;td&gt;멀티 클러스터 관리 가능하지만, 별도의 통합 도구 필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;CI/CD 통합&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;기본 제공되지 않음, 별도 도구 사용 필요&lt;/td&gt;
&lt;td&gt;통합된 CI/CD 파이프라인, GitOps 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;개발자 지원 도구&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;제한적 (추가적인 DevOps 도구 필요)&lt;/td&gt;
&lt;td&gt;빌드 자동화, 소스코드 관리, CI/CD 등 개발자 친화적인 도구 내장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;보안&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;RBAC, 기본 Kubernetes 보안 기능&lt;/td&gt;
&lt;td&gt;강화된 보안 (SELinux, 네트워크 정책, RBAC 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;운영 및 관리 편의성&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware 중심의 환경에서 높은 운영 편의성&lt;/td&gt;
&lt;td&gt;Red Hat 기반 환경에서 높은 운영 편의성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;오픈소스 지원&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware 중심의 에코시스템, 오픈소스 프로젝트와 제한적 연동&lt;/td&gt;
&lt;td&gt;강력한 오픈소스 지원, 다양한 오픈소스 프로젝트와 연동 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;초기 설정 복잡성&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware 통합으로 인해 설정이 다소 복잡할 수 있음&lt;/td&gt;
&lt;td&gt;다양한 기능 제공으로 초기 설정이 복잡할 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비용&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware 라이선스 비용이 높을 수 있음&lt;/td&gt;
&lt;td&gt;Red Hat의 상용 라이선스 비용 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;기술 지원&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;VMware의 엔터프라이즈 기술 지원&lt;/td&gt;
&lt;td&gt;Red Hat의 엔터프라이즈 기술 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;적합한 환경&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;기존 VMware 인프라와의 통합 및 하이브리드 클라우드 환경&lt;/td&gt;
&lt;td&gt;DevOps 자동화, 강력한 보안, 엔터프라이즈급 Kubernetes 운영&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론 요약&lt;/b&gt;:&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;결론: 선택 가이드&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 VMware 환경이 구축되어 있고 멀티 클라우드 전략을 강화하고자 한다면&lt;/b&gt;: &lt;b&gt;VMware Tanzu&lt;/b&gt;가 더 적합할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;강력한 보안, 개발자 도구 통합, CI/CD 파이프라인 자동화가 필요한 엔터프라이즈 환경에서는&lt;/b&gt;: &lt;b&gt;Red Hat OpenShift&lt;/b&gt;가 더 나은 선택입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VMware Tanzu&lt;/b&gt;는 &lt;b&gt;기존 VMware 인프라&lt;/b&gt;를 사용하는 조직이나 &lt;b&gt;멀티 클라우드 및 하이브리드 환경&lt;/b&gt;을 선호하는 경우에 적합합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Red Hat OpenShift&lt;/b&gt;는 &lt;b&gt;엔터프라이즈급 보안&lt;/b&gt;과 &lt;b&gt;개발자 도구&lt;/b&gt;가 필요하고, &lt;b&gt;CI/CD 자동화&lt;/b&gt;에 중점을 두는 환경에 적합합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-message-id=&quot;70c13b1e-21f5-4f07-9c00-583d6d4f8a88&quot; data-message-author-role=&quot;assistant&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>kubernetes</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/44</guid>
      <comments>https://m-oley.tistory.com/44#entry44comment</comments>
      <pubDate>Fri, 6 Sep 2024 14:07:40 +0900</pubDate>
    </item>
    <item>
      <title>SUSE Rancher와 Red Hat OpenShift 제품 비교</title>
      <link>https://m-oley.tistory.com/43</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. &lt;b&gt;SUSE Rancher와 Red Hat OpenShift 개요&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SUSE Rancher&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;b&gt;목적&lt;/b&gt;: Rancher는 여러 Kubernetes 클러스터를 관리하고 운영할 수 있는 멀티클러스터 관리 플랫폼입니다. 다양한 클라우드 환경, 하이브리드 클라우드, 엣지 컴퓨팅 등을 지원하며, Kubernetes를 쉽게 배포하고 관리할 수 있도록 설계되었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오픈소스&lt;/b&gt;: Rancher는 완전한 오픈소스 프로젝트로 누구나 자유롭게 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배포 옵션&lt;/b&gt;: 단일 클러스터 또는 멀티 클러스터 환경에서 사용할 수 있으며, on-premise와 퍼블릭 클라우드 환경 모두에서 운영이 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기타 기능&lt;/b&gt;: Helm, Istio, CNI 플러그인 및 다양한 오픈소스 도구를 쉽게 통합할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Red Hat OpenShift&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;b&gt;목적&lt;/b&gt;: OpenShift는 Red Hat에서 제공하는 엔터프라이즈급 Kubernetes 플랫폼으로, Kubernetes에 다양한 부가 기능을 포함하여 애플리케이션 개발, 배포, 운영을 쉽게 할 수 있도록 설계되었습니다. 특히 DevOps 파이프라인과 CI/CD를 원활하게 구현할 수 있는 기능이 포함되어 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오픈코어&lt;/b&gt;: OpenShift는 오픈소스인 OKD(OpenShift Origin)를 기반으로 하지만, OpenShift는 상용 제품으로 Red Hat의 기술 지원과 함께 제공됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배포 옵션&lt;/b&gt;: 온프레미스, 퍼블릭 클라우드, 프라이빗 클라우드 모두 지원되며, 클러스터 운영을 위해 Red Hat의 관리형 서비스도 이용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기타 기능&lt;/b&gt;: 고급 보안 기능(SCC, SELinux, RBAC), CI/CD 통합(Jenkins, Tekton), 소스 투 이미지(S2I) 등 개발자 친화적인 기능이 포함되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. &lt;b&gt;SUSE Rancher와 Red Hat OpenShift의 주요 비교&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특징SUSE RancherRed Hat OpenShift&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&gt;&lt;b&gt;목적&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;멀티 클러스터 관리 플랫폼&lt;/td&gt;
&lt;td&gt;엔터프라이즈급 애플리케이션 플랫폼&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;오픈소스 정책&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;완전 오픈소스&lt;/td&gt;
&lt;td&gt;오픈코어 모델 (OKD는 오픈소스)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;지원 환경&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;멀티클라우드, 하이브리드 클라우드, 엣지&lt;/td&gt;
&lt;td&gt;온프레미스, 프라이빗 클라우드, 퍼블릭 클라우드&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;설치 및 배포&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Kubernetes 클러스터 배포 간소화&lt;/td&gt;
&lt;td&gt;OpenShift 클러스터 및 개발 환경 구축&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;개발자 툴&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;통합이 자유롭지만, 직접 설정이 필요&lt;/td&gt;
&lt;td&gt;CI/CD, S2I, Jenkins 등 내장 개발자 도구 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;보안&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;기본적인 Kubernetes 보안 도구 제공&lt;/td&gt;
&lt;td&gt;고급 보안 기능 (SELinux, RBAC, SCC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;지원&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;커뮤니티 기반 지원&lt;/td&gt;
&lt;td&gt;Red Hat의 공식 기술 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;유연성&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;다양한 환경에 대한 높은 유연성&lt;/td&gt;
&lt;td&gt;엔터프라이즈 표준화와 보안 강화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. &lt;b&gt;각 플랫폼의 장단점&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SUSE Rancher의 장점&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;b&gt;멀티 클러스터 관리&lt;/b&gt;: Rancher는 멀티 클러스터 관리에 특화되어 있어 여러 Kubernetes 클러스터를 쉽게 관리할 수 있습니다. 이는 특히 다양한 클라우드와 온프레미스 환경을 사용하는 경우에 유용합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오픈소스&lt;/b&gt;: 완전한 오픈소스 프로젝트로, 비용 효율적이며 확장 가능성이 큽니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유연성&lt;/b&gt;: 다양한 클라우드 플랫폼 및 환경에서 Kubernetes를 유연하게 배포하고 운영할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;쉬운 통합&lt;/b&gt;: Helm, Istio, Prometheus와 같은 다양한 오픈소스 도구와의 통합이 용이합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SUSE Rancher의 단점&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;b&gt;엔터프라이즈급 지원 부족&lt;/b&gt;: Red Hat과 같은 상업적 지원이 부족할 수 있으며, 대규모 엔터프라이즈 환경에서는 기술 지원에 한계가 있을 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기능 통합 필요&lt;/b&gt;: 개발자 도구와 보안 도구를 별도로 통합해야 하므로, 사용자 스스로 설정이 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Red Hat OpenShift의 장점&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;b&gt;엔터프라이즈급 지원&lt;/b&gt;: Red Hat의 상용 지원을 통해 안정적인 운영 및 긴급 상황 대응이 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개발자 친화적&lt;/b&gt;: 소스 투 이미지(S2I), Jenkins 통합 등 개발 파이프라인을 빠르게 구축할 수 있으며, DevOps 환경에 적합합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보안 강화&lt;/b&gt;: SELinux 및 SCC(Security Context Constraints)와 같은 고급 보안 기능이 기본 제공됩니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CI/CD 통합&lt;/b&gt;: Tekton과 같은 CI/CD 도구가 기본적으로 통합되어 있어 지속적인 배포 파이프라인을 쉽게 구축할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Red Hat OpenShift의 단점&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;b&gt;비용&lt;/b&gt;: 상용 소프트웨어이므로 비용이 발생하며, 특히 대규모 환경에서는 라이선스 비용이 부담이 될 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복잡한 설치&lt;/b&gt;: 초기 설치와 설정이 다소 복잡하며, OpenShift 전용 기능들에 대한 러닝 커브가 존재합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유연성 제한&lt;/b&gt;: 강력한 보안 기능과 표준화된 환경은 사용자 정의에 제한을 둘 수 있으며, 오픈소스 프로젝트를 자유롭게 통합하는 데 제약이 있을 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. &lt;b&gt;최적의 솔루션 선택 가이드&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SUSE Rancher가 적합한 경우&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;b&gt;멀티 클러스터 관리가 필요한 경우&lt;/b&gt;: 여러 개의 Kubernetes 클러스터를 한 곳에서 통합 관리해야 하는 복잡한 클라우드 환경을 운영할 때.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비용 효율성&lt;/b&gt;: 상용 라이선스 비용 없이 Kubernetes를 운영하고 싶은 경우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유연성&lt;/b&gt;: 다양한 오픈소스 도구와 통합하고 사용자 정의 환경을 구성해야 하는 경우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;오픈소스 중심 조직&lt;/b&gt;: 비용과 커뮤니티 지원을 중요시하며, 오픈소스 도구를 자유롭게 활용하려는 조직.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Red Hat OpenShift가 적합한 경우&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;b&gt;엔터프라이즈급 지원&lt;/b&gt;: 높은 SLA(서비스 수준 계약)가 필요하고, 상용 지원을 통해 안정적인 운영을 원하는 경우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DevOps 및 CI/CD&lt;/b&gt;: DevOps 환경에서 통합된 CI/CD 파이프라인을 빠르게 구축하고 운영해야 하는 경우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보안&lt;/b&gt;: 금융, 의료와 같은 고도화된 보안이 요구되는 환경에서 Kubernetes를 사용해야 하는 경우.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;표준화된 개발 환경&lt;/b&gt;: 개발 환경을 표준화하여 일관성 있는 애플리케이션 배포 및 운영을 원하는 경우.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로, &lt;b&gt;SUSE Rancher&lt;/b&gt;는 다중 클러스터 관리가 필요하고 비용 효율성이 중요한 환경에서 강력한 유연성을 제공하며, &lt;b&gt;Red Hat OpenShift&lt;/b&gt;는 엔터프라이즈급 보안, 지원, 개발 도구가 중요한 환경에 적합한 솔루션입니다. 선택은 조직의 요구 사항과 인프라 환경에 따라 달라질 수 있습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>kubernetes</category>
      <author>모레라니</author>
      <guid isPermaLink="true">https://m-oley.tistory.com/43</guid>
      <comments>https://m-oley.tistory.com/43#entry43comment</comments>
      <pubDate>Fri, 6 Sep 2024 13:48:17 +0900</pubDate>
    </item>
  </channel>
</rss>