How to connect two micro controllers in different locations?

I'm trying to connect two Arduinos (or other microcontrollers if needed) in different locations, say city A and city B. The task is when pushing a button on Adruino A a light on Arduino B should light up, and vice versa.

If people have any direction or advice please let me know, thank you!

Either use an SMS message or an internet connection.

...R

Do you have WiFi in both locations? If so, can you open the firewall so one can contact the other? Without firewall control maybe look at a service like MQTT.

Without WiFi but within cellular coverage, a GSM shield (cellphone, basically) can send and receive SMS messages. You need to pay for SIM cards for both ends.

You said “city” so I won’t suggest satellite.