

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

# Amazon MSK 사용 시작하기
<a name="getting-started"></a>

이 자습서에서는 MSK 클러스터를 생성하고, 데이터를 생산 및 소비하고, 지표를 사용하여 클러스터의 상태를 모니터링하는 방법의 예를 보여줍니다. 이 예제에는 MSK 클러스터를 생성할 때 선택할 수 있는 옵션이 모두 나와 있지는 않습니다. 이 자습서의 다른 부분에서는 간단한 설명을 위해 기본 옵션을 선택합니다. 이 옵션이 MSK 클러스터 또는 클라이언트 인스턴스를 설정하는 데 사용되는 유일한 옵션이라는 의미는 아닙니다.

**Topics**
+ [1단계: MSK Provisioned 클러스터 생성](create-cluster.md)
+ [2단계: Amazon MSK 클러스터에서 주제를 생성할 수 있는 액세스 권한을 부여받는 IAM 역할 생성](create-client-iam-role.md)
+ [3단계: 클라이언트 머신 생성](create-client-machine.md)
+ [4단계: Amazon MSK 클러스터에서 주제 생성](create-topic.md)
+ [5단계: 데이터 생산 및 소비](produce-consume.md)
+ [6단계: Amazon CloudWatch를 사용하여 Amazon MSK 지표 보기](view-metrics.md)
+ [7단계:이 자습서를 위해 생성된 AWS 리소스 삭제](delete-cluster.md)

# 1단계: MSK Provisioned 클러스터 생성
<a name="create-cluster"></a>

[Amazon MSK 사용 시작하기](getting-started.md) 단계에서는 Amazon MSK Provisioned 클러스터를 생성합니다. 에서 **빠른 생성** 옵션을 사용하여이 클러스터 AWS Management Console 를 생성합니다.

**를 사용하여 Amazon MSK 클러스터를 생성하려면 AWS Management Console**를 사용하여 클러스터 생성 AWS Management Console

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) Amazon MSK 콘솔을 엽니다.

1. **클러스터 생성**을 선택합니다.

1. **생성 방법**에서는 **빠른 생성** 옵션을 선택한 상태로 둡니다. **빠른 생성** 옵션을 사용하면 기본 설정으로 클러스터를 생성할 수 있습니다.

1. **클러스터 이름**에 클러스터를 설명하는 이름을 입력합니다. 예를 들어 **MSKTutorialCluster**입니다.

1. **일반 클러스터 속성**에서 다음을 수행합니다.

   1. **클러스터 유형**으로는 **프로비저닝**을 선택합니다.

   1. 브로커에서 실행하려는 **Apache Kafka 버전**을 선택합니다. **버전 호환성 보기**를 선택하여 비교 테이블을 확인합니다.

   1. **브로커 유형**에서 Standard 또는 Express 브로커를 선택합니다.

   1. **브로커 크기**를 선택합니다.

1. 이 자습서의 뒷부분에 필요하므로 **모든 클러스터 설정** 아래의 표에서 다음 설정의 값을 복사하고 저장합니다.
   + VPC
   + 서브넷
   + VPC와 연결된 보안 그룹

1. **클러스터 생성**을 선택합니다.

1. **클러스터 요약** 페이지에서 클러스터 **상태**를 확인합니다. Amazon MSK가 클러스터를 프로비저닝하면 상태가 **생성 중**에서 **활성**으로 변경됩니다. 상태가 **활성**이면 클러스터에 연결할 수 있습니다. 클러스터 상태에 대한 자세한 내용은 [MSK 프로비저닝된 클러스터의 상태 이해](msk-cluster-states.md) 섹션을 참조하세요.

**다음 단계**

[2단계: Amazon MSK 클러스터에서 주제를 생성할 수 있는 액세스 권한을 부여받는 IAM 역할 생성](create-client-iam-role.md)

# 2단계: Amazon MSK 클러스터에서 주제를 생성할 수 있는 액세스 권한을 부여받는 IAM 역할 생성
<a name="create-client-iam-role"></a>

이 단계에서는 두 가지 태스크를 수행합니다. 첫 번째 태스크는 클러스터에서 주제를 생성하고 해당 주제에 데이터를 전송할 수 있는 액세스 권한을 부여하는 IAM 정책을 생성하는 것입니다. 두 번째 태스크는 IAM 역할을 생성하고 해당 정책을 여기에 연결하는 것입니다. 이후 단계에서 이 역할을 맡는 클라이언트 머신을 생성하고 이를 사용하여 클러스터에 주제를 만들고 해당 주제로 데이터를 전송합니다.

