일반

Q: Amazon MSK란 무엇인가요?
Amazon Managed Streaming for Apache Kafka(Amazon MSK)는 Apache Kafka 인프라와 운영을 관리하는 AWS 스트리밍 데이터 서비스로서, Apache Kafka 운영 관련 전문 지식이 없는 개발자 및 DevOps 관리자도 손쉽게 AWS에서 Apache Kafka 애플리케이션과 Kafka Connect 커넥터를 실행할 수 있도록 지원합니다. Amazon MSK는 Apache Kafka 클러스터를 운영, 유지 관리, 크기 조정하고, 즉시 사용 가능한 엔터프라이즈급 보안 기능을 제공하며, 스트리밍 데이터 애플리케이션 개발 속도를 높여 주는 내장 AWS 통합 기능을 제공합니다. 시작하기 위해서는 기존 Apache Kafka 워크로드와 Kafka Connect 커넥터를 Amazon MSK로 마이그레이션하거나, 클릭 몇 번으로 새 워크로드를 맨 처음부터 구축할 수도 있습니다. 클러스터 내 트래픽에는 데이터 전송 요금이 부과되지 않으며 약정 또는 선불 지급이 필요하지 않습니다. 사용한 리소스에 대해서만 지불하면 됩니다.
 
Q: Apache Kafka란 무엇인가요?
Apache Kafka는 실시간 스트리밍 데이터 파이프라인 및 애플리케이션을 구축할 때 사용하는 확장 가능하고 내결함성을 갖춘 고성능 오픈 소스 플랫폼입니다. Apache Kafka는 데이터 스토어에 스트리밍 데이터를 생성하는 애플리케이션(생산자)을 데이터 스토어에서 스트리밍 데이터를 소비하는 애플리케이션(소비자)에서 분리하는 스트리밍 데이터 스토어입니다. 조직에서는 스트리밍 데이터를 지속적으로 분석하여 관련 대응 조치를 취하는 애플리케이션용 데이터 소스로 Apache Kafka를 사용합니다. Apache Kafka에 대해 자세히 알아보세요.
 
Q: Kafka Connect이란 무엇인가요?
Apache Kafka의 오픈 소스 구성 요소인 Kafka Connect는 데이터베이스, 키 값 스토어, 검색 인덱스 및 파일 시스템 등의 외부 시스템과 Apache Kafka를 연결하기 위한 프레임워크입니다.
 
Q: 스트리밍 데이터란 무엇인가요?
스트리밍 데이터는 수천 개의 머신, 디바이스, 웹사이트 및 애플리케이션에서 생성되는 작은 레코드나 이벤트(레코드나 이벤트 하나의 크기는 보통 몇 킬로바이트임)의 연속 스트림입니다. 스트리밍 데이터에는 모바일이나 웹 애플리케이션을 사용하는 고객이 생성하는 로그 파일, 전자 상거래 구매 항목, 게임 내 플레이어 활동, 소셜 네트워크의 정보, 주식 거래소, 지리 정보 서비스, 보안 로그, 지표 및 커넥티드 디바이스의 텔레메트리 또는 데이터 센터의 계측 등 다양한 데이터가 포함되어 있습니다. Amazon MSK 및 Amazon Kinesis Data Streams와 같은 스트리밍 데이터 서비스를 사용하면 손쉽게 스트리밍 데이터를 지속적으로 수집, 처리 및 전달할 수 있습니다. 스트리밍 데이터에 대해 자세히 알아보세요.
 
Q: Apache Kafka의 기본적인 기능은 무엇입니까?
Apache Kafka에는 세 가지 주요 기능이 있습니다.
  • Apache Kafka는 내결함성이 지원되는 방식으로 스트리밍 데이터를 저장하며 생산자와 소비자 간의 버퍼를 제공합니다. Apache Kafka는 이벤트를 연속적인 레코드로 저장하며 레코드가 생성된 순서를 유지합니다.
  • 웹사이트, 사물 인터넷(IoT) 디바이스, Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 등의 대다수 데이터 생산자는 Apache Kafka를 통해 스트리밍 데이터를 지속적으로 게시하고 Apache Kafka 주제를 사용하여 이를 분류할 수 있습니다. 기계 학습 애플리케이션, AWS Lambda 함수 또는 마이크로서비스 등의 여러 데이터 소비자는 메시지 대기열 또는 기업 메시징 시스템과 비슷한 방식을 통해 각기 고유한 속도로 이러한 주제에서 데이터를 읽습니다.
  • 데이터 소비자는 데이터가 생성된 순서를 유지하면서 선입선출 방식으로 Apache Kafka 주제에서 데이터를 처리합니다.

Q: Apache Kafka의 주요 개념은 무엇인가요?
Apache Kafka는 주제에 레코드를 저장합니다. 데이터 생산자는 주제에 레코드를 쓰고 소비자는 주제에서 레코드를 읽습니다. Apache Kafka의 각 레코드는 키, 값 및 타임스탬프와 경우에 따라 헤더 메타데이터로 구성됩니다. Apache Kafka는 브로커라는 여러 노드에서 주제를 파티셔닝하고 이러한 파티션을 복제합니다. Apache Kafka는 하나 이상의 브로커에서 클러스터로 실행되며, 여러 AWS 가용 영역에 브로커를 배치하면 고가용성 클러스터를 생성할 수 있습니다. Apache Kafka는 Apache ZooKeeper를 사용하여 클러스터 태크스를 조정하며, Apache Kafka 클러스터와 상호 작용하는 리소스의 상태를 유지 관리할 수 있습니다.
 
Q: Apache Kafka는 언제 사용해야 하나요?
Apache Kafka는 스트리밍 데이터를 변환, 전달 및 응답하고, 여러 시스템이나 애플리케이션 사이에서 데이터를 안정적으로 전송하는 실시간 스트리밍 데이터 파이프라인을 구축하는 데 사용될 수 있습니다.
 
Q: Amazon MSK는 어떤 작업을 수행하나요?
Amazon MSK를 사용하면 AWS에서 고가용성 및 보안을 통해 Apache Kafka의 오픈 소스 버전을 손쉽게 시작하고 실행할 수 있습니다. Amazon MSK는 Apache Kafka 클러스터 실행에서 발생하는 운영 오버헤드 없이 AWS 서비스와의 통합도 제공합니다. Amazon MSK에서는 Apache Kafka의 오픈 소스 버전을 사용하고, Apache Kafka 클러스터를 설정하고, 프로비저닝하며, AWS와 통합하고, 지속적인 유지 관리를 수행할 수 있습니다.

