Embedded - another term for the database being actually a library (and thus running in the same process as your application) as opposed to: Non-embedded - DB is run as an application
For a web app, just use a non-embedded DB like Postgres. You'll run into the limitations of something like SQLite too quickly.
non-embedded(hosted/ ex- postgres) -> where does it need to live in order to communicate between an api? Should a database live on it's own machine or on the same machine as your server?
It needs to be accessible to your backend. This might be over the internet or it could be on a private network. Eventually you'll want to run them on separate machines so you can optimise machine resources accordingly (using a different AWS instance type for each for example). For a side project, it's fine to be on the same machine. Even better, use a free Heroku addon and don't worry about how to configure the DB.