RHEL에 Debezium 설치


Red Hat Integration 2023.q2

RHEL(Red Hat Enterprise Linux)의 Red Hat Integration 2.1.4와 함께 사용할 수 있습니다.

Red Hat Integration Documentation Team

초록

이 가이드에서는 AMQ Streams를 사용하여 RHEL에 Red Hat Integration을 설치하는 방법을 설명합니다.

머리말

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. Debezium 개요

Debezium for Red Hat Integration은 데이터베이스 작업을 캡처하고, 행 수준 작업에 대한 데이터 변경 이벤트 레코드를 생성하고, 이벤트 레코드를 Apache Kafka 주제로 변경하는 분산 플랫폼입니다. Debezium은 Apache Kafka를 기반으로 하며 AMQ Streams와 배포 및 통합됩니다.

Debezium은 데이터베이스 테이블에 대한 행 수준 변경 사항을 캡처하고 해당 변경 이벤트를 AMQ Streams에 전달합니다. 애플리케이션은 이러한 변경 이벤트 스트림을 읽고 발생한 순서대로 변경 이벤트에 액세스할 수 있습니다.

Debezium 은 Debezium for Red Hat Integration의 업스트림 커뮤니티 프로젝트입니다.

Debezium에는 다음과 같은 여러 용도가 있습니다.

  • 데이터 복제
  • 캐시 및 검색 인덱스 업데이트
  • 모놀리식 애플리케이션 간소화
  • 데이터 통합
  • 스트리밍 쿼리 활성화

Debezium에서는 다음과 같은 일반적인 데이터베이스에 대한 Apache Kafka Connect 커넥터를 제공합니다.

2장. RHEL에 Debezium 커넥터 설치

커넥터 플러그인으로 Kafka Connect를 확장하여 AMQ Streams를 통해 Debezium 커넥터를 설치합니다. AMQ Streams를 배포한 후 Kafka Connect를 통해 Debezium을 커넥터 구성으로 배포할 수 있습니다.

2.1. Kafka 주제 생성 권장 사항

Debezium은 여러 Apache Kafka 항목에 데이터를 저장합니다. 항목은 관리자가 미리 만들거나 자동으로 주제를 구성하도록 Kafka Connect를 구성할 수 있어야 합니다.

다음 목록에서는 주제를 만들 때 고려해야 할 제한 사항 및 권장 사항에 대해 설명합니다.

Debezium Db2, MySQL, Oracle 및 SQL Server 커넥터에 대한 데이터베이스 스키마 기록 항목

위의 각 커넥터에는 데이터베이스 스키마 기록 항목이 필요합니다. 데이터베이스 스키마 기록 항목을 수동으로 생성하거나 Kafka 브로커를 사용하여 항목을 자동으로 생성하거나 Kafka Connect를 사용하여 주제를 만들 든, 다음 설정으로 주제를 구성해야 합니다.

  • 무한 또는 매우 긴 유지.
  • 프로덕션 환경에서 3개 이상의 복제 요인.
  • 단일 파티션.
기타 주제
  • 지정된 레코드에 대한 마지막 변경 이벤트만 저장되도록 Kafka 로그 압축 을 활성화하면 Apache Kafka에서 다음 항목 속성을 설정합니다.

    • min.compaction.lag.ms
    • delete.retention.ms

      주제 소비자가 모든 이벤트를 수신하고 마커를 삭제하기에 충분한 시간을 가지려면 싱크 커넥터에 대해 예상되는 최대 다운타임보다 큰 이전 속성의 값을 지정합니다. 예를 들어 싱크 커넥터에 업데이트를 적용할 때 발생할 수 있는 다운타임을 고려하십시오.

  • 프로덕션 환경에서 복제됩니다.
  • 단일 파티션.

    단일 파티션 규칙을 완화할 수 있지만 애플리케이션은 데이터베이스의 다른 행에 대한 순서 외 이벤트를 처리해야 합니다. 한 줄에 대한 이벤트는 여전히 완전히 주문됩니다. 여러 파티션을 사용하는 경우 기본 동작은 Kafka가 키를 해시하여 파티션을 결정하는 것입니다. 다른 파티션 전략에서는 단일 메시지 변환(SMT)을 사용하여 각 레코드의 파티션 번호를 설정해야 합니다.

2.2. Debezium 커넥터 구성 계획

Debezium 커넥터를 배포하기 전에 커넥터를 구성하는 방법을 결정합니다. 이 구성은 커넥터의 동작을 지정하고 Debezium이 소스 데이터베이스에 연결할 수 있도록 하는 정보를 제공합니다.