콘솔에서의 몇 번의 클릭만으로 Amazon MSK 클러스터를 생성할 수 있습니다. 여기서 Amazon MSK는 비정상 브로커를 교체하고, 고가용성 유지를 위해 데이터를 자동으로 복제하고, Apache ZooKeeper 노드를 관리합니다. 또한 필요에 따라 하드웨어 패치를 자동으로 배포하고, AWS 서비스와의 통합을 관리하고, 콘솔을 통해 중요 지표를 표시합니다. 그리고 Apache Kafka 버전 업그레이드를 지원하므로 오픈 소스 버전 Apache Kafka의 개선된 기능을 활용할 수 있습니다.
 
Q: Amazon MSK는 어떤 Apache Kafka 버전을 지원합니까?
지원되는 Kafka 버전은 Amazon MSK 설명서를 참조하십시오.
 
Q: Apache Kafka API는 Amazon MSK와 호환됩니까?
예, 모든 데이터 영역 및 관리 API는 Amazon MSK에서 기본적으로 지원합니다.
 
Q: Apache Kafka AdminClient는 Amazon MSK에서 지원됩니까?
예.
 
Q: Amazon MSK는 스키마 등록을 지원합니까?
예. Apache Kafka 클라이언트에서 AWS Glue의 서버리스 기능인 AWS Glue 스키마 레지스트리를 무료로 사용할 수 있습니다. 스키마 레지스트리 사용 설명서를 확인하여 시작하고 자세히 알아보세요.
 
질문: M7g 클러스터를 시작하려면 어떻게 해야 하나요?
Amazon MSK는 이제 모든 Kafka 워크로드를 실행할 수 있도록 '대규모' 크기에서 '16xlarge' 크기까지 Graviton 3 기반 M7g 인스턴스를 지원합니다. Graviton 인스턴스는 MSK와 동일한 가용성 및 내구성 이점을 제공하며 해당 M5 인스턴스에 비해 비용이 최대 24% 저렴합니다. Graviton 인스턴스는 MSK의 M5 인스턴스에 비해 인스턴스당 최대 29% 높은 처리량을 제공하므로 고객은 더 적은 수의 브로커 또는 더 작은 크기의 인스턴스로 MSK 클러스터를 실행할 수 있습니다.

MSK Serverless

Q: MSK Serverless란 무엇인가요?
MSK Serverless는 컴퓨팅과 스토리지 용량을 관리하지 않아도 손쉽게 Apache Kafka 클러스터를 실행할 수 있는 Amazon MSK의 클러스터 유형입니다. MSK Serverless를 사용해 클러스터를 프로비저닝하고, 구성하고, 최적화할 필요 없이 애플리케이션을 실행할 수 있으며 데이터 볼륨을 스트리밍하고 유지한 만큼 비용을 지불합니다.

Q: MSK Serverless는 클러스터 내에서 자동으로 파티션 균형을 조정하나요?
예. MSK 서버리스는 클러스터 전체의 균일한 로드를 위해 파티션을 모니터링하고 이동시키는 등의 방법으로 완벽하게 관리합니다.

Q: MSK 서버리스는 데이터 처리 용량을 얼마나 지원하나요?
MSK 서버리스는 클러스터당 최대 200MBps의 쓰기 용량과 400MBps의 읽기 용량을 제공합니다. 또한 클러스터의 모든 파티션에 대해 충분한 가용 처리량을 보장하기 위해 MSK 서버리스는 파티션당 최대 5MBps의 즉시 사용 가능한 쓰기 용량과 10MBps의 즉시 사용 가능한 읽기 용량을 할당합니다.

Q: MSK 서버리스 는 어떤 보안 기능을 제공하나요?
MSK 서버리스는 전송 중인 모든 트래픽과 저장된 데이터를 AWS Key Management Service(KMS)를 통해 발급한 서비스 관리형 키를 사용하여 암호화합니다. 클라이언트는 퍼블릭 인터넷에 트래픽을 노출하지 않고 AWS PrivateLink를 사용한 프라이빗 연결을 통해 MSK 서버리스에 연결합니다. 또한 MSK 서버리스는 IAM 액세스 제어를 제공하여 주제와 같은 Apache Kafka 리소스에 대한 클라이언트 인증 및 클라이언트 권한 부여를 관리할 수 있습니다.

Q: 생산자와 소비자는 어떻게 나의 MSK 서버리스 클러스터에 액세스할 수 있나요?
MSK 서버리스 클러스터를 생성할 때 클러스터의 클라이언트를 호스팅하는 하나 이상의 Amazon Virtual Private Cloud(VPC) 서브넷을 제공합니다. 이 VPC에 호스팅한 클라이언트는 브로커 부트스트랩 스트링을 사용하여 해당 MSK 서버리스 클러스터에 연결할 수 있습니다.

Q: MSK 서버리스를 사용할 수 있는 리전을 어디인가요?
리전별 가용성에 대한 최신 정보는 MSK 요금 페이지를 참조하세요.

Q: MSK Serverless가 지원하는 인증 유형은 무엇입니까?
MSK Serverless는 현재 클라이언트 인증 및 권한 부여를 위해 AWS IAM을 지원합니다. 클라이언트는 인증을 위해 AWS IAM 역할을 수임할 수 있고, 연결된 IAM 정책을 사용하여 액세스 제어를 적용할 수 있습니다.

Q: MSK Serverless 클러스터에서 데이터를 처리하려면 어떻게 해야 합니까?
모든 Apache Kafka 호환 도구를 사용하여 MSK Serverless 클러스터 주제의 데이터를 처리할 수 있습니다. MSK Serverless는 상태 유지 스트림 처리를 위한 Amazon Managed Service for Apache Flink 및 이벤트 처리를 위한 AWS Lambda와 통합됩니다. 또한 Kafka Connect 싱크 커넥터를 사용하여 원하는 모든 대상으로 데이터를 전송할 수 있습니다.

Q: MSK Serverless는 어떻게 고가용성을 보장합니까?
파티션을 생성할 때 MSK Serverless는 2개의 복제본을 생성하고 서로 다른 가용 영역에 배치합니다. 또한 MSK serverless는 실패한 백엔드 리소스를 자동으로 탐지하고 복구하여 고가용성을 유지합니다.

