When configuring hosts to be monitored we have several interface options: Agent Interfaces, SNMP Interfaces, JMX Interfaces, and IPMI Interfaces.
AWS CloudWatch offers a huge amount of metrics for all AWS services that we can potentially monitor via zabbix. Unfortunately the current state of the art in monitoring AWS is to create Low Level Discovery scripts that are executed via Agent Interfaces on some centralized EC2 instances.
If we had an AWS/CloudWatch interface that allowed us to simply set the in AWS id and the secret/key used by the AWS client to retrieve cloud watch metrics then zabbix would be able to monitor all metrics available in cloud watch and for every service (ELB, EBS, SNS, SQS, ...) without need to create empty hosts just to execute an agent that runs awscli commands.
Also we would get a nice reachability indicator next to the hosts indicating if the service is available via cloud watch, etc.
Going further the interfaces in Zabbix could be made generic and flexible in a way that anyone could create new interfaces and register them with Zabbix. This would result in user contributed interfaces to monitor all possible cloud services (e.g. Azure, DigitalOcean, AWS, GoogleCloud, etc.).
If someone provides pointers on where to start looking and modifying I am willing to give it a shot at implementing an AWS interface for Zabbix.