Amazon Managed Streaming for Apache Kafka (Amazon MSK)
Amazon MSK (Managed Streaming for Apache Kafka) 는 Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션을 빌드하고 실행할 수 있는 완전관리형 서비스입니다.

 

Amazon MSK란?

Amazon MSK (Managed Streaming for Apache Kafka) 는 Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션을 빌드하고 실행할 수 있는 완전관리형 서비스입니다. Amazon MSK는 클러스터 생성, 업데이트 및 삭제 등에 필요한 작업을 제공합니다.

데이터 생성 및 소비와 같은 Apache Kafka 데이터 영역 작업을 사용할 수 있습니다. Apache Kafka의 오픈 소스 버전을 실행합니다. 즉, 파트너와 Apache Kafka 커뮤니티의 기존 애플리케이션, 도구 및 플러그인이 지원되므로 애플리케이션 코드를 변경할 필요가 없습니다. Amazon MSK를 사용하면 Apache Kafka 를 사용하는 클러스터를 생성할 수 있습니다.

다음 다이어그램은 Amazon MSK의 작동 방식에 대한 개요입니다.

다이어그램은 다음 구성 요소 간의 상호 작용을 보여 줍니다.

  • 브로커 노드— Amazon MSK 클러스터를 생성할 때 Amazon MSK가 각 가용 영역에 생성할 브로커 노드 수를 지정합니다. 이 다이어그램에 표시된 예제 클러스터에는 가용 영역당 하나의 브로커가 있습니다. 각 가용 영역에는 고유한 virtual private cloud(VPC) 서브넷이 있습니다.
  • ZooKeeper 노드— Amazon MSK는 Apache ZooKeeper 노드도 만듭니다. Apache ZooKeeper는 안정성이 뛰어난 분산 조정을 지원하는 오픈 소스 서버입니다.
  • 생산자, 소비자 및 주제— Amazon MSK를 사용하면 Apache Kafka topic을 만들고, 데이터를 생산하고 소비할 수 있습니다.
  • 클러스터 작업은 다음을 수행할 수 있습니다.AWS Management Console,AWS Command Line Interface(AWS CLI) 또는 SDK의 API를 사용하여 제어 영역 작업을 수행할 수 있습니다. 예를 들어 Amazon MSK 클러스터를 만들거나 삭제하고, 계정의 모든 클러스터를 나열하고, 클러스터의 속성을 보고, 클러스터의 브로커 수와 유형을 업데이트할 수 있습니다.

Amazon MSK는 클러스터에 대한 가장 일반적인 결함 시나리오를 감지하고 자동으로 복구하므로 생산자와 소비자 애플리케이션이 최소한의 영향을 받으면서 쓰기 및 읽기 작업을 계속할 수 있습니다. Amazon MSK가 브로커 결함을 감지하면 해당 결함을 완화하거나 비정상적 또는 연결할 수 없는 브로커를 새 브로커로 바꿉니다. 또한 가능한 경우 이전 브로커의 스토리지를 재사용하여 Apache Kafka가 복제해야 하는 데이터를 줄입니다. 가용성에 미치는 영향은 Amazon MSK가 감지 및 복구를 완료하는 소요되는 시간입니다.복구 후 생산자와 소비자 앱은 결함 이전에 사용한 것과 동일한 브로커 IP 주소와 계속 통신할 수 있습니다.

 

 

- 전제사항
VPC
3개의 subnet --> 2개 subnet
 

 

 

 

 

3단계: Amazon MSK 클러스터

 

 

AWS 콘솔 검색창에 msk를 입력하면 아래 화면과 같이 MSK 서비스가 조회되는데, MSK를 클릭합니다.

 

MSK 시작화면이 나오면 "Create cluster" 버튼을 클릭합니다.

 

1번째

 

 

 

2번째

3번째

 

Step 2

 

 

 

OR

 

 

Step 4 : Monitoring and tags

 

 

 

 

 

  • Step 5
    Review and create

 

client 정보 확인

 

4단계: 클라이언트 머신 만들기

