Elixir on Amazon Linux2 on AWS

I would like to use AWS. I choose Amazon Linux2 as OS.
I tryed 2 way.

  1. yum install erlang & yum install elixir.
  2. amazon-linux-extras install elixir.

1 is failed by compile error.
2 is succeeded but elixir version is old.

How can I make environment new on AWS EC2?

1 Like

Two suggestions:

  1. Containerization. Docker is what the kids these days use, I hear.
  2. Don’t build your elixir project on your AWS node. Build at home. Do a release, zip it, then ship the zip to AWS, unpack, and then rock and roll.
2 Likes

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.

I would consider seeing if erlang-solutions to build an Amazon Linux 2 version of their distribution similar to these ones https://www.erlang-solutions.com/resources/download.html.

I can’t remember if I actually asked them before, I think I resorted to using the Amazon Linux 2 docker images to do builds on my Macbook.

You could also look at using something like asdf on your build box to get the latest Erlang/Elixir.

Do I need to study docker? I think it need of trend. Are there any articles about how to create phoenix env with amazon linux2 on AWS? It is so hard for me without it.

I think if you want to do what you are doing you might need docker. If you can use some other Linux system image (like basic Ubuntu 18.04), which is what my company does, you’re probably fine.

I would look at the AWS guide for Distillery.

I finally gave up to use Amazon Linux2 as a vm instance.
Simply I decided to use Ubuntu Server 18.04 LTS (HVM), SSD Volume Type.
I don’t need use Docker in terms of learning cost.

Everything is fine so far.