Also mein Aufbau ist folgendermaßen, kommt halt auch immer darauf an welche Dimension dein Projekt hat, da ich mit sehr großen Userzahlen rechne, muss die Infrastruktur auch dementsprechend aussehen.
Aktuell habe ich einen VPS von Contabo als Test-VPS mit Ubuntu drauf, der Anfang war schwer, aber mittlerweile brauche ich kein GUI mehr und somit ist die Konfiguration und Wartung auch einfacher geworden, da ich mich einfach nur mit SSH drauf verbinden muss und Dateien mit WinSCP auch über den SSH-Kanal transferieren kann.
Als DB, hatte ich zuerst MySQL im Einsatz, da ich aber an die Grenzen gekommen bin für das was ich vor habe, bin ich auf PostgreSQL umgestiegen. Früher lief alles auf dem VPS, ein MySQL Server und der jRDC2 Dienst. Seit einem halben Jahr bin ich bei Amazon RDS und habe noch ein halbes Jahr das "Freetier", also kostenloses kontingent. Dort muss ich mich nicht um das Backup kümmern, auf die Verfügbarkeit, Lastverteilung und und und, hat dann aber auch seinen Preis, aber wenn ein Projekt eine gewisse Größe hat, dann hat man überall alle Hände voll zu tun und ist froh das AWS alles übernimmt.
Als Storage nutze ich Amazon S3, da ich mich wie bei bei RDS nicht um das Backup etc. kümmern muss.
Das Spannende wird sein, die Lastverteilung der VPS, dort werde ich dann Google Lastverteilung nutzen, um eine Stelle weniger zu haben was ich warten muss, da mein jRDC2 Dienst, der mittlerweile kein jRDC2 mehr ist auf vielen VPS's laufen wird.
Es ist schön, was man mit B4J auf die Beine stellen kann, ich habe eine vollwertige API, die angefangen hat nur als jRDC2 Service zu fungieren, aber mittlerweile, alles macht, von Bild hochladen, Authentifizierung der APP, andere APIs ansteuern die gebraucht werden, firebase push verwalten...
Meine 2 Cent, vielleicht kannst du was davon mitnehmen, ich lerne auch ständig dazu und wenn ich nach einem halben Jahr in Codes reinschaue denke ich mir, wie blöd ich doch damals war.