what is better between Jenkins & AWS CodeDeploy for CI/CD
Both are excellent tools, but it depends on your use cases for which is better. I would highly recommend using the entire AWS Ci/Cd suite (CodeBuild/CodePipeline/CodeDeploy) to gain the full benefit of using your resources in AWS. Here are pros for both:

Jenkins


Multitude of customizability plugins
Integration with all cloud providers (GCP, Azure, etc.)
Open sourced
Configuration as code through Jenkins Pipelines
Able to manage your own Jenkins Server (vs AWS which manages it for you)
Customizable GUI


AWS CI/CD 


No plugins (no dependency hell) 
Trivial integration with IAM (for both users and infrastructure)
Easy integration with AWS Secrets Manager, KMS, and other secret management tools 
AWS managed infrastructure 
Infrastructure as code through CloudFormation
Scalable out of the box


TLDR; Choose Jenkins if you want more control/configuration of your deployment infrastructure or you are integrating with many non-aws resources, otherwise, choose the AWS CI/CD suite for less overhead and better integration with AWS.