4단계: Amazon MSK 클러스터에서 주제 생성 - Amazon Managed Streaming for Apache Kafka

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

4단계: Amazon MSK 클러스터에서 주제 생성

Amazon MSK 사용 시작하기 단계에서는 클라이언트 머신에 Apache Kafka 클라이언트 라이브러리 및 도구를 설치한 다음 주제를 생성합니다.

주의

이 자습서에서 사용된 Apache Kafka 버전 번호는 예제일 뿐입니다. MSK 클러스터 버전과 동일한 버전의 클라이언트를 사용하는 것을 권장합니다. 이전 클라이언트 버전에는 특정 기능과 중요한 버그 수정이 없을 수 있습니다.

MSK 클러스터 버전 확인

  1. https://console.aws.amazon.com/msk/에서 Amazon MSK 콘솔을 엽니다.

  2. 탐색 모음에서 MSK 클러스터를 생성한 리전을 선택합니다.

  3. MSK 클러스터를 선택합니다.

  4. 클러스터에서 사용되는 Apache Kafka 버전을 확인합니다.

  5. 자습서에서 Amazon MSK 버전 번호의 인스턴스를 3단계에서 얻은 버전으로 변경합니다.

클라이언트 머신에서 주제 생성

  1. 클라이언트 시스템에 연결합니다.

    1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

    2. 탐색 창에서 인스턴스를 선택합니다. 그런 다음에서 생성한 클라이언트 시스템의 이름 옆에 있는 확인란을 선택합니다3단계: 클라이언트 머신 생성.

    3. 작업을 선택하고 연결을 선택합니다. 콘솔의 지침을 따라 클라이언트 머신에 연결합니다.

  2. Java를 설치하고 Kafka 버전 환경 변수를 설정합니다.

    1. 다음 명령을 실행하여 클라이언트 시스템에 Java를 설치합니다.

      sudo yum -y install java-11
    2. 다음 명령과 KAFKA_VERSION같이 환경 변수에 MSK 클러스터의 Kafka 버전을 저장합니다. 설정 전반에 걸쳐이 정보가 필요합니다.

      export KAFKA_VERSION={KAFKA VERSION}

      예를 들어 버전 3.6.0을 사용하는 경우 다음 명령을 사용합니다.

      export KAFKA_VERSION=3.6.0
  3. Apache Kafka를 다운로드하고 추출합니다.

    1. Apache Kafka를 다운로드하려면 다음 명령을 실행합니다.

      wget https://archive.apache.org/dist/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgz

      예를 들어 MSK 클러스터가 Apache Kafka 버전 3.6.0을 사용하는 경우 다음 명령을 실행합니다.

      wget https://archive.apache.org/dist/kafka/3.6.0/kafka_2.13-3.6.0.tgz
      참고

      다음 목록에는 문제가 발생할 경우 사용할 수 있는 몇 가지 대체 Kafka 다운로드 정보가 나와 있습니다.

      • 연결 문제가 발생하거나 미러 사이트를 사용하려면 다음 명령과 같이 Apache 미러 선택기를 사용해 보세요.

        wget https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgz
      • Apache Kafka 웹 사이트에서 직접 적절한 버전을 다운로드합니다.

    2. 이전 단계에 TAR 파일을 다운로드한 디렉토리에서 다음 명령을 실행합니다.

      tar -xzf kafka_2.13-$KAFKA_VERSION.tgz
    3. 새로 생성된 디렉터리의 전체 경로를 KAFKA_ROOT 환경 변수 내에 저장합니다.

      export KAFKA_ROOT=$(pwd)/kafka_2.13-$KAFKA_VERSION
  4. MSK 클러스터에 대한 인증을 설정합니다.

    1. $KAFKA_ROOT/libs 디렉터리 내에서 최신 버전의 Amazon MSK IAM JAR 파일을 다운로드합니다. 다음 명령을 사용하여 파일을 다운로드하고 {LATEST VERSION}을 실제 버전 번호로 바꿉니다.

      cd $KAFKA_ROOT/libs wget https://github.com/aws/aws-msk-iam-auth/releases/latest/download/aws-msk-iam-auth-{LATEST VERSION}-all.jar

      Amazon MSK IAM JAR 파일을 사용하면 클라이언트 머신이 IAM 인증을 사용하여 MSK 클러스터에 액세스할 수 있습니다.

      참고

      MSK 클러스터와 상호 작용하는 Kafka 명령을 실행하기 전에 Java 클래스 경로에 Amazon MSK IAM JAR 파일을 추가해야 할 수 있습니다. 다음 예제와 같이 CLASSPATH 환경 변수를 설정합니다.

      export CLASSPATH=$KAFKA_ROOT/libs/aws-msk-iam-auth-{LATEST VERSION}-all.jar

      이렇게 하면 전체 세션에 CLASSPATH 대해가 설정되므로 모든 후속 Kafka 명령에서 JAR을 사용할 수 있습니다.

    2. $KAFKA_ROOT/config 디렉터리로 이동하여 클라이언트 구성 파일을 생성합니다.

      cd $KAFKA_ROOT/config
    3. 다음 속성 설정을 복사하여 새 파일에 붙여넣습니다. 파일을 client.properties(으)로 저장합니다.

      security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
  5. (선택 사항) 메모리 관련 문제가 발생하거나 많은 주제 또는 파티션으로 작업하는 경우 Kafka 도구의 Java 힙 크기를 조정할 수 있습니다. 이렇게 하려면 Kafka 명령을 실행하기 전에 KAFKA_HEAP_OPTS 환경 변수를 설정합니다.

    다음 예제에서는 최대 힙 크기와 초기 힙 크기를 모두 512MB로 설정합니다. 특정 요구 사항 및 사용 가능한 시스템 리소스에 따라 이러한 값을 조정합니다.

    export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"
  6. 클러스터 연결 정보를 가져옵니다.

    1. https://console.aws.amazon.com/msk/에서 Amazon MSK 콘솔을 엽니다.

    2. 클러스터 상태가 활성이 될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다. 상태가 활성이 되면 클러스터 이름을 선택합니다. 클러스터 요약이 포함된 페이지로 이동합니다.

    3. 클라이언트 정보 보기를 선택합니다.

    4. 프라이빗 엔드포인트에 대한 연결 문자열을 복사합니다.

      각 브로커에 대해 세 개의 엔드포인트를 가져옵니다. 다음 명령과 BOOTSTRAP_SERVER같이 이러한 연결 문자열 중 하나를 환경 변수에 저장합니다. <bootstrap-server-string>을 연결 문자열의 실제 값으로 바꿉니다.

      export BOOTSTRAP_SERVER=<bootstrap-server-string>
  7. 다음 명령을 실행하여 주제를 생성합니다.

    $KAFKA_ROOT/bin/kafka-topics.sh --create --bootstrap-server $BOOTSTRAP_SERVER --command-config $KAFKA_ROOT/config/client.properties --replication-factor 3 --partitions 1 --topic MSKTutorialTopic

    client.properties 파일에 NoSuchFileException 대한를 가져오는 경우이 파일이 Kafka bin 디렉터리 내의 현재 작업 디렉터리에 있는지 확인합니다.

    참고

    전체 세션에 대해 CLASSPATH 환경 변수를 설정하지 않으려면 각 Kafka 명령에 CLASSPATH 변수 접두사를 붙일 수도 있습니다. 이 접근 방식은 해당 특정 명령에만 클래스 경로를 적용합니다.

    CLASSPATH=$KAFKA_ROOT/libs/aws-msk-iam-auth-{LATEST VERSION}-all.jar \ $KAFKA_ROOT/bin/kafka-topics.sh --create \ --bootstrap-server $BOOTSTRAP_SERVER \ --command-config $KAFKA_ROOT/config/client.properties \ --replication-factor 3 \ --partitions 1 \ --topic MSKTutorialTopic
  8. (선택 사항) 주제가 성공적으로 생성되었는지 확인합니다.

    1. 명령이 성공하면 다음 메시지가 표시됩니다. Created topic MSKTutorialTopic.

    2. 모든 주제를 나열하여 주제가 존재하는지 확인합니다.

      $KAFKA_ROOT/bin/kafka-topics.sh --list --bootstrap-server $BOOTSTRAP_SERVER --command-config $KAFKA_ROOT/config/client.properties

    명령이 실패하거나 오류가 발생하면에서 Amazon MSK 클러스터 문제 해결 문제 해결 정보를 참조하세요.

  9. (선택 사항)이 자습서의 다음 단계를 위해 환경 변수를 유지하려면이 단계를 건너뜁니다. 그렇지 않으면 다음 예제와 같이 변수를 설정 해제할 수 있습니다.

    unset KAFKA_VERSION KAFKA_ROOT BOOTSTRAP_SERVER CLASSPATH KAFKA_HEAP_OPTS

다음 단계

5단계: 데이터 생산 및 소비