**주제를 생성하고 주제에 글을 쓸 수 있는 IAM 정책을 만들려면 다음을 수행합니다.**IAM 정책 생성

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기**에서 **JSON**을 선택한 후 편집기 창의 JSON을 다음 JSON으로 변경합니다.

   다음 예제에서 다음을 변경합니다.
   + 클러스터를 생성한 AWS 리전 의 코드가 있는 *region*.
   + 계정 ID 예: *123456789012*, AWS 계정 ID 포함.
   + *MSKTutorialCluster* 및 *MSKTutorialCluster*/*7d7131e1-25c5-4e9a-9ac5-ea85bee4da11-14*를 클러스터 이름 및 해당 ID로 변경합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kafka-cluster:Connect",
                   "kafka-cluster:AlterCluster",
                   "kafka-cluster:DescribeCluster"
               ],
               "Resource": [
                   "arn:aws:kafka:us-east-1:123456789012:cluster/MSKTutorialCluster/7d7131e1-25c5-4e9a-9ac5-ea85bee4da11-14"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kafka-cluster:*Topic*",
                   "kafka-cluster:WriteData",
                   "kafka-cluster:ReadData"
               ],
               "Resource": [
               "arn:aws:kafka:us-east-1:123456789012:topic/MSKTutorialCluster/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kafka-cluster:AlterGroup",
                   "kafka-cluster:DescribeGroup"
               ],
               "Resource": [
               "arn:aws:kafka:us-east-1:123456789012:group/MSKTutorialCluster/*"
               ]
           }
       ]
   }
   ```

------

   보안 정책을 작성하는 방법에 대한 지침은 [IAM 액세스 제어](iam-access-control.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 다음을 수행합니다.

   1. **정책 이름**에 설명이 포함된 이름을 입력합니다(예: **msk-tutorial-policy**).

   1. **이 정책에 정의된 권한**에서 정책에 정의된 권한을 검토 및/또는 편집합니다.

   1. (선택 사항) 정책을 식별, 구성 또는 검색하는 데 도움이 되도록 **새 태그 추가**를 선택하여 태그를 키-값 페어로 추가합니다. 예를 들어 키-값 페어가 **Environment** 및 **Test**인 태그를 정책에 추가합니다.

      태그 사용에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS Identity and Access Management 리소스 태그를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html).

1. **정책 생성**을 선택합니다.

**IAM 역할을 생성하여 여기에 정책을 연결하려면 다음을 수행합니다.**

1. 탐색 창에서 **역할**을 선택한 후 **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 선택** 페이지에서 다음을 수행합니다.

   1. **신뢰할 수 있는 엔터티 유형**에서 **AWS 서비스**를 선택합니다.

   1. **서비스 또는 사용 사례**에서 **EC2**를 선택합니다.

   1. **사용 사례**에서 **EC2**를 선택합니다.

1. **다음**을 선택합니다.

1. **권한 추가** 페이지에서 다음을 수행합니다.

   1. **권한 정책** 검색 상자에 이 자습서를 위해 이전에 생성한 정책의 이름을 입력합니다. 그런 다음 정책 이름 왼쪽에서 확인란을 선택합니다.

   1. (선택 사항) [권한 경계](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 선택합니다. 이는 서비스 역할에서 사용 가능한 고급 기능이며 서비스에 연결된 역할은 아닙니다. 권한 경계 설정에 대한 자세한 내용은 *IAM 사용 설명서*의 [역할 생성 및 정책 연결(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html)을 참조하세요.

1. **다음**을 선택합니다.

1. **이름, 검토 및 생성** 페이지에서 다음을 수행합니다.

   1. **역할 이름**에 설명이 포함된 이름을 입력합니다(예: **msk-tutorial-role**).
**중요**  
역할 이름을 지정할 때는 다음 사항에 유의하세요.  
역할 이름은 내에서 고유해야 하며 대/소문자를 구분할 AWS 계정수 없습니다.  
예를 들어, 이름이 **PRODROLE**과 **prodrole**, 두 가지로 지정된 역할을 만들지 마세요. 역할 이름이 정책 또는 ARN의 일부로 사용되는 경우 역할 이름은 대소문자를 구분합니다. 그러나 로그인 프로세스와 같이 콘솔에서 역할 이름이 고객에게 표시되는 경우에는 역할 이름이 대소문자를 구분하지 않습니다.
다른 엔터티가 역할을 참조할 수 있기 때문에 역할이 생성된 후에는 역할 이름을 편집할 수 없습니다.

   1. (선택 사항) **설명**에 역할에 대한 설명을 입력합니다.

   1. (선택 사항) 역할에 대한 사용 사례와 권한을 편집하려면 **1단계: 신뢰할 수 있는 엔터티 선택** 또는 **2단계: 권한 추가** 섹션에서 **편집**을 선택합니다.

   1. (선택 사항) 역할을 식별, 구성 또는 검색하는 데 도움이 되도록 **새 태그 추가**를 선택하여 태그를 키-값 페어로 추가합니다. 예를 들어 **ProductManager** 및 **John**의 키-값 페어를 사용하여 역할에 태그를 추가합니다.

      태그 사용에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS Identity and Access Management 리소스 태그를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html).

1. 역할을 검토한 다음 **역할 생성**을 선택합니다.

**다음 단계**

[3단계: 클라이언트 머신 생성](create-client-machine.md)

# 3단계: 클라이언트 머신 생성
<a name="create-client-machine"></a>

[Amazon MSK 사용 시작하기](getting-started.md) 단계에서 클라이언트 머신을 생성합니다. 이 클라이언트 머신을 사용하여 데이터를 생산하고 소비하는 주제를 만듭니다. 간단하게 하기 위해 클라이언트가 클러스터에 간편하게 연결할 수 있도록 MSK 클러스터와 연결된 VPC에 이 클라이언트 머신을 생성합니다.

**클라이언트 머신을 만들려면**클라이언트 머신 생성

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

1. Amazon EC2 콘솔 대시보드에서 **인스턴스 시작**을 선택합니다.

1. (선택 사항) 쉽게 추적할 수 있도록 **이름 및 태그** 아래의 **이름**에 클라이언트 머신에 대한 설명이 포함된 이름을 입력합니다. 예를 들어 **MSKTutorialClient**입니다.

1. **애플리케이션 및 OS 이미지(Amazon Machine Image)**의 **Amazon Machine Image(AMI)(AMI)**에서 **Amazon Linux 2 AMI(HVM) - 커널 5.10, SSD 볼륨 유형**을 선택합니다.

1. **인스턴스 유형**의 경우 기본 선택인 **t2.micro**를 그대로 유지합니다.

1. **키 페어(로그인)**에서 기존 키 페어를 선택하거나 새 키 페어를 생성합니다. 인스턴스에 연결하는 데 키 페어가 필요하지 않은 경우 **키 페어 없이 계속 진행(권장되지 않음)**을 선택할 수 있습니다.

   새 키 페어를 생성하려면 다음 작업을 수행하십시오.

   1. **새 키 페어 생성**을 선택합니다.

   1. **키 페어 이름(Key pair name)**에 **MSKKeyPair**를 입력합니다.

   1. **키 페어 유형** 및 **프라이빗 키 파일 형식**의 경우 기본 선택을 유지합니다.

   1. **키 페어 생성(Create key pair)**를 선택합니다.

   또는 기존 키 페어를 사용할 수 있습니다.

1. 페이지를 아래로 스크롤하여 **고급 세부 정보** 섹션을 확장한 후 다음을 수행합니다.

   1. **IAM 인스턴스 프로파일**에서 클라이언트 머신이 수임할 IAM 역할을 선택합니다.

     IAM 역할이 없는 경우 다음을 수행합니다.

     1. **새 IAM 프로필 생성**을 선택합니다.

     1. [2단계: IAM 역할 생성](create-client-iam-role.md)에 언급된 단계를 수행합니다.

1. **인스턴스 시작**을 선택합니다.

1. **인스턴스 보기**를 선택합니다. 그런 다음 **보안 그룹** 열에서 새 인스턴스와 연결된 보안 그룹을 선택합니다. 보안 그룹의 ID를 복사하여 나중에 사용할 수 있도록 저장합니다.

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **Security Groups**를 선택합니다. [1단계: MSK Provisioned 클러스터 생성](create-cluster.md)에서 ID를 저장한 보안 그룹을 찾습니다.

1. **인바운드 규칙** 탭에서 **인바운드 규칙 편집**을 선택합니다.

1. **규칙 추가**를 선택합니다.

1. 새 규칙의 **유형** 열에서 **모든 트래픽**을 선택합니다. **소스** 열의 두 번째 필드에서 클라이언트 머신의 보안 그룹을 선택합니다. 이 그룹은 클라이언트 머신 인스턴스를 시작한 후 이름을 저장한 그룹입니다.

1. **규칙 저장**을 선택합니다. 이제 클러스터의 보안 그룹은 클라이언트 컴퓨터의 보안 그룹에서 오는 트래픽을 허용할 수 있습니다.

**다음 단계**

[4단계: Amazon MSK 클러스터에서 주제 생성](create-topic.md)

# 4단계: Amazon MSK 클러스터에서 주제 생성
<a name="create-topic"></a>

[Amazon MSK 사용 시작하기](getting-started.md)의이 단계에서는 CreateTopic API와 함께 기본 AWS 도구를 사용하거나 클라이언트 머신에서 Apache Kafka AdminClient 도구를 사용하는 두 가지 방법 중 하나를 사용하여 주제를 생성할 수 있습니다.

**주의**  
CreateTopic API와 함께 AWS 도구를 사용하는 경우 클러스터가 요구 사항을 충족하는지 확인합니다. 자세한 내용은 [주제 APIs](https://docs.aws.amazon.com/msk/latest/developerguide/msk-topic-operations-information.html#topic-operations-requirements).

**주의**  
AdminClient 접근 방식을 사용하는 경우이 자습서에서 사용되는 Apache Kafka 버전 번호는 예시일 뿐입니다. MSK 클러스터 버전과 동일한 버전의 클라이언트를 사용하는 것을 권장합니다. 이전 클라이언트 버전에는 특정 기능 및 중요한 버그 수정이 누락되었을 수 있습니다.

**Topics**
+ [AWS 도구를 사용하여 주제 생성](#create-topic-aws-tools)
+ [MSK 클러스터 버전 확인](#find-msk-cluster-version)
+ [클라이언트 머신에 토픽 생성](#create-topic-client-machine)

## AWS 도구를 사용하여 주제 생성
<a name="create-topic-aws-tools"></a>

 AWS CLI, SDK 또는 AWS Management Console과 같은 AWS 도구를 사용하여 MSK 클러스터에서 주제를 생성할 수 있습니다. AWS SDKs 이 접근 방식은 Kafka 클라이언트 도구에 직접 액세스할 필요 없이 주제를 관리하는 간소화된 방법을 제공합니다.

 AWS 도구를 사용하여 주제를 생성하는 방법에 대한 자세한 내용은 [CreateTopic API 개발자 안내서](https://docs.aws.amazon.com/msk/latest/developerguide/msk-create-topic.html)를 참조하세요.

## MSK 클러스터 버전 확인
<a name="find-msk-cluster-version"></a>

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

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

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

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

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

## 클라이언트 머신에 토픽 생성
<a name="create-topic-client-machine"></a>

1. **클라이언트 머신에 연결합니다.**

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

   1. 탐색 창에서 **인스턴스**를 선택합니다. 그런 다음 [3단계: 클라이언트 머신 생성](create-client-machine.md)에서 생성한 클라이언트 머신 이름 옆의 확인란을 선택합니다.

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

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

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

      ```
      sudo yum -y install java-11
      ```

   1. 다음 명령에서와 같이 환경 변수 `KAFKA_VERSION`에 MSK 클러스터의 [Kafka 버전](#find-msk-cluster-version)을 저장합니다. 이 정보는 설정 전반에 걸쳐 필요합니다.

      ```
      export KAFKA_VERSION={KAFKA VERSION}
      ```

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

      ```
      export KAFKA_VERSION=3.6.0
      ```

1. **Apache Kafka를 다운로드하고 추출합니다.**

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

      ```
      wget https://archive.apache.org/dist/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgz
      ```
**참고**  
다음 목록에는 문제가 발생할 경우 사용할 수 있는 몇 가지 대체 Kafka 다운로드 정보가 나와 있습니다.  
연결 문제가 발생하거나 미러 사이트를 사용하려는 경우 다음 명령에서와 같이 Apache 미러 선택기를 사용해 보세요.  

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

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

      ```
      tar -xzf kafka_2.13-$KAFKA_VERSION.tgz
      ```

   1. 새로 생성된 디렉터리의 전체 경로를 `KAFKA_ROOT` 환경 변수 내에 저장합니다.

      ```
      export KAFKA_ROOT=$(pwd)/kafka_2.13-$KAFKA_VERSION
      ```

1. **MSK 클러스터에 대한 인증을 설정합니다.**

   1. Amazon MSK IAM 클라이언트 라이브러리의 [최신 버전을 찾습니다](https://github.com/aws/aws-msk-iam-auth/releases/latest). 이 라이브러리를 사용하면 클라이언트 머신이 IAM 인증을 사용하여 MSK 클러스터에 액세스할 수 있습니다.

   1. 다음 명령을 통해 `$KAFKA_ROOT/libs` 디렉터리로 이동하여 이전 단계에서 찾은 관련 Amazon MSK IAM JAR을 다운로드합니다. *\$1LATEST VERSION\$1*을 다운로드하는 실제 버전 번호로 바꿔야 합니다.

      ```
      cd $KAFKA_ROOT/libs
      ```

      ```
      wget https://github.com/aws/aws-msk-iam-auth/releases/latest/download/aws-msk-iam-auth-{LATEST VERSION}-all.jar
      ```
**참고**  
MSK 클러스터와 상호 작용하는 Kafka 명령을 실행하기 전에 Java 클래스 경로에 Amazon MSK IAM JAR 파일을 추가해야 할 수 있습니다. 다음 예제에 표시된 대로 `CLASSPATH` 환경 변수를 설정합니다.  

      ```
      export CLASSPATH=$KAFKA_ROOT/libs/aws-msk-iam-auth-{LATEST VERSION}-all.jar
      ```
이를 통해 전체 세션에 대해 `CLASSPATH`가 설정되므로 모든 후속 Kafka 명령에서 JAR을 사용할 수 있습니다.

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

      ```
      cd $KAFKA_ROOT/config
      ```

   1. 다음 속성 설정을 복사하여 새 파일에 붙여넣습니다. 파일을 **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
      ```

1. **(선택 사항) Kafka 도구의 Java 힙 크기를 조정합니다. ** 

   메모리 관련 문제가 발생하거나 많은 수의 토픽 또는 파티션으로 작업하는 경우 Java 힙 크기를 조정할 수 있습니다. 이를 수행하려면 Kafka 명령을 실행하기 전에 `KAFKA_HEAP_OPTS` 환경 변수를 설정합니다.

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

   ```
   export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"
   ```

1. **클러스터 연결 정보를 가져옵니다.**

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

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

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

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

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

      ```
      export BOOTSTRAP_SERVER=<bootstrap-server-string>
      ```

1. **다음 명령을 실행하여 토픽을 생성합니다.**

   ```
   $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
   ```

1. **(선택 사항) 토픽이 성공적으로 생성되었는지 확인합니다.**

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

   1. 모든 토픽을 나열하여 토픽이 존재하는지 확인합니다.

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

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

1. **(선택 사항) 이 자습서에서 사용한 환경 변수를 삭제합니다.**

   이 자습서의 다음 단계를 위해 환경 변수를 유지하려면 이 단계를 건너뜁니다. 아니면 다음 예제에서와 같이 이러한 변수를 설정 해제할 수 있습니다.

   ```
   unset KAFKA_VERSION KAFKA_ROOT BOOTSTRAP_SERVER CLASSPATH KAFKA_HEAP_OPTS
   ```

**다음 단계**

[5단계: 데이터 생산 및 소비](produce-consume.md)

# 5단계: 데이터 생산 및 소비
<a name="produce-consume"></a>

[Amazon MSK 사용 시작하기](getting-started.md) 단계에서 데이터를 생성하고 소비합니다.

**메시지를 생산하고 소비하려면**메시지 프로덕션 및 컨슘

1. 콘솔 생산자를 시작하려면 다음 명령을 실행합니다.

   ```
   $KAFKA_ROOT/bin/kafka-console-producer.sh --broker-list $BOOTSTRAP_SERVER --producer.config $KAFKA_ROOT/config/client.properties --topic MSKTutorialTopic
   ```

1. 원하는 메시지를 입력하고 **Enter**키를 누릅니다. 이 단계를 두 번 또는 세 번 반복하십시오. 한 줄을 입력하고 **Enter**를 누를 때마다, 그 줄은 Apache Kafka 클러스터에 별도의 메시지로 전송됩니다.

1. 클라이언트 머신에 대한 연결을 열어 둔 다음, 새 창에서 해당 머신에 대한 별도의 두 번째 연결을 엽니다. 이 세션은 새로운 세션이므로 `KAFKA_ROOT` 및 `BOOTSTRAP_SERVER` 환경 변수를 다시 설정합니다. 이러한 환경 변수를 설정하는 방법에 대한 자세한 내용은 [클라이언트 머신에 토픽 생성](create-topic.md#create-topic-client-machine) 섹션을 참조하세요.

1. 클라이언트 머신에 대한 두 번째 연결 스트링을 통해 다음 명령을 실행하여 콘솔 컨슈머를 생성합니다.

   ```
   $KAFKA_ROOT/bin/kafka-console-consumer.sh --bootstrap-server $BOOTSTRAP_SERVER --consumer.config $KAFKA_ROOT/config/client.properties --topic MSKTutorialTopic --from-beginning
   ```

   콘솔 프로듀서 명령을 사용할 때 앞에서 입력한 메시지가 표시됩니다.

1. 생산자 창에 메시지를 더 입력하고 소비자 창에 메시지가 표시되는지 확인합니다.

**다음 단계**

[6단계: Amazon CloudWatch를 사용하여 Amazon MSK 지표 보기](view-metrics.md)

# 6단계: Amazon CloudWatch를 사용하여 Amazon MSK 지표 보기
<a name="view-metrics"></a>

[Amazon MSK 사용 시작하기](getting-started.md) 단계에서는 Amazon CloudWatch에서 Amazon MSK 지표를 살펴봅니다.

**CloudWatch에서 Amazon MSK 지표를 보려면 다음을 수행합니다.**CloudWatch에서 지표 보기

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 탐색 창에서 **지표**를 선택합니다.

1. **모든 지표** 탭을 선택한 다음 **AWS/Kafka**를 선택합니다.

1. 브로커 수준 지표를 보려면 **Broker ID, Cluster Name(브로커 ID, 클러스터 이름)**을 선택합니다. 클러스터 수준 지표의 경우 **클러스터 이름**을 선택합니다.

1. (선택 사항) 그래프 창에서 통계와 기간을 선택한 후 해당 설정을 사용하여 CloudWatch 경보를 생성합니다.

**다음 단계**

[7단계:이 자습서를 위해 생성된 AWS 리소스 삭제](delete-cluster.md)

# 7단계:이 자습서를 위해 생성된 AWS 리소스 삭제
<a name="delete-cluster"></a>

[Amazon MSK 사용 시작하기](getting-started.md)의 마지막 단계에서는 이 자습서를 위해 생성한 MSK 클러스터와 클라이언트 머신을 삭제합니다.

**를 사용하여 리소스를 삭제하려면 AWS Management Console**를 사용하여 리소스 삭제 AWS Management Console

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

1. 클러스터 이름을 선택합니다. **MSKTutorialCluster**를 예로 들 수 있습니다.

1. **실행**을 선택하고 **삭제**를 선택합니다.

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

1. 클라이언트 머신용으로 생성한 인스턴스(예: **MSKTutorialClient**)를 선택합니다.

1. **인스턴스 상태**를 선택한 다음 **인스턴스 종료**를 선택합니다.

**IAM 정책 및 역할을 삭제하려면**IAM 정책 및 역할 삭제

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. 검색 상자에 이 자습서를 위해 생성한 IAM 역할의 이름을 입력합니다.

1.  역할을 선택합니다. 그런 다음 **역할 삭제**를 선택하고 삭제를 확인합니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. 검색 상자에 이 자습서를 위해 생성한 정책의 이름을 입력합니다.

1. 정책을 선택하면 해당 요약 페이지가 열립니다. 정책의 **요약** 페이지에서 **정책 삭제**를 선택합니다.

1. **삭제**를 선택합니다.