커넥터 구성을 JSON으로 지정하고 커넥터를 등록할 준비가 되면 curl 을 사용하여 Kafka Connect API 엔드포인트에 구성을 제출합니다.

사전 요구 사항

  • 소스 데이터베이스가 배포되고 Debezium 커넥터가 데이터베이스에 액세스할 수 있습니다.
  • 커넥터가 소스 데이터베이스에 액세스하는 데 필요한 다음 정보를 알고 있습니다.

    • 데이터베이스 호스트의 이름 또는 IP 주소입니다.
    • 데이터베이스에 연결하기 위한 포트 번호입니다.
    • 커넥터가 데이터베이스에 로그인하는 데 사용할 수 있는 계정의 이름입니다.
    • 데이터베이스 사용자 계정의 암호입니다.
    • 데이터베이스 이름입니다.
    • 커넥터가 정보를 캡처할 테이블의 이름입니다.
    • 커넥터가 변경 이벤트를 발송할 Kafka 브로커의 이름입니다.
    • 커넥터가 데이터베이스 기록 정보를 보낼 Kafka 항목의 이름입니다.

절차

  • JSON 형식의 Debezium 커넥터에 적용할 구성을 지정합니다.

    다음 예제에서는 Debezium MySQL 커넥터에 대한 간단한 구성을 보여줍니다.

    {
      "name": "inventory-connector",  
    1
    
      "config": {
        "connector.class": "io.debezium.connector.mysql.MySqlConnector", 
    2
    
        "tasks.max": "1",  
    3
    
        "database.hostname": "mysql",  
    4
    
        "database.port": "3306", 
    5
    
        "database.user": "debezium", 
    6
    
        "database.password": "dbz", 
    7
    
        "database.server.id": "184054",  
    8
    
        "topic.prefix": "dbserver1",   
    9
    
        "table.include.list": "public.inventory",  
    10
    
        "schema.history.internal.kafka.bootstrap.servers": "kafka:9092",  
    11
    
        "schema.history.internal.kafka.topic": "dbhistory.inventory"  
    12
    
      }
    }
    Copy to Clipboard Toggle word wrap
    1
    Kafka Connect 클러스터에 등록할 커넥터의 이름입니다.
    2
    커넥터 클래스의 이름입니다.
    3
    동시에 작동할 수 있는 작업 수입니다. 한 번에 하나의 작업만 작동해야 합니다.
    4
    호스트 데이터베이스 인스턴스의 호스트 이름 또는 IP 주소입니다.
    5
    데이터베이스 인스턴스의 포트 번호입니다.
    6
    Debezium이 데이터베이스에 연결하는 사용자 계정의 이름입니다.
    7
    데이터베이스 사용자 계정의 암호입니다.
    8
    커넥터의 고유한 숫자 ID입니다.
    이 속성은 MySQL 커넥터에만 사용됩니다.
    9
    커넥터가 변경 사항을 캡처하는 데이터베이스 서버 또는 서버 클러스터에 대한 논리 식별자 역할을 하는 문자열입니다. 지정된 문자열이 네임스페이스를 지정합니다. Debezium은 Avro 변환기를 사용할 때 커넥터가 쓰는 각 Kafka 항목에 이 이름을 접두사로 지정하고 Kafka Connect 스키마의 이름 및 해당 Avro 스키마의 네임스페이스를 추가합니다.
    10
    커넥터가 변경 이벤트를 캡처하는 테이블 목록입니다.
    11
    커넥터가 데이터베이스 스키마 기록을 전송하는 Kafka 브로커의 이름입니다. 지정된 브로커는 커넥터가 내보내는 변경 이벤트도 수신합니다.
    12
    스키마 기록을 저장하는 Kafka 항목의 이름입니다.
    커넥터가 다시 시작되면 커넥터가 중지된 시점에서 데이터베이스 로그 읽기를 다시 시작하여 오프라인 상태에서 발생한 모든 트랜잭션에 대한 이벤트를 출력합니다. 커넥터가 Kafka에 읽지 않은 트랜잭션의 변경 이벤트를 쓰기 전에 스키마 기록을 확인한 다음 원래 트랜잭션이 발생했을 때 적용되는 스키마를 적용합니다.

추가 정보

  • 각 커넥터 유형에 대해 설정할 수 있는 구성 속성에 대한 자세한 내용은 Debezium 사용자 가이드 의 커넥터 배포 설명서를 참조하십시오.

2.3. Red Hat Enterprise Linux에서 AMQ Streams를 사용하여 Debezium 배포