데이터 생성 및 소비

Q: Apache Kafka API를 사용하여 Apache Kafka에서 데이터를 가져오거나 내보낼 수 있나요?
예. Amazon MSK는 네이티브 Apache Kafka 생산자 및 소비자 API를 지원합니다. 클라이언트가 Amazon MSK 내에서 클러스터 사용을 시작할 때 애플리케이션 코드를 변경할 필요가 없습니다.

Q: Apache Kafka Connect, Apache Kafka Streams 또는 Apache Kafka의 기타 에코시스템 구성 요소를 Amazon MSK와 함께 사용할 수 있습니까?
예, Apache Kafka 생산자 및 소비자 API와 Apache Kafka AdminClient를 활용하는 모든 구성 요소를 사용할 수 있습니다. Confluent Control Center, Confluent Auto Data Balancer 및 Uber uReplicator를 비롯하여 Apache Kafka 클러스터에 .jar 파일을 업로드하는 도구는 현재 Amazon MSK와 호환되지 않습니다.

Amazon MSK로 마이그레이션

Q: 기존 Apache Kafka 클러스터 내의 데이터를 Amazon MSK로 마이그레이션할 수 있나요?
예. Apachek Kafka로 지원되는 MirrorMaker 등의 오픈 소스 도구 또는 서드 파티 도구를 사용하여 클러스터의 데이터를 Amazon MSK 클러스터로 복제할 수 있습니다. 마이그레이션을 완료하는 데 도움이 되는 Amazon MSK 마이그레이션 실습을 참조하세요.

버전 업그레이드

Q: Apache Kafka 버전 업그레이드가 지원되나요? 
예. Amazon MSK는 프로비저닝된 클러스터를 위한 완전관리형 인 플레이스(in-place) Apache Kafka 버전 업그레이드를 지원합니다. Apache Kafka 버전 업그레이드 및 고가용성 모범 사례에 대해 자세히 알아보려면 버전 업그레이드 설명서를 참조하세요.

클러스터

Q: 첫 번째 Amazon MSK 클러스터는 어떻게 생성할 수 있나요?
AWS 관리 콘솔에서 몇 번 클릭하거나 AWS SDK를 사용하여 첫 번째 클러스터를 생성할 수 있습니다. 먼저 Amazon MSK 콘솔에서 Amazon MSK 클러스터를 생성할 AWS 리전을 선택합니다. 클러스터의 이름, 클러스터를 실행하는 데 사용할 Virtual Private Cloud(VPC), 각 AZ의 서브넷을 선택합니다. 프로비저닝된 클러스터를 생성하려면 브로커 인스턴스 유형, AZ당 브로커 수, 브로커당 스토리지도 선택합니다.
 
Q: 클러스터 내에는 어떤 리소스가 있나요?
프로비저닝된 클러스터에는 브로커 인스턴스, 프로비저닝한 스토리지 및 추상화된 Apache ZooKeeper 노드가 포함됩니다. 서버리스 클러스터는 본질적으로 리소스이며 모든 기본 리소스를 추상화합니다.
 
Q: Amazon MSK 클러스터 내에서는 어떤 유형의 브로커 인스턴스를 프로비저닝할 수 있나요?
프로비저닝된 클러스터에는 EC2 M7g 및 M5 인스턴스 패밀리 내에서 EC2 T3.small 또는 인스턴스를 선택할 수 있습니다. 서버리스 클러스터에서 브로커는 완전히 추상화됩니다.
 
Q: Amazon MSK에서 예약 인스턴스 요금을 제공하나요?
아니요. 현재는 아닙니다.
 
Q: 브로커 부팅 볼륨을 프로비저닝하고 비용을 지불해야 합니까?
아니요. 프로비저닝하는 각 브로커에는 Amazon MSK 서비스를 통해 관리되는 부팅 볼륨 스토리지가 포함됩니다.
 
Q: Apache Kafka 클러스터를 생성할 때 Amazon EC2 인스턴스 등의 기본 리소스가 EC2 콘솔에 표시됩니까?
탄력적 네트워크 인터페이스(ENI) 등의 일부 리소스가 Amazon EC2 계정에 표시됩니다. 그 외 Amazon MSK 리소스는 Amazon MSK 서비스를 통해 관리되므로 EC2 계정에 표시되지 않습니다.
 
Q: Amazon MSK 클러스터 내에서 프로비저닝해야 하는 것은 무엇인가요?
프로비저닝된 클러스터에는 생성하는 모든 클러스터와 함께 브로커 인스턴스와 브로커 스토리지를 프로비저닝해야 합니다. 스토리지 볼륨에 대한 스토리지 처리량을 선택적으로 프로비저닝할 수 있으며, 이는 추가 브로커를 프로비저닝하지 않고도 I/O 크기를 원활하게 조정하는 데 사용할 수 있습니다. Apache ZooKeeper 노드는 프로비저닝할 필요가 없습니다. 이러한 리소스는 생성한 각 클러스터에 추가 비용 없이 포함되기 때문입니다. 서버리스 클러스터에 대해, 클러스터를 리소스로 생성하기만 하면 됩니다.
 
Q: 클러스터의 기본 브로커 구성은 무엇인가요?
별도로 지정된 경우가 아니면 Amazon MSK는 오픈 소스 버전의 Apache Kafka에서 지정한 것과 동일한 기본값을 사용합니다. 두 클러스터 유형의 기본값 설정은 여기에 설명되어 있습니다.
Q: AZ 간에 각기 다른 수의 브로커를 프로비저닝할 수 있나요(예: us-east-1a에는 3개, us-east-1b에는 2개, us-east-1c에는 1개 프로비저닝)?
아니요, Amazon MSK는 클러스터 내의 모든 AZ에서 동일한 브로커 수를 유지하는 모범 사례를 적용합니다.

Q: Amazon MSK에서 데이터 복제는 어떤 방식으로 이루어집니까?
Amazon MSK는 Apache Kafka의 리더-팔로워 복제를 사용하여 브로커 간에 데이터를 복제합니다. Amazon MSK를 사용하면 여러 개의 AZ 복제로 클러스터를 손쉽게 배포하고, 주제별로 사용자 정의 복제 전략을 사용할 수 있습니다. 기본적으로 각 복제 옵션을 사용할 때는 지정된 복제 전략을 사용하여 리더 및 팔로워 브로커를 배포 및 격리합니다. 예를 들어, 1-AZ 브로커 복제 전략(AZ 클러스터당 브로커 1개)을 선택하면, Amazon MSK는 브로커가 3개인 클러스터(리전의 AZ 3개에 브로커 1개)를 생성하며, 주제 복제 인자 재정의를 선택하는 경우가 아니면 기본적으로 주제 복제 인자도 3으로 설정됩니다.