이 단계에서는Amazon MSK 사용 시작하기클라이언트 머신을 생성합니다. 이 클라이언트 머신을 사용하여 데이터를 생산하고 소비하는 주제를 만듭니다. 단순하게 설명하기 위해 이 클라이언트 머신을 Amazon MSK 클러스터와 동일한 VPC 배치합니다. 그러나 클라이언트 머신이 클러스터와 동일한 VPC에 있을 필요는 없습니다.

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

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
  2. 인스턴스 시작(Launch Instance)을 선택합니다.
  3. 선택을 선택하여 Amazon Linux 2 AMI(HVM), SSD 볼륨 유형의 인스턴스를 생성합니다.
  4. 옆에 있는 확인란을 선택하여 t2.xlarge 인스턴스 유형을 선택합니다.
  5. [다음: 권한(Next: 인스턴스 세부 정보 구성.
  6. 네트워크 목록에서 AWSKafkaTutorialVPC를 선택합니다.
  7. 자동 할당 퍼블릭 IP 목록에서 활성화를 선택합니다.
  8. 상단 근처의 메뉴에서 선택합니다.5. 태그 추가.
  9. [Add Tag]를 선택합니다.
  10. EnterName의 경우Key과AWSKafkaTutorialClient의 경우.
  11. [Review and Launch]를 선택한 다음 [Launch]를 선택합니다.
  12. 선택새 key pair 생성를 입력합니다.MSKKeyPair...에 대한Key pair name를 선택한 다음 를 선택합니다.키 페어 다운로드. 또는 기존 키 페어를 사용할 수 있습니다.
  13. 약관을 읽고 옆에 있는 확인란을 선택한 다음 인스턴스 시작을 선택합니다.
  14. 인스턴스 보기를 선택합니다. 그런 다음 보안 그룹 열에서 AWSKafkaTutorialClient 인스턴스와 연결된 보안 그룹을 선택합니다.
  15. 보안 그룹과 연결된 그룹 ID(그룹 이름이 아님) 값을 복사한 후 나중을 위해 저장합니다.
  16. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.
  17. 탐색 창에서 [Security Groups]를 선택합니다. 에서VPC ID보안 그룹의 열에서 저장한 ID가 포함된 행을 찾습니다.AWS카투토리얼VPC, 그리고 어디에설명열에 값이 있음기본 VPC 보안 그룹. 첫 번째 열의 확인란을 선택하여 이 행을 선택합니다.
  18. 에서인바운드 규칙탭에서 선택을 선택합니다.인바운드 규칙 편집.
  19. Add Rule을 선택합니다.
  20. 새 규칙에서모든 트래픽유형열. 소스 열의 두 번째 필드에 클라이언트 머신의 보안 그룹 ID를 입력합니다. 앞서 저장한 그룹 ID입니다.
  21. 규칙 저장을 선택합니다

 

5단계: 주제 생성

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

클라이언트 머신에 주제를 생성하려면

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 인스턴스를 선택한 다음 옆에 있는 확인란을 선택하여 AWSKafkaTutorialClient를 선택합니다.
  3. 작업을 선택하고 연결을 선택합니다. 지침에 따라 클라이언트 머신 AWSKafkaTutorialClient에 연결합니다.
  4. 다음 명령을 실행하여 클라이언트 머신에 Java를 설치합니다.
  5.  
    sudo yum install java-1.8.0
  6. Apache Kafka를 다운로드하려면 다음 명령을 실행합니다.
    참고

    이 명령에 사용된 사이트 이외의 미러 사이트를 사용하려면 Apache 웹사이트에서 다른 것을 선택할 수 있습니다.

  7.  
    wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz
  8. 이전 단계에 TAR 파일을 다운로드한 디렉토리에서 다음 명령을 실행합니다.
  9.  
    tar -xzf kafka_2.12-2.2.1.tgz
  10. kafka_2.12-2.2.1 디렉터리로 이동하십시오.
  11. 클러스터 생성에는 몇 분 정도 걸릴 수 있습니다. 생성한 클러스터가 준비되었는지 확인하려면 다음 명령을 실행하여 대체합니다.ClusterArn의 끝에서 얻은 Amazon 리소스 이름 (ARN) 사용3단계: Amazon MSK 클러스터.이 명령을 실행한 결과는 다음 JSON과 같습니다.명령의 출력에 클러스터의 상태가 아직 CREATING으로 표시되면 몇 분 정도 기다린 다음 명령을 다시 실행합니다. 상태가 ACTIVE가 될 때까지 몇 분마다 이 명령을 계속 실행하십시오. 상태가 ACTIVE인 경우 이 describe-cluster 명령의 결과에는 ZookeeperConnectString 추가 키가 포함됩니다. 다음 명령에 Apache Kafka 주제를 만들 때 필요하므로 이 키와 연결된 전체 값을 복사합니다.
  12.  
    { "ClusterInfo": { "BrokerNodeGroupInfo": { "BrokerAZDistribution": "DEFAULT", "ClientSubnets": [ "subnet-0d44a1567c2ce409a", "subnet-051201cac65561565", "subnet-08b4eceb2bd3bd8c2" ], "InstanceType": "kafka.m5.large", "SecurityGroups": [ "sg-041e78b0a8ba7f834" ], "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 1000 } } }, "ClusterArn": "...", "ClusterName": "AWSKafkaTutorialCluster", "CreationTime": "2018-11-06T01:36:57.451Z", "CurrentBrokerSoftwareInfo": { "KafkaVersion": "2.2.1" }, "CurrentVersion": "K3UN6WX5RRO2AG", "EncryptionInfo": { "EncryptionAtRest": { "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:012345678901:key/a7de6539-7d2e-4e71-a279-aaaa5555878" } }, "EnhancedMonitoring": "DEFAULT", "NumberOfBrokerNodes": 3, "State": "CREATING" } }
  13.  
    aws kafka describe-cluster --region us-east-1 --cluster-arn "ClusterArn"
  14. 다음 명령을 실행하여 ZookeeperConnectString을 describe-cluster 명령 실행 후 저장한 값으로 바꿉니다.명령이 성공하면 Created topic AWSKafkaTutorialTopic. 메시지가 표시됩니다.
  15.  
    bin/kafka-topics.sh --create --zookeeper ZookeeperConnectString --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic

다음 단계

'Apache Kafka' 카테고리의 다른 글

ksql - 아파치 카프카 용어 - 수정  (0) 2022.01.13
카프카 Connect  (0) 2022.01.12
주키퍼 CLI  (0) 2022.01.09
아파치 주키퍼 설치 및 실행  (0) 2022.01.09
주키퍼 Cluster 구성  (0) 2022.01.08

+ Recent posts