Note that for option 2 you must still be using a Linux host to build your release, with compatible CPU architecture, kernel, and libc versions compared to your Amazon Linux target hosts. Otherwise you will not be successful except by accident, and could have failed deploys at any time. You cannot cross-compile for another kernel/CPU architecture with the BEAM today.
Most folks find it challenging to achieve this parity without using the same exact OS and OS version as their deployment targets, which is one reason why option 1 is gaining popularity.
If you’re not building releases yet, you’ll need to be, one way or another. Look for documentation from the 1.9 release or from Distillery package on HexDocs, which are still more cohesively organized and much more thorough than native release support.