Amazon MSK 클러스터 생성 - Amazon Managed Streaming for Apache Kafka

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

Amazon MSK 클러스터 생성

중요

클러스터를 생성한 후에는 Amazon MSK 클러스터의 VPC를 변경할 수 없습니다.

Amazon MSK 클러스터를 생성하기 전에 Amazon Virtual Private Cloud (VPC)가 있고 해당 VPC 내에 서브넷을 설정해야 합니다.

미국 서부(캘리포니아 북부) 리전의 서로 다른 두 가용 영역에 두 개의 서브넷이 필요합니다. Amazon MSK를 사용할 수 있는 다른 모든 리전에서는 2개 또는 3개의 서브넷을 지정할 수 있습니다. 모든 서브넷은 서로 다른 가용 영역에 있어야 합니다. 클러스터를 생성하면 Amazon MSK는 지정한 서브넷에 브로커 노드를 균등하게 분배합니다.

브로커 유형

Amazon MSK 클러스터를 생성하는 경우 클러스터에 포함할 브로커 유형을 지정합니다. Amazon MSK에서 지원하는 브로커 유형은 다음과 같습니다.

  • kafka.t3.small

  • kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.8xlarge, kafka.m5.12xlarge, kafka.m5.16xlarge, kafka.m5.24xlarge

  • kafka.m7g.large, kafka.m7g.xlarge, kafka.m7g.2xlarge, kafka.m7g.4xlarge, kafka.m7g.8xlarge, kafka.m7g.16g.16llarge

M7g 브로커는 AWS 그라비톤 프로세서 (Amazon Web Services에서 구축한 사용자 지정 ARM 기반 프로세서) 를 사용합니다. M7g 브로커는 동급 M5 인스턴스에 비해 가격 대비 성능이 개선되었습니다. M7g 브로커는 동급 M5 인스턴스보다 전력 소비량이 적습니다. MSK는 다음 Kafka 버전 중 하나를 실행하는 클러스터에서 M7g 브로커를 지원합니다.

  • 2.8.2. 계층형

  • 3.3.2

  • 3.4.0

  • 3.5.1

  • 3.6.0 (계층형 스토리지 포함)

M7G 및 M5 브로커는 T3 브로커보다 기준 처리량 성능이 더 높으며 프로덕션 워크로드에 권장됩니다. 또한 M7G 및 M5 브로커는 T3 브로커보다 브로커당 더 많은 파티션을 가질 수 있습니다. 대규모 프로덕션 등급 워크로드를 실행하거나 더 많은 수의 파티션이 필요한 경우 M7G 또는 M5 브로커를 사용하십시오. M7g 및 M5 인스턴스 유형에 대한 자세한 내용은 Amazon EC2 범용 인스턴스를 참조하십시오.

T3 브로커는 CPU 크레딧을 사용하여 성능을 일시적으로 버스트할 수 있습니다. 저비용 개발의 경우, 중소 규모의 스트리밍 워크로드를 테스트 중인 경우 또는 처리량이 일시적으로 급증하는 낮은 처리량 스트리밍 워크로드가 있는 경우 T3 브로커를 사용하십시오. proof-of-concept 테스트를 실행하여 T3 브로커가 프로덕션 또는 중요 워크로드에 충분한지 확인하는 것이 좋습니다. T3 인스턴스 유형에 대해 자세히 알아보려면 Amazon EC2T3 인스턴스를 참조하세요.

브로커 유형을 선택하는 방법에 대한 자세한 내용은 모범 사례 섹션을 참조하세요.

