Hello, Daniel. I'm not a Chinese teacher though ^_^
Generally, they're the same. Technically, "盟友" can be the translation of "ally" in English, but “同盟者” merely refers to allied people, instead of allied countries. To me, "盟友" sounds more natural and verbal while "同盟者" is kind of wordy and bland.
In ancient China, kings used to offer up the blood of livestock (mostly cattle) as sacrifices when making alliances. That's why you can find a "皿" as the low part of the character, which resembles the plate or vessel containing sacrifices. The host of the allying ceremony was considered the leader (霸主 the Overlord) of all kings and therefore he had the right to hold the cattle ear (执牛耳).
盟,歃血誓也。——《三苍》
<em>To ally is to take an oath by smearing mouth with blood. </em>
约信曰誓,涖牲曰盟。——《礼记·曲礼》
<em>Take oaths to promise. Form alliances before sacrifices. </em>