Q: 기본 브로커 구성을 변경하거나 Amazon MSK로 클러스터 구성을 업로드할 수 있습니까?
예. Amazon MSK를 사용하면 사용자 지정 구성을 생성하여 새 클러스터와 기존 클러스터에 적용할 수 있습니다. 사용자 지정 구성에 대한 자세한 내용은 구성 설명서를 참조하십시오.

Q: 어떤 구성 속성을 사용자 지정할 수 있습니까?
사용자 정의할 수 있는 구성 속성은 여기에서 설명합니다.

Q: 새 주제의 기본 구성은 무엇입니까?
여기에 별도로 지정된 경우가 아니면 Amazon MSK는 Apache Kafka의 기본 구성을 사용합니다.

주제

Q: 주제는 어떻게 생성하나요?
Apache Kafka 클러스터가 생성되면, Apache Kafka API를 사용하여 주제를 생성할 수 있습니다. 모든 주제 및 파티션 레벨 작업과 구성은 Apache Kafka API를 사용하여 수행됩니다. 다음 명령은 Apache Kafka API와 클러스터에 제공된 구성 세부 정보를 사용하여 주제를 생성하는 예제입니다.

bin/kafka-topics.sh --create —bootstrap-server <BootstrapBrokerString> --replication factor 3 --partitions 1 --topic TopicName

네트워킹

Q: Amazon MSK는 Amazon VPC에서 실행되나요?
예. Amazon MSK는 항상 Amazon MSK 서비스를 통해 관리되는 Amazon VPC 내에서 실행됩니다. Amazon MSK 리소스는 클러스터 설정 시 선택하는 자체 Amazon VPC, 서브넷 및 보안 그룹에서 사용할 수 있습니다. VPC의 IP 주소가 탄력적 네트워크 인터페이스(ENI)를 통해 Amazon MSK 리소스에 연결되고 모든 네트워크 트래픽이 AWS 네트워크 내에 유지되며 기본적으로 인터넷에 액세스할 수 없습니다.

Q: Amazon MSK 클러스터의 브로커는 VPC 내의 클라이언트에 어떤 방식으로 액세스할 수 있나요?
클러스터의 브로커는 계정에 표시되는 ENI를 통해 VPC 내의 클라이언트에 액세스할 수 있습니다. ENI의 보안 그룹에 따라 브로커에서 허용되는 수신 및 송신 트래픽의 유형과 소스가 결정됩니다.

Q: 퍼블릭 인터넷을 통해 클러스터에 연결하는 것이 가능한가요?
예. Amazon MSK는 인터넷을 통해 Apache Kafka 2.6.0 이상 버전을 실행하는 Amazon MSK 클러스터의 브로커에 안전하게 연결하는 옵션을 제공합니다. 프라이빗 Amazon Virtual Private Cloud(VPC) 외부의 인증된 클라이언트는 퍼블릭 액세스를 사용함으로써 암호화된 데이터를 특정 Amazon MSK 클러스터 안팎으로 스트리밍할 수 있습니다. 추가 비용 없이 클러스터를 생성한 후에 MSK 클러스터에 대한 퍼블릭 액세스를 사용할 수 있지만, 클러스터 수신 및 송신에 대한 표준 AWS 데이터 전송 요금이 적용됩니다. 퍼블릭 액세스를 켜는 방법에 대한 자세한 내용은 퍼블릭 액세스 설명서를 참조하세요.

Q: 클라이언트와 Amazon MSK 클러스터 간에는 프라이빗 연결이 사용되나요?
기본적으로 VPC의 클라이언트와 Amazon MSK 클러스터 간의 프라이빗 연결을 통해서만 Amazon MSK 클러스터에서 데이터를 생성하고 소비할 수 있습니다. 그러나 Amazon MSK 클러스터에 대한 퍼블릭 액세스를 켜고 퍼블릭 부트스트랩-브로커 문자열을 사용하여 MSK 클러스터에 연결하는 경우 연결이 인증 및 승인되고 암호화되었어도 더 이상 프라이빗 연결로 간주되지 않습니다. 신뢰할 수 있는 IP 주소의 퍼블릭 액세스만 허용하는 인바운드 TCP 규칙을 사용하도록 클러스터의 보안 그룹을 구성하고 퍼블릭 액세스를 켜는 경우 최대한 이 규칙을 엄격하게 설정하는 것이 좋습니다.

VPC에 연결

질문: 인터넷을 통해 Amazon MSK 클러스터에 연결하려면 어떻게 해야 하나요?
가장 쉬운 방법은 Apache Kafka 2.6.0 이상 버전을 실행하는 MSK 클러스터의 브로커에 인터넷을 통해 퍼블릭 연결을 활성화하는 것입니다. 보안상의 이유로, MSK 클러스터를 생성하는 중에는 퍼블릭 액세스를 활성화할 수 없습니다. 그러나 퍼블릭 액세스가 가능하도록 기존 클러스터를 업데이트할 수 있습니다. 새 클러스터를 생성한 후에 퍼블릭 액세스가 가능하도록 업데이트할 수도 있습니다. 퍼블릭 액세스를 활성화하는 방법에 대한 자세한 내용은 퍼블릭 액세스 설명서를 참조하세요.

질문: AWS 네트워크 내부와 클러스터의 Amazon VPC 외부에서 Amazon MSK 클러스터에 연결하려면 어떻게 해야 하나요?
Apache Kafka 버전 2.7.1 이상을 실행하는 MSK 클러스터에 대해 다중 VPC 프라이빗 연결을 활성화하면 MSK 클러스터의 VPC 또는 AWS 계정과 다른 VPC 또는 AWS 계정에서 MSK 클러스터에 연결할 수 있습니다. 프라이빗 연결을 활성화하려면 먼저 지원되는 인증 체계(IAM 인증, SASL SCRAM 및 mTLS 인증)에 대해 클러스터를 생성해야 합니다. AWS PrivateLink 기술을 사용하여 프라이빗 연결을 활성화하는 Amazon MSK 관리형 VPC 연결을 사용하여 클러스터에 비공개로 연결하도록 클라이언트를 구성해야 합니다. 프라이빗 연결 설정에 대해 자세히 알아보려면 AWS 설명서 내에서 액세스를 참조하세요.

