Using HTTP error codes for non-REST things is cringe.
503 would mean the IaaS API calls themselves are unavailable. Very different from the API working perfectly fine but the instances not being available.
503 would mean the IaaS API calls themselves are unavailable. Very different from the API working perfectly fine but the instances not being available.
Why would you think HTTP status codes are made for REST? They are made for HTTP to describe the response of the resource you are requesting, and the AWS API uses HTTP so it makes sense to use HTTP status codes.