Both AWS Kinesis and Apache Kafka, are widely used messaging queue systems and stream processing and many other similar use-cases. There are quite a few differences between AWS Kinesis, and Kafka and they are:
Apache Kafka is an open-source tool, which needs to be set up and takes a week time to reach a full-fledged production-ready environment. Whereas, AWS Kinesis is a managed AWS service, thus its user does not have to worry about setting up, or provisioning, maintaining storage, networking, or configuring, etc.
Apache Kafka needs more human hours and machine costs to be up and running efficiently, to reduce the expenses, whereas AWS Kinesis is cheaper at pay-as-you-go model, and needs less infrastructure to maintain it.
There are lots of differences, and a company or organization can fix any one of them, only after going through many factors. If a company has sufficient expert professionals in Linux, then they can lean towards, Apache Kafka, as it offers flexibility and is open-source. But if you are low in professionals, and are running a limited budget, you might want to use AWS Kinesis provided is also Cloud-native.
If you are a novice to AWS cloud space, check out the following YouTube video on AWS Kinesis to get a better understanding and if you wish to get certified in AWS, check out the AWS certification course from Intellipaat.