암호화

Q: Amazon MSK 클러스터의 데이터를 암호화할 수 있나요?
예. Amazon MSK는 Amazon Elastic Block Store(Amazon EBS) 서버 측 암호화AWS Key Management Service(AWS KMS) 키를 사용하여 스토리지 볼륨을 암호화합니다.

Q: Amazon MSK 클러스터 내 브로커 간 전송 데이터가 암호화되나요?
예. 기본적으로 새 클러스터에서는 브로커 간 통신에 대해 TLS를 통한 전송 데이터 암호화 기능이 활성화되어 있습니다. 프로비저닝된 클러스터에는 클러스터를 생성할 때 전송 데이터 암호화를 사용하는 옵션을 선택 해제할 수 있습니다.

Q: Apache Kafka 클라이언트와 Amazon MSK 서비스 간 전송되는 데이터가 암호화되나요?
예. 기본 전송 중 암호화는 CLI 또는 AWS 관리 콘솔에서 생성된 클러스터에 대해서만 TLS로 설정되어 있습니다. 클라이언트가 TLS 암호화를 사용하여 클러스터와 통신하려면 추가 구성이 필요합니다. 프로비저닝된 클러스터에는 TLS/평문 또는 평문 설정을 선택하면 기본 암호화 설정을 변경할 수 있습니다. MSK 암호화에 대해 더 알아보기.

Q: Amazon MSK 클러스터의 Apache ZooKeeper 노드와 브로커 사이에서 데이터가 이동할 때 전송 데이터가 암호화되나요?
예. Apache Kafka 버전 2.5.1 이상을 실행하는 Amazon MSK 클러스터는 Kafka 브로커와 ZooKeeper 노드 간 TLS 전송 암호화를 지원합니다.

액세스 관리

Q: 클러스터 인증 및 Apache Kafka API 권한 부여를 제어하려면 어떻게 해야 하나요?
서버리스 클러스터에는 인증과 권한 부여를 위해 IAM 액세스 제어를 사용할 수 있습니다. 프로비저닝된 클러스터에는 3가지 옵션을 사용할 수 있습니다. 1) AWS Identity and Access Management(IAM) 액세스 제어를 AuthN/Z에 모두 사용(권장), 2) AuthN에 TLS 인증서 인증(CA)을 사용하고 AuthZ에 액세스 제어 목록 사용, 3) AuthN에 SASL/SCRAM을 사용하고 AuthZ에 액세스 제어 목록 사용. Amazon MSK는 IAM 액세스 제어의 사용을 권장합니다. 사용이 가장 쉬운 옵션인 동시에 최소 권한 액세스로 기본 설정되므로 가장 안전한 옵션입니다.

Q: Amazon MSK에서 권한 부여는 어떻게 이루어지나요?
IAM 액세스 제어를 사용하는 경우 Amazon MSK는 사용자가 작성한 정책과 자체 권한 부여자를 사용하여 작업 권한을 부여합니다. TLS 인증서 인증 또는 SASL/SCRAM을 사용하는 경우 Apache Kafka는 권한 부여에 액세스 제어 목록(ACL)을 사용합니다. ACL을 사용하려면 TLS 인증서 또는 SASL/SCRAM을 사용하여 클라이언트 인증을 활성화해야 합니다.

Q: 클라이언트에 대한 인증 및 승인을 동시에 수행하려면 어떻게 해야 합니까?
IAM 액세스 제어를 사용하는 경우 Amazon MSK가 자동으로 인증 및 권한 부여를 수행하므로 추가 설정이 필요하지 않습니다. TLS 인증을 사용하는 경우 클라이언트 TLS 인증서의 Dname을 ACL의 보안 주체로 사용하여 클라이언트 요청을 승인할 수 있습니다. SASL/SCRAM을 사용하는 경우 사용자 이름을 ACL의 보안 주체로 사용하여 클라이언트 요청을 승인할 수 있습니다.

Q: 서비스 API 작업을 제어하려면 어떻게 해야 합니까?
AWS Identity and Access Management(IAM)를 사용하여 서비스 API 작업을 제어할 수 있습니다.

Q: 기존 클러스터에서 IAM 액세스 제어를 사용할 수 있나요?
예. AWS 콘솔이나 UpdateSecurity API를 사용해 기존 클러스터에서 IAM 액세스 제어를 사용할 수 있습니다.

Q: Amazon MSK 밖에서 IAM 액세스 제어를 사용할 수 있나요?
아니요. IAM 액세스 제어는 Amazon MSK 클러스터에만 사용할 수 있습니다.

Q: Amazon MSK의 AWS 계정과 다른 AWS 계정의 Kafka 클라이언트에 내 Amazon MSK 클러스터에 비공개로 연결할 수 있는 크로스 계정 액세스 권한을 부여하려면 어떻게 해야 하나요?
Amazon MSK 클러스터에 클러스터 정책을 연결하여 Amazon MSK 클러스터에 대한 프라이빗 연결을 설정할 수 있는 크로스 계정 Kafka 클라이언트 권한을 제공할 수 있습니다. IAM 클라이언트 인증을 사용하는 경우 클러스터 정책을 사용하여 연결 클라이언트의 Kafka 데이터 영역 권한을 세부적으로 정의할 수도 있습니다. 클러스터 정책에 대한 자세한 내용은 클러스터 정책 설명서를 참조하세요.

모니터링, 지표, 로깅, 태깅

Q: 클러스터나 주제의 성능을 모니터링하려면 어떻게 해야 하나요?
Amazon MSK 콘솔, Amazon CloudWatch 콘솔을 사용하여 클러스터의 성능을 모니터링하거나, JMX 및 호스트 지표에서 오픈 소스 모니터링 솔루션인 Prometheus의 개방형 모니터링을 사용하여 모니터링할 수 있습니다.

