EC2 instances discovery in AWS by HTTP template uses the following host prototype:
Host name:
{#AWS.EC2.INSTANCE.ID}
Visible name:
{#AWS.EC2.INSTANCE.NAME}
In the AWS the IDs are guaranteed to be unique, but instance names could be the same.
But the Zabbix require for visible names to be unique too.
That could cause the situation with uncreated hosts.
Example:

Possible solutions:
1) remove visible name at all
2) change visible name to
{#AWS.EC2.INSTANCE.NAME} [{#AWS.EC2.INSTANCE.ID}]
or something similar.
3) allow the same visible names in Zabbix (like with item names, where the name could be the same, but uniqueness assured by key).