스토리지 처리량 프로비저닝 - Amazon Managed Streaming for Apache Kafka

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

스토리지 처리량 프로비저닝

Amazon MSK 브로커는 스토리지 볼륨에 데이터를 유지합니다. 스토리지 I/O는 생산자가 클러스터에 쓸 때, 브로커 간에 데이터가 복제될 때와 소비자가 메모리에 없는 데이터를 읽을 때 소비됩니다. 볼륨 스토리지 처리량은 스토리지 볼륨에 데이터를 쓰고 읽을 수 있는 속도입니다. 프로비저닝된 스토리지 처리량은 클러스터의 브로커에 대해 해당 속도를 지정할 수 있는 기능입니다.

브로커가 유형 kafka.m5.4xlarge 이상이고 스토리지 볼륨이 10GiB 이상인 클러스터의 경우 프로비저닝된 처리 속도를 초당 MiB 단위로 지정할 수 있습니다. 클러스터를 생성하는 중에 프로비저닝된 처리량을 지정할 수 있습니다. 또한 ACTIVE 상태인 클러스터에 대해 프로비저닝된 처리량을 활성화하거나 비활성화할 수 있습니다.

처리량 병목 현상

브로커 처리량의 병목 현상의 원인으로는 볼륨 처리량, Amazon EC2에서 Amazon EBS로의 네트워크 처리량, Amazon EC2 송신 처리량 등이 있습니다. 프로비저닝된 스토리지 처리량을 활성화하여 볼륨 처리량을 조정할 수 있습니다. 그러나 Amazon EC2에서 Amazon EBS로의 네트워크 처리량과 Amazon EC2 송신 처리량으로 인해 브로커 처리량 제한이 발생할 수 있습니다.

Amazon EC2 송신 처리량은 소비자 그룹 및 소비자 그룹당 소비자 수에 영향을 받습니다. 또한 Amazon EC2에서 Amazon EBS로의 네트워크 처리량과 Amazon EC2 송신 처리량 모두 더 큰 브로커 유형에서 더 높습니다.

볼륨 크기가 10GiB 이상인 경우에는 초당 250MiB 이상의 스토리지 처리량을 프로비저닝할 수 있습니다. 기본값은 초당 250MiB입니다. 스토리지 처리량을 프로비저닝하려면 브로커 유형을 kafka.m5.4xlarge 이상 (또는 kafka.m7g.2xlarge 이상) 을 선택해야 하며, 다음 표와 같이 최대 처리량을 지정할 수 있습니다.

브로커 유형 최대 스토리지 처리량(MiB/초)
kafka.m5.4xlarge 593
kafka.m5.8xlarge 850
kafka.m5.12xlarge 1000
kafka.m5.16xlarge 1000
kafka.m5.24xlarge 1000
kafka.m7g.2xLarge 312.5
카프카.m7g.4 x 라지 625
kafka.m7g.8 x 라지 1000
kafka.m7g.12 x 라지 1000
kafka.m7g.16 x 라지 1000

스토리지 처리량 측정

VolumeReadBytesVolumeWriteBytes 지표를 사용하여 클러스터의 평균 스토리지 처리량을 측정할 수 있습니다. 이 두 지표의 합계는 평균 스토리지 처리량(바이트)을 나타냅니다. 클러스터의 평균 스토리지 처리량을 얻으려면 이 두 지표를 합계로 설정하고 기간을 1분으로 설정한 후 다음 공식을 사용합니다.

Average storage throughput in MiB/s = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / (60 * 1024 * 1024)

VolumeReadBytesVolumeWriteBytes 지표에 대한 자세한 내용은 PER_BROKER 수준 모니터링 섹션을 참조하세요.

구성 업데이트

프로비저닝된 처리량을 활성화하기 전이나 활성화한 후에 Amazon MSK 구성을 업데이트할 수 있습니다. 그러나 num.replica.fetchers 구성 파라미터를 업데이트하고 프로비저닝된 처리량을 활성화하는 두 가지 작업을 모두 수행할 때까지는 원하는 처리량을 볼 수 없습니다.

기본 Amazon MSK 구성에서 num.replica.fetchers 값은 2입니다. num.replica.fetchers를 업데이트하기 위해 다음 표의 제안된 값을 사용할 수 있습니다. 이 값은 지침을 위한 것입니다. 사용 사례에 따라 이 값을 조정하는 것을 권장합니다.

브로커 유형 num.replica.fetchers
kafka.m5.4xlarge 4
kafka.m5.8xlarge 8
kafka.m5.12xlarge 14
kafka.m5.16xlarge 16
kafka.m5.24xlarge 16

업데이트된 구성은 최대 24시간 동안 적용되지 않을 수 있으며 소스 볼륨이 완전히 사용되지 않을 경우 더 오래 걸릴 수 있습니다. 그러나 마이그레이션 기간 동안 마이그레이션 볼륨 성능은 최소한 소스 스토리지 볼륨의 성능과 동일합니다. 완전히 활용되는 1TiB 볼륨을 업데이트된 구성으로 마이그레이션하는 데는 일반적으로 약 6시간이 소요됩니다.

를 사용하여 스토리지 처리량을 프로비저닝합니다. AWS Management Console

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

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

  3. 사용자 지정 생성을 선택합니다.

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

  5. 스토리지 섹션에서 활성화를 선택합니다.

  6. 브로커당 스토리지 처리량에 대한 값을 선택합니다.

  7. VPC, 영역 및 서브넷, 보안 그룹을 선택합니다.

  8. 다음을 선택합니다.

  9. 보안 단계 아래에서 다음을 선택합니다.

  10. 모니터링 및 태그 단계 아래에서 다음을 선택합니다.

  11. 클러스터 설정을 검토한 다음 클러스터 생성을 선택합니다.

를 사용하여 스토리지 처리량을 프로비저닝합니다. AWS CLI

이 섹션에서는 를 사용하여 프로비저닝된 처리량이 AWS CLI 활성화된 클러스터를 생성하는 방법의 예를 보여줍니다.

  1. 다음 JSON을 복사하여 파일에 붙여넣습니다. 서브넷 ID 및 보안 그룹 ID 자리 표시자를 계정의 값으로 변경합니다. 파일 이름을 cluster-creation.json으로 지정하고 저장합니다.

    { "Provisioned": { "BrokerNodeGroupInfo":{ "InstanceType":"kafka.m5.4xlarge", "ClientSubnets":[ "Subnet-1-ID", "Subnet-2-ID" ], "SecurityGroups":[ "Security-Group-ID" ], "StorageInfo": { "EbsStorageInfo": { "VolumeSize": 10, "ProvisionedThroughput": { "Enabled": true, "VolumeThroughput": 250 } } } }, "EncryptionInfo": { "EncryptionInTransit": { "InCluster": false, "ClientBroker": "PLAINTEXT" } }, "KafkaVersion":"2.8.1", "NumberOfBrokerNodes": 2 }, "ClusterName": "provisioned-throughput-example" }
  2. 이전 단계에서 JSON 파일을 저장한 디렉터리에서 다음 AWS CLI 명령을 실행합니다.

    aws kafka create-cluster-v2 --cli-input-json file://cluster-creation.json

API를 사용하여 스토리지 처리량 프로비저닝

클러스터를 생성하는 동안 프로비저닝된 스토리지 처리량을 구성하려면 V2를 사용합니다. CreateCluster