Q: 다양한 CloudWatch 모니터링 레벨의 비용은 어떻게 됩니까?
Amazon CloudWatch를 사용하여 클러스터를 모니터링하는 비용은 Apache Kafka 클러스터의 크기 및 모니터링 레벨에 따라 달라집니다. Amazon CloudWatch에서는 매월 지표당 비용을 부과하며, 프리 티어를 제공합니다. 자세한 내용은 Amazon CloudWatch 요금을 참조하세요. 모니터링 레벨별로 제공하는 지표 수에 대한 세부 정보는 Amazon MSK 모니터링 설명서를 참조하세요.

Q: Prometheus를 사용한 개방형 모니터링과 호환되는 모니터링 도구는 무엇인가요?
Prometheus 내보내기 도구에서 읽도록 설계된 도구는 Datadog, Lenses, New Relic, Sumo Logic 또는 Prometheus 서버와 같은 개방형 모니터링과 호환됩니다. 개방형 모니터링에 대한 자세한 내용은 Amazon MSK 개방형 모니터링 설명서를 참조하세요.

Q: 클라이언트의 상태와 성능을 모니터링하려면 어떻게 해야 합니까?
사용 중인 Apache Kafka 버전에서 지원되는 모든 클라이언트 측 모니터링을 사용할 수 있습니다.

Q: Amazon MSK 리소스에 태그를 지정할 수 있나요?
예. AWS Command Line Interface(AWS CLI) 또는 콘솔에서 Amazon MSK 클러스터에 태그를 지정할 수 있습니다.

Q: 소비자 랙을 모니터링하려면 어떻게 해야 하나요?
주제 수준 소비자 랙 지표는 모든 클러스터에 대해 Amazon MSK가 Amazon CloudWatch에 게시하는 기본 지표 세트의 일부로 제공됩니다. 이러한 지표는 추가 설정 없이 확인 가능합니다. 프로비저닝된 클러스터에는 파티션 수준 소비자 랙 지표(파티션 차원)도 제공됩니다. 그렇게 하면 클러스터에서 향상된 모니터링(PER_PARTITION_PER_TOPIC)을 사용할 수 있습니다. 또는 클러스터에서 오픈 모니터링을 활성화하고 Prometheus 서버를 사용하여 클러스터의 브로커에서 파티션 수준 지표를 캡처할 수 있습니다. 소비자 랙 지표는 다른 Kafka 지표와 마찬가지로 포트 11001에서 사용할 수 있습니다.

Q: 소비자 랙 지표를 Amazon CloudWatch에 게시할 때 드는 비용은 얼마인가요?
주제 수준 지표는 무료로 제공되는 Amazon MSK 지표의 기본 세트에 포함됩니다. 파티션 수준 지표는 Amazon CloudWatch 요금에 따라 비용이 부과됩니다.

Q: Apache Kafka 브로커 로그에는 어떻게 액세스하나요?
프로비저닝된 클러스터에 대한 브로커 로그를 전송할 수 있습니다. Amazon CloudWatch Logs, Amazon Simple Storage Service(S3) 및 Amazon Kinesis Data Firehose로 브로커 로그를 전송할 수 있습니다. Kinesis Data Firehose는 Amazon OpenSearch Service를 비롯한 여러 대상 위치를 지원합니다. 이 기능을 사용하는 방법은 Amazon MSK 로깅 설명서를 참조하세요. 요금에 대한 정보는 CloudWatch Logs 및 Kinesis Data Firehose 요금 페이지를 참조하세요.

Q: 브로커 로그의 로깅 수준은 어떻게 되나요?
Amazon MSK는 프로비저닝된 클러스터의 모든 브로커에 대해 INFO 수준의 로그를 제공합니다.

Q: Apache ZooKeeper 로그에는 어떻게 액세스하나요?
지원 티켓을 통해 Apache ZooKeeper 로그를 요청할 수 있습니다.

Q: 주제 생성과 마찬가지로 Apache Kafka 리소스 API 사용을 로깅할 수 있나요?
예. IAM 액세스 제어를 사용하는 경우 Apache Kafka 리소스 API 사용이 AWS CloudTrail에 로깅됩니다.

Apache ZooKeeper

Q: Apache ZooKeeper란 무엇인가요?
https://zookeeper.apache.org에서 살펴보면 “Apache ZooKeeper는 구성 정보를 유지 관리하고, 이름을 지정하고, 분산 동기화 및 그룹 서비스를 제공하는 중앙 집중식 서비스입니다. 이러한 종류의 서비스는 모두 분산 애플리케이션에서 각기 다른 형식으로 사용됩니다."라고 나와 있으며 여기에는 Apache Kafka 등이 포함됩니다.

Q: Amazon MSK는 Apache ZooKeeper를 사용합니까?
예. Amazon MSK는 Apache ZooKeeper를 사용하며 Amazon MSK 서비스의 일부분으로 각 클러스터 내에서 Apache ZooKeeper를 관리합니다. Apache ZooKeeper 노드는 추가 비용 없이 각 클러스터에 포함됩니다.

통합

Q: Amazon MSK는 어떤 AWS 서비스와 통합됩니까?
Amazon MSK는 다음 서비스와 통합됩니다.

 

Amazon MSK 서버리스는 다음 서비스와 통합됩니다.

확장

Q: 클러스터에서 스토리지를 확장하려면 어떻게 해야 하나요?
AWS Management Console 또는 AWS CLI를 사용하여 프로비저닝된 클러스터에서 스토리지를 스케일 업할 수 있습니다. 또한 계층형 스토리지를 사용하여 스토리지용 브로커를 추가하지 않고 거의 무제한의 데이터를 클러스터에 저장할 수 있습니다. 서버리스 클러스터에서는 사용량에 따라 원활하게 스토리지 크기가 조정합니다.
 
Q: 계층형 스토리지는 어떻게 작동하나요?
Apache Kafka는 로그 세그먼트라고 하는 파일에 데이터를 저장합니다. 각 세그먼트가 완료되면 클러스터 또는 주제 수준에서 구성된 크기를 기준으로 저비용 스토리지 계층에 복사됩니다. 데이터는 지정된 보존 시간 또는 크기에 따라 성능 최적화 스토리지에 유지된 후 삭제됩니다. 저비용 스토리지에는 별도의 시간 및 크기 제한이 설정되어 있으며 기본 스토리지 계층보다 깁니다. 클라이언트가 저비용 계층에 저장된 세그먼트의 데이터를 요청하면 브로커가 데이터를 읽고 기본 스토리지에 저장된 것과 같은 방식으로 데이터를 제공합니다.

