RHEL 고급 #6 Subscription, Satellite, Insights — 운영 인프라
#5 보안 강화까지가 한 머신 단위의 운영이었다면, 이번 글은 여러 머신을 한 번에 운영하는 시점 에 만나는 도구들입니다. RHEL 한 대를 그냥 깔아 써도 동작은 하지만, 수십,수백 대 단위로 가면 패치 관리, 콘텐츠 일관성, 취약점 모니터링이 도구 없이는 불가능해집니다. 그 공백을 채우는 Red Hat의 세 도구 — subscription-manager (구독 등록), Satellite (온프레미스 통합 플랫폼), Insights (SaaS 분석)를 한 사이클로 다루겠습니다.
RHEL 고급 시리즈에서 이번 글의 위치:
- #1 부팅 프로세스 — GRUB2, dracut, 복구 모드
- #2 커널 튜닝 — sysctl, tuned, kdump
- #3 성능 분석 — sar, top/htop, iostat, vmstat, perf
- #4 SELinux 고급 — 정책 직접 작성과 audit2allow
- #5 보안 강화 — auditd, OpenSCAP, FIPS
- #6 Subscription, Satellite, Insights — 운영 인프라 ← 이번 글
- #7 Cockpit으로 GUI 관리와 web console
세 도구의 관계 #
1대 ~ 10대 : subscription-manager + Insights (충분)
│
10대 ~ 50대 : 같음 + Ansible / 자동화 스크립트
│
50대 ~ 수백대 + : Satellite (온프레미스 단일 진입점)
│
+ 격리 환경 : Satellite + Capsule (지점/DMZ)| 도구 | 어디서 도나 | 무엇을 하나 |
|---|---|---|
subscription-manager | 각 RHEL 머신 | Red Hat 구독에 머신 등록, repository 활성화 |
| Satellite | 온프레미스 단일 서버 (또는 클러스터) | 콘텐츠 미러, 라이프사이클 관리, 호스트 통합 운영 |
| Insights | Red Hat SaaS (cloud.redhat.com) | 등록된 머신을 분석해 취약점,안정성,성능 권고 |
subscription-manager는 모든 RHEL 머신이 가진 기본 도구. Satellite는 그 위에서 동작하는 온프레미스 통합 플랫폼이고, Insights는 별도의 SaaS 분석 서비스입니다.
subscription-manager #
RHEL 9를 설치하고 가장 먼저 만나는 명령. dnf가 Red Hat repository를 보려면 머신이 Red Hat 구독에 등록돼 있어야 합니다.
$ sudo subscription-manager register --username <user> --password <pass>
The system has been registered with ID: 12345678-1234-...등록 상태와 구독 #
# 등록 상태
$ sudo subscription-manager status
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Current
# 활성 구독
$ sudo subscription-manager list --consumed
# 등록 해제
$ sudo subscription-manager unregisterRepository 활성화 #
기본 BaseOS / AppStream 외에 추가 repository (CodeReady Builder, Supplementary 등)를 켜야 할 때:
# 사용 가능한 repo 목록
$ sudo subscription-manager repos --list
# 활성화
$ sudo subscription-manager repos \
--enable=codeready-builder-for-rhel-9-x86_64-rpms
# 비활성화
$ sudo subscription-manager repos \
--disable=rhel-9-for-x86_64-supplementary-rpms활성화하면 /etc/yum.repos.d/redhat.repo가 자동 갱신되고 dnf가 그 repo의 패키지를 보게 됩니다.
구독 종류 #
운영 환경에서 자주 만나는 구독 유형:
| 종류 | 용도 |
|---|---|
| Standard | 일반 운영 RHEL (8x5 또는 24x7 지원) |
| Premium | 운영 + 24x7 지원 |
| Developer Subscription for Individuals | 개인 개발자 무료 (최대 16대 등록 가능) |
| Developer Subscription for Teams | 팀 개발자 무료 |
| BYOS (Bring Your Own Subscription) | AWS/Azure/GCP의 RHEL 인스턴스에 자기 구독을 사용 |
| PAYG (Pay As You Go) | 클라우드 marketplace에서 시간당 과금 |
개인 학습/개발이라면 Red Hat Developer 무료 가입으로 RHEL 9를 합법적으로 깔 수 있습니다.
Simple Content Access (SCA) #
전통적으로 RHEL 구독은 머신 한 대당 한 entitlement가 필요했습니다 (entitlement = 구독 슬롯). 머신 수가 늘어나면 자기 entitlement를 관리하는 게 일이 됐습니다. Simple Content Access 는 그 모델을 단순화 — 조직 단위로 한 번 활성화하면 머신마다 entitlement를 추적하지 않아도 되고, 등록만 하면 콘텐츠 접근이 열립니다.
$ sudo subscription-manager register --username <u> --password <p>
# attach 명령 불필요RHEL 9 시점부터는 SCA가 사실상 표준입니다. 대형 조직에서는 Red Hat Hybrid Cloud Console에서 활성화돼 있는지 확인.
Activation Key #
자동화 환경에서 사용자명/비밀번호를 두지 않고 등록하는 방법.
$ sudo subscription-manager register \
--org=<org-name> \
--activationkey=<key-name>키는 Red Hat Hybrid Cloud Console → Activation Keys에서 생성. Kickstart 나 cloud-init의 user-data에 박아두면 부팅 시점에 자동 등록됩니다.
Red Hat Satellite — 온프레미스 통합 플랫폼 #
수십 ~ 수백 대 이상을 운영하는 시점에 등장합니다. 핵심 역할:
- 콘텐츠 미러 — Red Hat repository를 사내에 미러링. 인터넷 격리 환경에서 RHEL 운영 가능
- 라이프사이클 관리 — Dev → QA → Prod 환경별로 콘텐츠 버전 분리
- 호스트 통합 운영 — 모든 RHEL 머신을 한 콘솔에서 관리 (패치, 프로비저닝, 구성)
- Capsule — 지점/DMZ의 프록시 역할
핵심 개념 #
┌─────────────────────────┐
│ Red Hat CDN │
│ (cdn.redhat.com) │
└────────────┬────────────┘
│ sync
┌────────────▼────────────┐
│ Satellite Server │
│ (HQ) │
│ - Content Sync │
│ - Lifecycle Env │
│ - Content Views │
│ - Host Inventory │
└────┬────────────────┬───┘
│ │
┌────────▼─────┐ ┌───────▼──────┐
│ Capsule (A) │ │ Capsule (B) │
│ (지점 1) │ │ (DMZ) │
└──────┬───────┘ └──────┬───────┘
│ │
[content host] [content host]
[content host] [content host]라이프사이클 환경 #
Library (모든 동기화 콘텐츠) → Dev → QA → Prod각 환경에 Content View (사용할 repository와 패키지 묶음)를 발행 (publish) 하고 다음 환경으로 promote 합니다. Dev에서 며칠 검증한 패치 묶음을 QA로, QA에서 또 검증한 뒤 Prod로 — 이 흐름이 표준.
콘텐츠 뷰 (Content View) #
여러 repository를 묶고 필터링한 단위. 같은 이름이라도 환경별로 다른 버전을 가질 수 있습니다.
Content View: rhel9-base
- rhel-9-for-x86_64-baseos-rpms
- rhel-9-for-x86_64-appstream-rpms
- rhel-9-for-x86_64-supplementary-rpms
Lifecycle:
Dev: Version 5 (오늘 발행)
QA: Version 4 (1주일 전 발행)
Prod: Version 3 (한 달 전 발행)문제가 발견되면 promote를 멈추거나 이전 버전으로 롤백합니다.
호스트 등록과 운영 #
콘텐츠 호스트가 Satellite에 등록되면 다음을 한 콘솔에서 관리할 수 있습니다.
| 영역 | 무엇을 |
|---|---|
| Errata | 보안/버그/기능 패치 — 환경별로 적용 가능한 errata 자동 식별 |
| Patch | dnf update를 호스트별/그룹별로 일괄 실행 |
| Provisioning | 베어메탈/VM 부팅 → Kickstart → 자동 설치 |
| Configuration | Ansible/Puppet 통합으로 구성 관리 |
| Subscriptions | 구독 통합 관리 (SCA 시 단순화) |
| Reports | 호스트별 패치 현황, 컴플라이언스 |
Capsule #
Satellite Server의 자식 노드. 지점이나 DMZ처럼 메인 서버에 직접 접근하지 않는 위치에서 콘텐츠 캐싱과 호스트 관리를 대신합니다. 콘텐츠는 메인에서 Capsule로 동기화되고, 그 지역의 콘텐츠 호스트는 Capsule만 본다 — 네트워크 효율과 보안 격리를 동시에.
설치 — 스케일 #
| 기준 | 권장 |
|---|---|
| 호스트 수 | ~ 5,000 대 / Satellite 1 대, 그 이상은 Capsule 분산 |
| 사양 | CPU 8+, RAM 32GB+, 디스크 200GB+ (콘텐츠 동기화에 큰 디스크) |
| OS | RHEL 9 |
| 라이센스 | 별도 구독 필요 |
설치는 satellite-installer로 한 번에. 자세한 절차는 별개 글의 분량입니다 — 여기서는 개요까지만.
Red Hat Insights — SaaS 분석 #
별도 설치 인프라 없이, 등록된 RHEL 머신의 데이터를 Red Hat 클라우드로 보내고 분석 결과를 받는 서비스입니다. RHEL 구독에 기본으로 포함됩니다.
활성화 #
$ sudo dnf install -y insights-client
$ sudo insights-client --register
# 등록 상태
$ sudo insights-client --status
$ sudo insights-client --display-name "web-prod-01"등록되면 매일 자동으로 머신의 시스템 정보,구성,로그 일부를 분석 서버로 보냅니다 (어떤 데이터를 보내는지는 insights-client --offline --output-file=으로 미리 확인 가능).
무엇을 받나 #
console.redhat.com/insights에서 다음 카테고리의 권고를 받습니다.
| 카테고리 | 무엇을 |
|---|---|
| Vulnerability | 알려진 CVE와 영향받는 머신, errata 매핑 |
| Advisor | 안정성,성능,보안 베스트프랙티스 위반 |
| Compliance | OpenSCAP 점검 결과 통합 (CIS, PCI-DSS 등) |
| Patch | 적용 가능한 errata와 영향 패키지 |
| Drift | 머신 간 구성 차이 추적 |
| Policies | 사용자 정의 정책 위반 알림 |
| Subscriptions | 구독 사용 현황 |
| Inventory | 등록된 모든 머신의 통합 인벤토리 |
각 권고에는 why this matters (왜 중요한지), how to fix (구체적 조치, Ansible playbook 다운로드 가능), affected systems (영향받는 머신 목록)이 함께 옵니다. 권고 페이지에서 한 번에 Ansible playbook으로 묶어 다운받아 적용할 수 있습니다 — Remediation Plans 기능.
Insights와 Satellite의 관계 #
Satellite가 있다면 Insights의 데이터를 Satellite와 통합해서 한 화면에서 볼 수 있습니다. Satellite가 인프라를 운영하고, Insights가 인프라를 분석한다 가 한 줄 정리.
데이터 프라이버시 #
업로드되는 데이터에 민감 정보가 들어 있을 수 있어, /etc/insights-client/file-content-redaction.yaml과 /etc/insights-client/file-redaction.yaml에서 redaction 규칙을 정의할 수 있습니다. 정부,금융 환경에서는 등록 전에 반드시 검토.
patterns:
regex:
- "password\\s*=\\s*\\S+"
- "api[_-]?key\\s*[:=]\\s*\\S+"
keywords:
- secret
- credential셋을 묶은 운영 흐름 #
| 시점 | 도구 |
|---|---|
| 머신 1대 띄움 | subscription-manager register + insights-client --register |
| 10대 이상 자동화 | activation key로 Kickstart/cloud-init 자동 등록 |
| 50대 이상 통합 | Satellite도입, 콘텐츠 뷰 + 라이프사이클 환경 설계 |
| 격리 환경 | Capsule 추가 (지점/DMZ) |
| 정기 운영 | Insights 권고 → Remediation Plan → Ansible 적용 |
| 패치 정기 | Satellite의 errata → Dev 환경 promote → QA → Prod |
흔한 함정 #
- Developer Subscription을 운영에 사용 — 라이센스 위반. 운영은 반드시 Standard/Premium 또는 BYOS/PAYG.
subscription-manager attach --auto를 SCA 환경에서 — SCA 환경에서는 attach가 무의미하고 가끔 경고를 띄웁니다. SCA가 켜졌으면 register만.- Satellite를 단일 머신에서 한 번에 너무 많은 호스트 — 5,000 대를 넘기 전에 Capsule 분산 계획.
- Content View를 Library 그대로 Prod에 직결 — 라이프사이클 환경의 의미가 사라짐. Library에서 콘텐츠 동기화, Content View 발행 후 Dev → QA → Prod로 promote.
- Insights에 redaction 없이 운영 데이터 —
/etc/insights-client/*-redaction.yaml미설정으로 비밀번호/API 키가 업로드될 수 있습니다. 등록 전 검토 필수. - Insights 권고를 무조건 적용 — 권고가 자기 환경에 안 맞을 수 있습니다 (예: 의도적으로 비활성화한 서비스). 적용 전 검토는 OpenSCAP
--remediate와 같은 원칙. - Capsule 디스크 부족 — 콘텐츠 동기화 양이 무겁습니다. RHEL 9 BaseOS + AppStream만 해도 100GB+. 디스크 모니터링 필수.
기억해 둘 명령 #
| 작업 | 명령 |
|---|---|
| 머신 등록 | sudo subscription-manager register --username <u> |
| activation key 등록 | sudo subscription-manager register --org <o> --activationkey <k> |
| 등록 상태 | sudo subscription-manager status |
| repo 목록/변경 | sudo subscription-manager repos --list / --enable=<id> |
| 등록 해제 | sudo subscription-manager unregister && sudo subscription-manager clean |
| Insights 등록 | sudo dnf install -y insights-client && sudo insights-client --register |
| Insights 데이터 미리보기 | sudo insights-client --offline --output-file=/tmp/insights.tar.gz |
| Satellite host 등록 | curl <satellite>/register | sudo bash (공식 한 줄 등록 스크립트) |
정리 #
- subscription-manager — 모든 RHEL 머신의 기본 도구. SCA 시대에는 register만. 자동화는 activation key.
- Satellite — 50 ~ 100 대 이상 운영 시점의 온프레미스 통합 플랫폼. Library → Content View → Dev/QA/Prod 라이프사이클로 콘텐츠 흐름 통제. Capsule로 지점/DMZ 분산.
- Insights — 별도 인프라 없이 등록만 하면 받는 SaaS 분석. 취약점,안정성,성능,컴플라이언스 권고 + Ansible Remediation Plan. redaction 설정 반드시 검토.
- 셋의 쓰임 — 한 대 운영(subscription-manager + Insights), 다수 운영(추가로 Satellite). 셋이 다 별개 도구지만 같은 콘솔(console.redhat.com)에서 통합.
다음 글은 시리즈의 마지막. 지금까지 모든 내용은 CLI 중심이었지만 — 가벼운 GUI가 필요한 경우도 있습니다. 브라우저로 RHEL을 관리하는 Cockpit 으로 시리즈를 닫겠습니다.