다음 절차에서는 Red Hat Enterprise Linux에서 Debezium에 대한 커넥터를 설정하는 방법을 설명합니다. 커넥터는 Apache Kafka와 외부 시스템 간에 데이터를 스트리밍하기 위한 프레임워크인 Apache Kafka Connect를 사용하여 AMQ Streams 클러스터에 배포됩니다. Kafka Connect는 독립 실행형 모드가 아닌 분산 모드에서 실행되어야 합니다.

사전 요구 사항

참고

이전 버전의 AMQ Streams를 실행하는 경우 먼저 AMQ Streams 2.3으로 업그레이드해야 합니다. 업그레이드 프로세스에 대한 자세한 내용은 AMQ Streams 및 Kafka 업그레이드를 참조하십시오.

  • 호스트에 대한 관리 권한(sudo 액세스)이 있습니다.
  • Apache ZooKeeper 및 Apache Kafka 브로커가 실행 중입니다.
  • Kafka Connect는 독립 실행형 모드가 아닌 분산 모드로 실행됩니다.
  • AMQ Streams를 설치할 때 생성된 kafka 사용자의 인증 정보를 알고 있습니다.
  • 소스 데이터베이스가 배포되고 Debezium을 배포하는 호스트는 데이터베이스에 액세스할 수 있습니다.
  • 커넥터를 구성하는 방법을 알고 있습니다.

절차

  1. Red Hat Integration 다운로드 사이트에서 사용하려는 Debezium 커넥터 또는 커넥터를 다운로드합니다. 예를 들어 MySQL 데이터베이스와 함께 Debezium을 사용하려면 Debezium 2.1.4 MySQL Connector 를 다운로드합니다.
  2. AMQ Streams를 배포한 Red Hat Enterprise Linux 호스트에서 터미널 창을 열고 /opt/kafkaconnector-plugins 디렉터리를 생성합니다.

    $ sudo mkdir /opt/kafka/connector-plugins
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 입력하여 /opt/kafka/connector-plugins 디렉터리에 다운로드한 Debezium 커넥터 아카이브의 콘텐츠를 추출합니다.

    $ sudo unzip debezium-connector-mysql-2.1.4.Final.zip -d /opt/kafka/connector-plugins
    Copy to Clipboard Toggle word wrap
  4. 설치하려는 각 커넥터에 대해 1~3단계를 반복합니다.
  5. 터미널 창에서 kafka 사용자로 로그인합니다.

    $ su - kafka
    $ Password:
    Copy to Clipboard Toggle word wrap
  6. Kafka Connect 프로세스가 실행 중인 경우 중지합니다.

    1. 다음 명령을 입력하여 Kafka Connect가 분산 모드에서 실행 중인지 확인합니다.

      $ jcmd | grep ConnectDistributed
      Copy to Clipboard Toggle word wrap

      프로세스가 실행 중인 경우 명령에서 프로세스 ID를 반환합니다. 예를 들면 다음과 같습니다.

      18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
      Copy to Clipboard Toggle word wrap
    2. 프로세스 ID로 kill 명령을 입력하여 프로세스를 중지합니다. 예를 들면 다음과 같습니다.

      $ kill 18514
      Copy to Clipboard Toggle word wrap
  7. /opt/kafka/config/ 에서 connect-distributed.properties 파일을 편집하고 Debezium 커넥터 플러그인의 상위 디렉터리 위치로 plugin.path 값을 설정합니다.

    plugin.path=/opt/kafka/connector-plugins
    Copy to Clipboard Toggle word wrap
  8. 분산 모드에서 Kafka Connect를 시작합니다.

    $ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties
    Copy to Clipboard Toggle word wrap
  9. Kafka Connect가 실행된 후 Kafka Connect API를 사용하여 커넥터를 등록합니다.
    curl 명령을 입력하여 2.2절. “Debezium 커넥터 구성 계획” 에 지정한 커넥터 구성 JSON을 localhost:8083/connectors 의 Kafka Connect REST API 엔드포인트에 전송하는 POST 요청을 제출합니다.
    예를 들면 다음과 같습니다.

    curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ \
    -d '{"name": "inventory-connector", "config": \
    { "connector.class": "io.debezium.connector.mysql.MySqlConnector", \
    "tasks.max": "1", \
    "database.hostname": "mysql", \
    "database.port": "3306", \
    "database.user": "debezium", \
    "database.password": "dbz", \
    "database.server.id": "184054", \
    "topic.prefix": "dbserver1", \
    "table.include.list": "public.inventory", \
    "schema.history.internal.kafka.bootstrap.servers": "kafka:9092", \
    "schema.history.internal.kafka.topic": "dbhistory.inventory" } }'
    Copy to Clipboard Toggle word wrap

    여러 커넥터를 등록하려면 각각에 대해 별도의 요청을 제출합니다.

  10. Kafka Connect를 다시 시작하여 변경 사항을 구현합니다.

    Kafka Connect가 시작되면 connector-plugins 디렉터리에서 구성된 Debezium 커넥터를 로드합니다.

    구성을 완료한 후 배포된 커넥터는 소스 데이터베이스에 연결되고 삽입, 업데이트 또는 삭제된 행 또는 문서에 대한 이벤트를 생성합니다.

  11. 각 Kafka Connect 작업자 노드에 대해 5-10단계를 반복합니다.