Q: 클러스터에서 스토리지를 자동으로 확장하려면 어떻게 해야 하나요?
AWS 관리 콘솔을 사용하거나 AWS CLI 또는 API를 사용하여 AWS Application Auto Scaling 정책을 생성하는 방법으로 자동 크기 조정 스토리지 정책을 생성할 수 있습니다.
 
Q: 기존 클러스터의 브로커 수를 조정할 수 있나요?
예. 프로비저닝된 Amazon MSK 클러스터의 브로커 수를 확장하거나 늘릴 수 있습니다.

Q: 기존 클러스터의 브로커 크기를 조정할 수 있나요?
예. 프로비저닝된 Amazon MSK 클러스터의 브로커 유형을 더 크거나 작은 유형으로 조정하도록 선택할 수 있습니다.

Q: 여러 브로커의 파티션 균형을 조정하려면 어떻게 해야 하나요?
파티션 자동 리밸런싱을 통해 I/O 발열을 관리하는 Cruise Control을 사용할 수 있습니다. 자세한 내용은 Cruise Control 설명서를 참조하세요. 또는 Kafka 관리 API kafka-reassign-partitions.sh를 사용하여 브로커의 파티션 할당을 변경할 수도 있습니다. 서버리스 클러스터에서 Amazon MSK는 자동으로 파티션 균형을 조정합니다.

요금 및 가용성

Q: Amazon MSK 요금은 어떤 방식으로 부과되나요?
요금은 생성하는 리소스에 따라 다릅니다. 요금 페이지 방문하여 자세히 알아볼 수 있습니다.

Q: 데이터 복제로 인한 데이터 전송에 대해서도 비용을 지불해야 하나요?
아니요. 클러스터 내의 모든 데이터 전송은 추가 비용 없이 서비스에 포함됩니다.

Q: Amazon MSK를 제공하는 AWS 리전은 어딘인가요?
Amazon MSK를 제공하는 리전은 여기에서 확인할 수 있습니다.

Q: 데이터 전송 요금은 어떤 방식으로 부과되나요?
프로비저닝된 클러스터를 사용하면 Amazon MSK 클러스터에서 데이터를 송수신할 경우 표준 AWS 데이터 전송 요금이 적용됩니다. 리전의 클러스터 내 데이터 전송(브로커 간의 데이터 전송 및 브로커와 Apache ZooKeeper 노드 간의 데이터 전송 포함)에는 요금이 부과되지 않습니다.

서버리스 클러스터를 사용하면 다른 리전으로 데이터를 송수신하고 퍼블릭 인터넷으로 데이터를 전송하는 경우 AWS 데이터 전송 요금이 적용됩니다.

규정 준수

Q: Amazon MSK에는 어떤 규정 준수 프로그램이 있습니까?
Amazon MSK는 규정을 준수하거나 다음 프로그램에 적격합니다.

  • HIPAA 적격
  • PCI
  • ISO
  • SOC 1,2,3

AWS 서비스 및 규정 준수 프로그램의 전체 목록을 확인하려면 규정 준수 프로그램 제공 범위 내 AWS 서비스를 참조하세요.

서비스 수준 계약

Q: Amazon MSK SLA에서 보장하는 내용은 무엇인가요?
Amazon MSK SLA에서는 Amazon MSK(MSK Serverless 및 MSK Connect 포함)에 대해 최소 99.9%의 월간 가동률을 보장합니다.
 
Q: SLA 서비스 크레딧을 수령할 자격이 있는지 어떻게 알 수 있나요?
Amazon MSK의 다중 AZ 배포에서 월별 청구 주기 중 최소 99.9%의 가동률을 보이면 Amazon MSK SLA에 따라 Amazon MSK에 대한 SLA 크레딧을 수령할 자격이 있습니다.
 
SLA의 모든 이용 약관과 요청 제출 방법에 대한 자세한 내용은 Amazon MSK SLA 세부 정보 페이지를 참조하세요.

복제

Q: Amazon MSK 복제기란 무엇인가요?
Amazon MSK 복제기는 코드를 작성하거나 인프라를 관리하지 않고도 여러 AWS 리전(크로스 리전 복제) 또는 동일한 AWS 리전 내(동일 리전 복제)의 Amazon MSK 클러스터 전체에 데이터를 안정적으로 복제할 수 있도록 하는 Amazon MSK 기능입니다. 크로스 리전 복제(CRR)를 사용하면 가용성이 높고 내결함성이 있는 다중 리전 스트리밍 애플리케이션을 구축하여 복원력을 높일 수 있습니다. 또한 CRR을 통해 다양한 리전의 소비자에게 지연 시간이 짧은 액세스를 제공할 수 있습니다. SRR을 사용하면 한 클러스터의 데이터를 여러 클러스터로 분산하여 파트너 및 팀과 데이터를 공유할 수 있습니다. 또한 SRR을 통해 여러 클러스터의 데이터를 하나로 집계하여 분석할 수 있습니다.

Q: MSK 복제기를 사용하려면 어떻게 해야 하나요?
소스 및 대상 MSK 클러스터 페어 간에 복제를 설정하려면 대상 AWS 리전에 복제기를 생성해야 합니다. 복제기를 생성하려면 소스 및 대상 MSK 클러스터의 Amazon 리소스 이름(ARN)과 MSK 복제기에서 클러스터에 액세스하는 데 사용할 수 있는 AWS Identity and Access Management(IAM) 역할이 포함된 세부 정보를 지정합니다. 대상 MSK 클러스터가 아직 없는 경우 대상 MSK 클러스터를 생성해야 합니다.

Q: MSK 복제기는 어떤 유형의 Kafka 클러스터를 지원하나요?
MSK 복제기는 MSK 클러스터 간의 복제만 지원합니다. 프로비저닝된 MSK 클러스터와 서버리스 유형의 MSK 클러스터 모두 지원됩니다. 또한 MSK 복제기를 사용하여 프로비저닝된 클러스터에서 서버리스로 또는 그 반대로 전환할 수 있습니다. 다른 Kafka 클러스터는 지원되지 않습니다.

Q: 복제하려는 주제를 지정할 수 있나요?
예. 복제기를 생성할 때 허용 및 거부 목록을 사용하여 복제할 주제를 지정할 수 있습니다.

Q: MSK 복제기는 주제 설정과 소비자 그룹 오프셋을 복제하나요?
예. MSK 복제기는 주제 구성, 액세스 제어 목록(ACL) 및 소비자 그룹 오프셋과 같은 필수 Kafka 메타데이터를 자동으로 복제하므로 장애 조치 후 사용 중인 애플리케이션에서 원활하게 처리를 재개할 수 있습니다. 데이터만 복제하려는 경우 이러한 설정 중 하나 이상을 끄도록 선택할 수 있습니다. 또한 복제기를 생성할 때 허용 또는 거부 목록을 사용하여 복제하려는 소비자 그룹을 지정할 수 있습니다.

Q: 수신 처리량이 변경될 경우 복제 규모를 조정해야 하나요?
아니요. MSK 복제기는 기본 복제 인프라를 자동으로 배포, 프로비저닝 및 조정하여 수신 처리량 변경을 지원합니다.

Q: 여러 AWS 계정의 MSK 클러스터 간에 데이터를 복제할 수 있나요?
아니요. MSK 복제기는 동일한 AWS 계정의 MSK 클러스터 간 복제만 지원합니다.

Q: 복제를 모니터링하려면 어떻게 해야 하나요?
대상 리전에서 Amazon CloudWatch를 사용하여 ‘ReplicationLatency,
MessageLag 및 ReplicatorThroughput’에 대한 지표를 각 복제기의 주제 및 집계 수준에서 추가 비용 없이 볼 수 있습니다. 지표는 ‘AWS/Kafka’ 네임스페이스의 ReplicatorName 아래에 표시됩니다. 또한 ‘ReplicatorFailure, AuthError 및 ThrottleTime’ 지표를 통해 복제기에 문제가 있는지 여부를 확인할 수 있습니다.

Q: 복제를 사용하여 리전 간 스트리밍 애플리케이션의 복원력을 높이려면 어떻게 해야 하나요?
MSK 복제기를 사용하여 액티브-액티브 또는 액티브-패시브 클러스터 토폴로지를 설정하면 리전 간 Kafka 애플리케이션의 복원력을 높일 수 있습니다. 액티브-액티브 설정에서는 두 MSK 클러스터가 모두 읽기 및 쓰기를 능동적으로 제공합니다. 이에 비해 액티브-패시브 설정에서는 한 번에 하나의 MSK 클러스터만 스트리밍 데이터를 능동적으로 제공하고 다른 클러스터는 대기 상태에 있습니다.

Q: MSK 복제기를 사용하여 한 클러스터의 데이터를 여러 클러스터로 복제하거나 여러 클러스터의 데이터를 하나로 복제할 수 있나요?
예. 각 소스 및 대상 클러스터 페어에 대해 서로 다른 복제기를 생성하기만 하면 됩니다.

Q: MSK 복제기는 소스 및 대상 MSK 클러스터에 어떻게 연결되나요?
MSK 복제기는 IAM 액세스 제어를 사용하여 소스 및 대상 클러스터에 연결합니다. 복제기를 생성하려면 소스 및 대상 MSK 클러스터에서 IAM 액세스 제어를 켜야 합니다. Amazon MSK는 여러 인증 방법을 동시에 지원하므로 클라이언트에 대해 SASL/SCRAM 및 mTLS를 비롯한 다른 인증 방법을 동시에 사용할 수 있습니다.

Q: MSK 복제기를 사용할 경우 예상되는 복제 지연 시간은 어느 정도인가요?
MSK 복제기는 데이터를 비동기식으로 복제합니다. 복제 지연 시간은 MSK 클러스터의 AWS 리전 간 네트워크 거리, 소스 및 대상 클러스터의 처리량 용량, 소스 및 대상 클러스터의 파티션 수 등 여러 요인에 따라 달라집니다.

Q: MSK 복제기에서 주제 이름을 동일하게 유지할 수 있나요?
아니요. MSK 복제기는 대상 클러스터에서 주제 이름에 자동 생성된 접두사를 추가하여 새 주제를 생성합니다. 예를 들어 MSK 복제기는 소스 클러스터의 ‘topic’ 데이터를 대상 클러스터의 ‘<sourceKafkaClusterAlias>.topic’이라는 새 주제에 복제합니다. MSK 복제기는 소스 클러스터에서 복제된 데이터가 포함된 주제를 대상 클러스터의 다른 주제와 구분하고 클러스터 간에 데이터가 순환적으로 복제되는 것을 방지하기 위해 이 작업을 수행합니다. DescribeReplicator API 또는 MSK 콘솔의 복제기 세부 정보 페이지를 사용하여 대상 클러스터의 ‘sourceKafkaClusterAlias’ 필드에서 대상 클러스터의 주제 이름에 추가할 접두사를 찾을 수 있습니다.

Q: 소스 클러스터의 기존 데이터를 복제할 수 있나요?
아니요. 새 복제기를 생성하면 소스 클러스터의 스트림 끝(최신 오프셋)에서 데이터 복제가 시작됩니다.

Q: 복제로 인해 소스 클러스터의 소비자가 제한될 수 있나요?
MSK 복제기는 소스 클러스터의 소비자 역할을 하므로 복제로 인해 소스 클러스터에서 다른 소비자가 제한될 수 있습니다. 이는 소스 클러스터의 읽기 용량과 복제 중인 데이터의 처리량에 따라 달라집니다. 소스 클러스터와 대상 클러스터에 동일한 용량을 프로비저닝하고 복제 처리량을 고려하여 필요한 용량을 계산하는 것이 좋습니다. 또한 소스 및 대상 클러스터에서 복제기에 대한 Kafka 할당량을 설정하여 복제기에 사용될 수 있는 용량을 제어할 수 있습니다.

Q: 대상 클러스터에 쓰기 전에 데이터를 압축할 수 있나요?
예. 복제기를 생성할 때 없음, GZIP, Snappy, LZ4 및 ZSTD 중에서 원하는 압축 코덱을 지정할 수 있습니다.

Amazon MSK 시작하기

비용 계산
비용 계산

Amazon MSK 요금 페이지를 방문하세요.

Read the documentation
시작 가이드 검토

단계별 안내서를 통해 Amazon MSK에서 Apache Kafka 클러스터를 설정하는 방법을 알아보세요.

Apache Kafka 클러스터 실행
Apache Kafka 클러스터 실행

Amazon MSK에서 Apache Kafka 클러스터 실행을 시작합니다. Amazon MSK 콘솔에 로그인합니다.