Doch dieser Anspruch von Cloud-Computing lässt sich mit Services der ersten Generation nur bedingt in die Realität umsetzen. Häufig stehen Anwendern nur vorgefertigte Preis- und Instanzenmodelle zur Verfügung, die sich den Anforderungen nicht flexibel genug anpassen. Viele IaaS-Anbieter beschränken sich auf vorab definierte Instanzen, bei denen Prozessorkerne, RAM und Speicherkapazitäten in einer festen Konfiguration zusammengefasst waren. Meist sind diese Konfigurationen nicht nur starr, sondern auch noch ziemlich klein, beispielsweise vier Prozessorkerne, 16 GByte RAM, 500 GByte Festplattenspeicher. Hintergrund: Der Provider teilt die Kapazitäten eines Servers einfach in mehrere gleich große Segmente und verteilt diese Ressourcen dann über Backend-Server. Der Kunde muss sich bei diesem Modell an die vom Provider vorgegebenen Instanzen halten und ist in seiner Flexibilität eingeschränkt. Die Abrechnung erfolgt meist nach Paketen und stundenweise, gewünscht wäre die Abrechnung nach tatsächlichem Bedarf, auch minutenweise.
Cloud-Lösungen gelten als einfacher Weg, um vorhandene Kapazitäten in Rechenzentren schnell aufzustocken. Doch wirklich komfortabel und kosteneffizient sind nur Lösungen, die nicht nur horizontal, sondern auch vertikal skalieren. Beim vertikalen Skalieren (Scale-up) wird die Systemleistung durch Hinzufügen von Ressourcen (Prozessoren, Arbeitsspeicher, Festplattenplatz und so weiter) erhöht. Das Besondere dabei: Das System, beispielsweise ein Server, kann auf diese Art quasi unabhängig von der verwendeten Software und ohne deren Modifikation beschleunigt werden. Ideal ist dies etwa für LAMP (Linux, Apache, MySQL, PHP)-Systeme, da MySQL ohne Anpassung die neuen Ressourcen erkennt und ohne Neustart vom Mehr profitiert.
IaaS-Lösungen der ersten Generation können aber nur horizontal skalieren (Scale-out). Hier wird die Gesamtleistung durch das Hinzufügen zusätzlicher Server erhöht. Um dieses Verfahren auszureizen, muss jedoch die Software von Haus aus parallelisierbar sein oder dahingehend modifiziert werden. Außerdem sind horizontal skalierte Server notgedrungen komplexer und daher schwieriger zu administrieren. Auch die Fehlersuche gestaltet sich im Problemfall komplizierter. Dazu kommt, dass die Performance nicht ganz linear mit der Anzahl der Server oder Knoten anwächst, da die Kommunikation zwischen den Maschinen einen Overhead mit sich bringt. Mehraufwand entsteht hier auch durch den Einsatz mehrerer Betriebssysteme.