를 사용하여 클러스터 생성 AWS Management Console

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

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

  3. 클러스터의 이름을 지정합니다.

  4. VPC 목록에서 클러스터에 사용할 VPC를 선택합니다. 클러스터를 생성하는 데 사용할 Amazon MSK의 Apache Kafka 버전을 지정할 수도 있습니다. 콘솔에 표시되는 기본 버전은 2.8.1이며 권장 버전입니다.

  5. 미국 서부(캘리포니아 북부) 리전을 사용하는 경우 2개의 서브넷을 지정합니다. Amazon MSK를 사용할 수 있는 다른 리전에서는 2개 또는 3개의 서브넷을 지정할 수 있습니다. 지정하는 서브넷은 서로 다른 가용 영역에 있어야 합니다.

  6. 원하는 구성의 종류를 선택합니다. Amazon MSK 구성에 대한 자세한 내용은 Amazon MSK 구성 섹션을 참조하세요.

  7. MSK가 각 가용 영역에 생성할 브로커의 유형과 수를 지정합니다. 최소는 가용 영역당 브로커 1개, 최대는 클러스터당 브로커 30개입니다.

  8. (선택 사항) 클러스터에 태그를 할당합니다. 태그는 선택 사항입니다. 자세한 정보는 Amazon MSK 클러스터에 태그 지정을 참조하세요.

  9. 각 브로커의 스토리지 볼륨을 조정할 수 있습니다. 클러스터를 만든 후 각 브로커의 스토리지 볼륨을 늘릴 수 있지만 줄일 수는 없습니다.

  10. 전송 중 데이터의 암호화에 적용할 설정을 선택합니다. 기본적으로 Amazon MSK는 클러스터 내의 브로커 간에 전송되는 데이터를 암호화합니다. 브로커 사이에 전송되는 데이터를 암호화하지 않으려면 Enable encryption within the cluster(클러스터 내에서 암호화 활성화) 확인란의 선택을 취소합니다.

  11. 클라이언트와 브로커 간 전송되는 데이터의 암호화에 적용할 수 있는 세 가지 설정 중 하나를 선택합니다. 자세한 정보는 전송 중 암호화을 참조하세요.

  12. 저장 데이터를 암호화하는 데 사용할 KMS 키의 종류를 선택합니다. 자세한 정보는 저장 중 암호화을 참조하세요.

  13. 클라이언트의 자격 증명을 인증하려면 옆에 있는 상자를 선택하여 TLS 클라이언트 인증 활성화를 선택합니다. 인증에 대한 자세한 내용은 상호 TLS 인증 섹션을 참조하십시오.

  14. 원하는 모니터링 수준을 선택합니다. 이 설정에 따라 얻게 되는 지표 집합이 결정됩니다. 자세한 정보는 Amazon MSK 클러스터 모니터링을 참조하세요.

  15. (선택 사항) 고급 설정을 선택한 다음 설정 사용자 지정을 선택합니다. 클러스터 액세스 권한을 부여하려는 하나 이상의 보안 그룹(예: 클라이언트 머신의 보안 그룹)을 지정할 수 있습니다. 사용자와 공유된 보안 그룹을 지정할 경우 사용자가 해당 보안 그룹에 대한 권한이 있어야 합니다. 특히, ec2:DescribeSecurityGroups 권한이 필요합니다. 예제는 Amazon EC2: 특정 VPC와 연결된 Amazon EC2 보안 그룹을 콘솔에서 프로그래밍 방식으로 관리할 수 있도록 허용을 참조하세요.

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

  17. 클러스터 요약 페이지에서 클러스터 상태를 확인합니다. Amazon MSK가 클러스터를 프로비저닝하면 상태가 생성 중에서 활성으로 변경됩니다. 상태가 활성이면 클러스터에 연결할 수 있습니다. 클러스터 상태에 대한 자세한 내용은 클러스터 상태 섹션을 참조하세요.