2.4. 배포 확인

커넥터가 시작되면 구성된 데이터베이스의 스냅샷을 수행하고 지정한 각 테이블에 대한 주제를 만듭니다.

사전 요구 사항

  • 2.3절. “Red Hat Enterprise Linux에서 AMQ Streams를 사용하여 Debezium 배포” 의 지침에 따라 Red Hat Enterprise Linux에 커넥터를 배포했습니다. .Procedure

    1. 호스트의 터미널 창에서 다음 명령을 입력하여 Kafka Connect API에서 커넥터 목록을 요청합니다.

      $ curl -H "Accept:application/json" localhost:8083/connectors/
      Copy to Clipboard Toggle word wrap

      쿼리는 배포된 커넥터의 이름을 반환합니다. 예를 들면 다음과 같습니다.

      ["inventory-connector"]
      Copy to Clipboard Toggle word wrap
    2. 호스트의 터미널 창에서 다음 명령을 입력하여 커넥터가 실행 중인 작업을 확인합니다.

      $ curl -i -X GET -H "Accept:application/json" localhost:8083/connectors/inventory-connector
      Copy to Clipboard Toggle word wrap

      이 명령은 다음 예와 유사한 출력을 반환합니다.

      HTTP/1.1 200 OK
      Date: Thu, 06 Feb 2020 22:12:03 GMT
      Content-Type: application/json
      Content-Length: 531
      Server: Jetty(9.4.20.v20190813)
      
      {
        "name": "inventory-connector",
        ...
        "tasks": [
          {
            "connector": "inventory-connector",
            "task": 0
          }
        ]
      }
      Copy to Clipboard Toggle word wrap
    3. Kafka 클러스터의 주제 목록을 표시합니다.
      터미널 창에서 /opt/kafka/bin/ 로 이동하여 다음 쉘 스크립트를 실행합니다.

      ./kafka-topics.sh --bootstrap-server=localhost:9092 --list
      Copy to Clipboard Toggle word wrap

      Kafka 브로커는 커넥터가 생성하는 주제 목록을 반환합니다. 사용 가능한 주제는 커넥터의 snapshot.mode,snapshot.include.collection.list 설정 및 table.include.list 구성 속성에 따라 다릅니다. 기본적으로 커넥터는 데이터베이스의 시스템 이외의 각 테이블에 대한 항목을 만듭니다.

    4. 주제의 내용을 봅니다.
      터미널 창에서 /opt/kafka/bin/ 로 이동하여 kafka-console-consumer.sh 쉘 스크립트를 실행하여 이전 명령에서 반환한 주제 중 하나의 내용을 표시합니다.

      예를 들면 다음과 같습니다.

      ./kafka-console-consumer.sh \
      >     --bootstrap-server localhost:9092 \
      >     --from-beginning \
      >     --property print.key=true \
      >     --topic=dbserver1.inventory.products_on_hand
      Copy to Clipboard Toggle word wrap

      주제의 각 이벤트에 대해 명령에서 다음 출력과 유사한 정보를 반환합니다.

      예 2.1. Integration 변경 이벤트의 내용

      {"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"product_id"}],"optional":false,"name":"dbserver1.inventory.products_on_hand.Key"},"payload":{"product_id":101}}	{"schema":{"type":"struct","fields":[{"type":"struct","fields":[{"type":"int32","optional":false,"field":"product_id"},{"type":"int32","optional":false,"field":"quantity"}],"optional":true,"name":"dbserver1.inventory.products_on_hand.Value","field":"before"},{"type":"struct","fields":[{"type":"int32","optional":false,"field":"product_id"},{"type":"int32","optional":false,"field":"quantity"}],"optional":true,"name":"dbserver1.inventory.products_on_hand.Value","field":"after"},{"type":"struct","fields":[{"type":"string","optional":false,"field":"version"},{"type":"string","optional":false,"field":"connector"},{"type":"string","optional":false,"field":"name"},{"type":"int64","optional":false,"field":"ts_ms"},{"type":"string","optional":true,"name":"io.debezium.data.Enum","version":1,"parameters":{"allowed":"true,last,false"},"default":"false","field":"snapshot"},{"type":"string","optional":false,"field":"db"},{"type":"string","optional":true,"field":"sequence"},{"type":"string","optional":true,"field":"table"},{"type":"int64","optional":false,"field":"server_id"},{"type":"string","optional":true,"field":"gtid"},{"type":"string","optional":false,"field":"file"},{"type":"int64","optional":false,"field":"pos"},{"type":"int32","optional":false,"field":"row"},{"type":"int64","optional":true,"field":"thread"},{"type":"string","optional":true,"field":"query"}],"optional":false,"name":"io.debezium.connector.mysql.Source","field":"source"},{"type":"string","optional":false,"field":"op"},{"type":"int64","optional":true,"field":"ts_ms"},{"type":"struct","fields":[{"type":"string","optional":false,"field":"id"},{"type":"int64","optional":false,"field":"total_order"},{"type":"int64","optional":false,"field":"data_collection_order"}],"optional":true,"field":"transaction"}],"optional":false,"name":"dbserver1.inventory.products_on_hand.Envelope"},"payload":{"before":null,"after":{"product_id":101,"quantity":3},"source":{"version":"2.1.4.Final-redhat-00001","connector":"mysql","name":"inventory_connector_mysql","ts_ms":1638985247805,"snapshot":"true","db":"inventory","sequence":null,"table":"products_on_hand","server_id":0,"gtid":null,"file":"mysql-bin.000003","pos":156,"row":0,"thread":null,"query":null},"op":"r","ts_ms":1638985247805,"transaction":null}}
      Copy to Clipboard Toggle word wrap

      위 예제에서 페이로드 값은 커넥터 스냅샷이 테이블 inventory.ECDHE_on_hand 에서 읽기("op" ="r") 이벤트를 생성했음을 보여줍니다. product_id 레코드의 "before" 상태는 레코드에 이전 값이 없음을 나타내는 null 입니다. "after" 상태는 product_id 101 이 있는 항목에 대한 수량 을 표시합니다.

다음 단계

각 커넥터에 사용할 수 있는 구성 설정에 대한 정보와 데이터 캡처를 사용하도록 소스 데이터베이스를 구성하는 방법에 대한 자세한 내용은 Debezium User Guide 를 참조하십시오.

2.5. Kafka Connect 클러스터에서 Debezium 커넥터 플러그인 업데이트

Red Hat Enterprise Linux에 배포된 Debezium 커넥터 버전을 교체하려면 커넥터 플러그인을 업데이트합니다.

절차

  1. Red Hat Integration 다운로드 사이트에서 교체하려는 Debezium 커넥터 플러그인 사본을 다운로드합니다.
  2. Debezium 커넥터 아카이브의 콘텐츠를 /opt/kafka/connector-plugins 디렉터리에 추출합니다.

    $ sudo unzip debezium-connector-mysql-2.1.4.Final.zip -d /opt/kafka/connector-plugins
    Copy to Clipboard Toggle word wrap
  3. Kafka Connect를 다시 시작합니다.

부록 A. 서브스크립션 사용

소프트웨어 서브스크립션을 통해 통합이 제공됩니다. 서브스크립션을 관리하려면 Red Hat 고객 포털에서 계정에 액세스하십시오.

귀하의 계정에 액세스

  1. access.redhat.com 으로 이동합니다.
  2. 아직 계정이 없는 경우 계정을 생성합니다.
  3. 계정에 로그인합니다.

서브스크립션 활성화

  1. access.redhat.com 으로 이동합니다.
  2. 내 서브스크립션으로 이동합니다.
  3. 서브스크립션을 활성화하여 16자리 활성화 번호를 입력합니다.

zip 및 tar 파일 다운로드

zip 또는 tar 파일에 액세스하려면 고객 포털을 사용하여 다운로드할 관련 파일을 찾습니다. RPM 패키지를 사용하는 경우에는 이 단계가 필요하지 않습니다.

  1. 브라우저를 열고 access.redhat.com/downloads 에서 Red Hat 고객 포털 제품 다운로드 페이지에 로그인합니다.
  2. 아래로 스크롤하여 INTEGRAT ION 및 AUTOMATION 으로 이동합니다.
  3. Red Hat Integration 을 클릭하여 Red Hat Integration 다운로드 페이지를 표시합니다.
  4. 구성 요소에 대한 다운로드 링크를 클릭합니다.

2023-04-21에 최종 업데이트된 문서

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat