Если вы можете использовать субдомен (например, www.example.com) для своего веб-сайта, CNAME не является проблемой и сосуществует с записью MX.
Решение, которое я использую, где мне нужно разрешить example.com (а также www.example.com), представляет собой минимальный сервер с известным статическим IP-адресом (поэтому я могу использовать запись A), который выполняет перенаправление на сайт www. Эта логика является пробной для http. Хотя он может работать для https, он немного сложнее, так как вам нужен сертификат для example.com на сервере перенаправления.
Другая возможность, которая не является общей (то есть специфичной для AWS), - это перенести ваше доменное имя в сервис Amazon Route53 и использовать запись "псевдонима" для example.com. Запись псевдонима не является "реальной" записью DNS, но DNS-серверы Amazon "сглаживают" псевдоним, поэтому она запрограммирована как CNAME, но под ней преобразует запись в запись A - что они могут сделать, поскольку контролируют среду.
Третий вариант - создать службу динамического типа DNS, в которой ваш хост обновляет запись DNS A при каждом запуске / изменении IP-адреса, и вы используете очень низкий TTL, поэтому изменения быстро распространяются.
Для ясности, вы можете указать запись MX на место, отличное от Amazon, вы просто не хотите использовать CNAME на том же или более низком "уровне поддоменов", чем запись MX.