를 사용하여 클러스터 생성 AWS CLI

  1. 다음 JSON을 복사하여 파일에 저장합니다. 파일 이름을 brokernodegroupinfo.json로 지정합니다. JSON의 서브넷 ID를 서브넷에 해당하는 값으로 바꿉니다. 이러한 서브넷은 서로 다른 가용 영역에 있어야 합니다. "Security-Group-ID"를 클라이언트 VPC의 하나 이상의 보안 그룹 ID로 바꿉니다. 이 보안 그룹과 연결된 클라이언트는 클러스터에 액세스할 수 있습니다. 사용자와 공유된 보안 그룹을 지정할 경우 사용자가 해당 보안 그룹에 대한 권한이 있어야 합니다. 특히, ec2:DescribeSecurityGroups 권한이 필요합니다. 예제는 Amazon EC2: 특정 VPC와 연결된 Amazon EC2 보안 그룹을 콘솔에서 프로그래밍 방식으로 관리할 수 있도록 허용을 참조하세요. 마지막으로 업데이트된 JSON 파일을 AWS CLI 설치한 컴퓨터에 저장합니다.

    { "InstanceType": "kafka.m5.large", "ClientSubnets": [ "Subnet-1-ID", "Subnet-2-ID" ], "SecurityGroups": [ "Security-Group-ID" ] }
    중요

    미국 서부(캘리포니아 북부) 리전을 사용하는 경우 정확히 두 개의 서브넷을 지정합니다. Amazon MSK를 사용할 수 있는 다른 리전의 경우, 두 개 또는 세 개의 서브넷을 지정할 수 있습니다. 지정하는 서브넷은 별개의 가용 영역에 있어야 합니다. 클러스터를 생성할 때 Amazon MSK는 사용자가 지정한 서브넷에 브로커 노드를 고르게 배포합니다.

  2. brokernodegroupinfo.json파일을 저장한 디렉터리에서 다음 AWS CLI 명령을 실행하고 “Your-Cluster-Name”을 원하는 이름으로 바꿉니다. "Monitoring-Level"에 대해 DEFAULT, PER_BROKER 또는 PER_TOPIC_PER_BROKER, 세 값 중 하나를 지정할 수 있습니다. 이러한 세 가지 모니터링 수준에 대한 자세한 내용은 Amazon MSK 클러스터 모니터링 단원을 참조하십시오. enhanced-monitoring 파라미터는 선택 항목입니다. create-cluster 명령에서 지정하지 않으면 DEFAULT 모니터링 수준이 적용됩니다.

    aws kafka create-cluster --cluster-name "Your-Cluster-Name" --broker-node-group-info file://brokernodegroupinfo.json --kafka-version "2.8.1" --number-of-broker-nodes 3 --enhanced-monitoring "Monitoring-Level"

    명령의 출력은 다음 JSON과 같습니다.

    { "ClusterArn": "...", "ClusterName": "AWSKafkaTutorialCluster", "State": "CREATING" }
    참고

    create-cluster 명령은 하나 이상의 서브넷이 지원되지 않는 가용 영역에 속한다는 오류를 반환할 수 있습니다. 이 경우 오류는 어떤 가용 영역이 지원되지 않는지 표시합니다. 지원되지 않는 가용 영역을 사용하지 않는 서브넷을 만들고, create-cluster 명령을 다시 시도합니다.

  3. 클러스터에서 다른 작업을 수행하는 데 필요하므로 ClusterArn 키 값을 저장합니다.

  4. 다음 명령을 실행하여 STATE 클러스터를 확인합니다. STATE 값은 Amazon MSK가 클러스터를 프로비저닝함에 따라 CREATING에서 ACTIVE으로 변경됩니다. 상태가 ACTIVE이면 클러스터에 연결할 수 있습니다. 클러스터 상태에 대한 자세한 내용은 클러스터 상태 섹션을 참조하세요.

    aws kafka describe-cluster --cluster-arn <your-cluster-ARN>

를 사용하여 사용자 지정 Amazon MSK 구성으로 클러스터 생성 AWS CLI

사용자 지정 Amazon MSK 구성 및 생성 방법에 대한 자세한 내용은 Amazon MSK 구성 섹션을 참조하세요.

  1. 다음 JSON을 파일에 저장하고 configuration-arn을 클러스터를 생성하는 데 사용할 구성의 ARN으로 바꿉니다.

    { "Arn": configuration-arn, "Revision": 1 }
  2. create-cluster 명령을 실행하고 configuration-info 옵션을 사용하여 이전 단계에 저장한 JSON 파일을 가리킵니다. 다음은 예입니다.

    aws kafka create-cluster --cluster-name ExampleClusterName --broker-node-group-info file://brokernodegroupinfo.json --kafka-version "2.8.1" --number-of-broker-nodes 3 --enhanced-monitoring PER_TOPIC_PER_BROKER --configuration-info file://configuration.json

    다음은 이 명령을 실행한 후 성공적인 응답의 예입니다.

    { "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/CustomConfigExampleCluster/abcd1234-abcd-dcba-4321-a1b2abcd9f9f-2", "ClusterName": "CustomConfigExampleCluster", "State": "CREATING" }

API를 사용하여 클러스터 생성

API를 사용하여 클러스터를 생성하려면 을 참조하십시오 CreateCluster.