m-chandler / factorio-spot-pricing

Factorio Deployment to AWS
MIT License
98 stars 25 forks source link

Do some Instance Types just not work? #16

Closed kahemker closed 4 years ago

kahemker commented 4 years ago

Today, I decided to take my ECS that has been running on a t3.large and try to run with m6g.xlarge. It sounds like these "m6g" class instance are made for gaming and this one had more vCPUs with more cores. (We are playing with Rampant and starting to feel some chugging).

It just didn't seem to build an elastic container or setup the spot request. I increased the bid price to $0.15 per hour and after waiting about 10 minutes, nothing.

I'm new to this whole thing, but the only major difference between these two instances is the architecture. x86_64 vs arm64. There are more valid cores, and more memory, it's still available in my zone (us-east1)

Just wanted to see what you thought. Again, thanks for creating this. Seriously making Factorio awesome to play with my friends.

m-chandler commented 4 years ago

If you navigate to Services > EC2 > Auto Scaling Groups, and then click on Activity History it does log failures for that instance type "The requested configuration is currently not supported. Please check the documentation for supported configurations. Launching EC2 instance failed.".

This is because it's attempting to launch an arm64 EC2 instance with an x86_64 Amazon Machine Image (AMI). There are arm64 AMIs available for ECS, but whilst this will successfully launch the underlying instance I don't think Factorio will actually run.

Factorio doesn't seem to have an arm64 build, so there's no arm64 image available from the guys at FactorioTools (which this repo heavily relies on) https://github.com/factoriotools/factorio-docker.

Even if I changed my template to allow you to select an arm64 image I don't think it will work. I would probably stick to an instance with an x64_64 architecture.

I could be wrong, and I'm getting out of my depth here - but I think it's a dead end going down the arm64 path.

kahemker commented 4 years ago

I figured it was something like this. I really don't know what I am doing either!

I got into this mess when my friends and I started a Krastorio2 + Rampant mod game and now we a nearly unplayable game. It seems like with thousands of biters running at your base constantly AWS instances even the z1d instances can't seem to keep up. Since I just don't know how to troubleshoot AWS or headless Factorio, I just started start/stopping the cloud formation and trying different instances.

My best guess is that the vCPU architecture just isn't designed for the load that a heavily modded Factorio game creates. All three of my friends can run this game locally just fine, and now our strategy is to let one of the three host the game on their own PC so they can have the best performance while on base defense. The rest of us do simpler tasks that can deal with some connection drops or low frame rate.

If you are curious about where the limit is to AWS and Factorio, I can send you our save and mods. Or if you or someone else finds a solution that can run this game, please let me know.

Regardless, I think this system is really cool. It was fun to scale the AWS instance up as our base grew and only when we ran into problems with Rampant did we move on to something else.