EC2-Instanz als Hauptentwicklungsplattform verwenden [geschlossen]


28

Mein Problem

Ich arbeite als Berater für verschiedene Unternehmen. Jede Firma stellt mir einen Laptop mit ihrer Software zur Verfügung und ich habe auch einen eigenen, in dem ich meine Entwicklungsumgebung habe. Ich kaufe normalerweise alle zwei Jahre einen neuen Laptop und verbringe viel Zeit damit, Software zu konfigurieren und zu installieren. Ich verbringe auch viel Zeit damit, auf meinen Laptop zu warten, um Dinge zu verarbeiten.

Um all diese Probleme zu lösen, denke ich jetzt darüber nach, EC2 (Windows-Instanzen ausführen) als meine Hauptentwicklungsplattform zu verwenden und von jedem PC, auf dem ich mich gerade befinde, darauf zuzugreifen. Ich habe berechnet, dass das Ausführen der Large-Instanz (billigste 64-Bit-Instanz) für 8 Stunden pro Tag pro Jahr mich 960 USD pro Jahr kostet, was akzeptabel ist.

Ich stelle mir vor, dass ich jeden Tag, wenn ich mich dem Arbeitsplatz nähere, ein einziges Mal auf mein Telefon tippe, um die Instanz zu starten, damit sie bereit ist, wenn ich zur Arbeit gehe. Ich sollte verschiedene Symbole auf meinem Telefon haben, um die verschiedenen Instanztypen zu starten. Die gleiche Software sollte natürlich automatisch auf die verschiedenen Hardware geladen werden (manchmal würde ich sogar ihre Instanz mit 68,4 GB Arbeitsspeicher benötigen).

Ein weiterer Vorteil ist, dass ich, wenn ich ein bestimmtes Problem mit meiner Instanz habe, eine andere Instanz starten und jemand das Problem untersuchen und das Image aktualisieren lassen kann.

Meine Frage:

Hat jemand Erfahrung mit einem solchen Setup auf EC2? Welche Probleme sehen Sie?


2
Wenn Sie über eine ausreichend gute Heimverbindung verfügen, können Sie dies mithilfe von Windows Remote Desktop auf einem Servercomputer bei Ihnen zu Hause tun. Oder wenn Sie mehrere Instanzen möchten, führen Sie mehrere unter virtual box aus. Keine monatliche Gebühr.
GrandmasterB

2
@GrandmasterB: Keine monatliche Gebühr? Sie meinen, Strom kostet bei Ihnen kein Geld? Und die Wartung Ihres Heimservers nimmt Ihnen keine Zeit?
John Bartholomew

Ist die Fernzugriffsmethode für Sie schnell genug?

Wie wäre es mit virtuellen Azure-Maschinen als Alternative zu EC2 für die Ausführung der Desktopumgebung?
Feklee

Haben Sie darüber nachgedacht, Linux VPS anstelle von EC2 zu verwenden?
Basile Starynkevitch

Antworten:


11

Ich verwende EC2 nicht, aber ich benutze eine sehr große Xen-Farm. Ehrlich gesagt, ich liebe es, weil:

  • Ich kann von überall zur Arbeit kommen
  • Es ist einfach, Snapshots von ganzen Dateisystemen zu erstellen (ich verwende VHD)
  • Es ist einfach, ISOs für die Installation zu erstellen
  • Das Migrieren von VMs ist trivial, wenn ich eine brauche, um zu wachsen und keinen Platz mehr zu haben
  • Programme wie distcc beschleunigen Builds wirklich, wenn Sie über 8 bis 10 virtuelle Maschinen verfügen, die verwendet werden können
  • Mit einer 100-MB-Verbindung können Dinge sehr schnell heruntergeladen werden :)

Die Einschränkung ist, ich bin beschissen, wenn ich nicht auf dem neuesten Stand von meinen HG-Repos bin, falls ich aus irgendeinem Grund kein Internet bekomme, und das ist ein paar Mal passiert.

Wenn Sie ein wirklich, wirklich ausgeklügeltes Setup haben, können Sie es auf keinen Fall lokal neu produzieren (oder vielleicht auch), aber der springende Punkt ist, keine Verbindung, keine Arbeit.


Danke für die hervorragende Antwort. Ich habe die Frage etwas mit dem Preis aktualisiert. Es sollte 960 $ pro Jahr gewesen sein.
David

@ David, aktualisiert :)
Tim Post

6

Sie entdecken, was die Unix / Linux-Leute seit Jahren tun: Entwicklung auf Servern. Sie können dann eine beliebige Maschine und ssh / putty in Ihre Server und Entwickler dort einsetzen.

Billige Linux-Server sind viel billiger als ec2. Sie können mit rackspacecloud für $ 11 / Monat (sie haben auch Windows-Images) loslegen, aber Sie können auch mit 15.00 / Jahr-Hosting für Basismaschinen unter http://buyvm.net/ (glücklicher Kunde, keine andere Beziehung) loslegen.

Für amazon können Sie sich 3-Jahres-Prepaid-Instanzen ansehen. Das könnte dir viel sparen.


4
Die Remote-Ausführung der GUI-IDE auf einem Linux-Server ist bei weitem nicht das, was Unix / Linux-Anwender tun.
Vartec

2
GUI IDE habe ich nicht erwähnt. Unix-Benutzer verwenden im Allgemeinen keine GUI-IDEs. Es ist EMACS vs VIM und einige Nano und Ed eingeworfen.
Christopher Mahan

1
Also zuerst, AFAIK, gibt es keinen Textmodus Visual Studio, also nein, Remote-Entwicklung unter Windows ist nicht dasselbe wie Remote-Bearbeiten von Dateien mit vi. Zweitens stimme ich Ihrer Verallgemeinerung nicht ganz zu. In meinen 15 Jahren Erfahrung in der Entwicklung für Linux habe ich sehr wenige Leute gesehen, die nur den Textmodus-Editor verwendet haben. Und die meisten von ihnen waren SysOps, keine Entwickler. Andererseits würden Entwickler meistens vollwertige IDE verwenden (Komodo, Eclipse und Derivate, KDevelop, Quanta +, InteliJ und Derivate).
Vartec

Mmm, interessant. Vielleicht variieren unsere Erfahrungen. Ich werde das im Hinterkopf behalten, wenn ich allgemeine Aussagen mache.
Christopher Mahan

6

Ich verwende EC2 traditioneller als Server. Die Probleme, die ich mit dem, was Sie versuchen, vorhersehen würde:

  • Speicher: Sie haben zwei Möglichkeiten: Permanenter EBS- und kurzlebiger Speicher. EBS ist ziemlich langsam, kann mir nicht vorstellen, mit einer IDE zu arbeiten, die eine so langsame Festplatte verwendet. Der kurzlebige Speicher verschwindet, sobald Sie Ihre Instanz stoppen. Daher ist dies auch keine gute Option. Und natürlich bei weitem nicht so schnell wie eine SSD.

  • Gedächtnis: nicht genug, besonders wenn man bedenkt, wie billig RAM heutzutage ist.

  • CPU: sehr, sehr unterlastet, nur 2 langsame virtuelle Kerne. Das Einstiegsniveau i3 bietet eine bessere Leistung, ganz zu schweigen von i5 oder i7.

  • Konnektivität: Die Latenz zu AWS ist ziemlich hoch, weit über dem, was Sie erwarten würden. Angesichts der Tatsache, dass ich EC2-Instanzen in Europa verwende, während ich von Europa aus eine Verbindung herstelle, erwarte ich eine Latenz von deutlich unter 30 ms. In der Zwischenzeit sind es eher 300 bis 500 ms. Zum Vergleich beträgt die transatlantische Latenz ca. 50 ms. Latenz macht jede interaktive GUI-Umgebung unbrauchbar.

Insgesamt gesehen ist Cloud für Server der große Vorteil der Skalierung (insbesondere der automatischen Skalierung). Welches Sie überhaupt nicht verwenden werden. Trotzdem müssen Sie sich mit allen Unannehmlichkeiten der Cloud abfinden.

UPDATE ab Mitte 2015 : Seitdem ich diese Antwort im Jahr 2012 geschrieben habe, hat AWS SSD-Speicher hinzugefügt und die Latenz verringert. Was CPU und RAM betrifft, so ist EC2 im Vergleich zu einem durchschnittlichen Laptop stark unterlastet, es sei denn, Sie sind bereit, deutlich mehr als 200 US-Dollar pro Monat auszugeben.


4

Ich habe auf diese Weise eine EC2-Instanz verwendet, um eine 64-Bit-Entwicklung mit Visual Studio 2010 auf einer großen Windows-Instanz durchzuführen. Es hat wunderbar funktioniert!

Obwohl ich in Südafrika bin, war die Latenz kein großes Problem. Das Kopieren und Einfügen und Bearbeiten großer Textblöcke war etwas träge, aber beim Debuggen bemerkte ich nicht einmal die Verzögerung. Das Ausführen der großen Downloads für die Inbetriebnahme - für mich VS 2010 und Office 2010 - war extrem schnell - einige GB in wenigen Minuten. Ich war buchstäblich innerhalb einer halben Stunde einsatzbereit.

Also empfehle ich Ihnen, es zu versuchen.


Was haben Sie kopiert und in Ihre IDE eingefügt? Schlechte Form!
Lorddev

@ Lorddev Kopieren zwischen Dateien in Visual Studio? Was empfehlen Sie als Alternative?
Kirk Broadhurst

Es war ein Scherz. Ich habe im Laufe der Jahre eine Menge Copy-and-Paste-Programmierer getroffen.
Lorddev

3

Das größte Problem, das ich sehe - zumindest bei einer Windows-Instanz und der Annahme, dass Sie Remotedesktop verwenden - ist, dass Netzwerkverzögerungen ärgerlich sind. Je nachdem, wie nahe Sie sich physisch am Amazon-Rechenzentrum befinden, ist dies möglicherweise kein Problem. Persönliche Erfahrung: Ich hatte eine Woche Zeit, in der mein ISP beschlossen hat, Pakete durch die USA zu leiten, um zu meinem Büro (20 km entfernt) zu gelangen. Die Benutzeroberfläche war unbrauchbar.


Es wird wahrscheinlich ein Problem sein, zumindest wenn ich eine mobile Verbindung habe. Ich denke, ich muss es testen, bevor ich etwas entscheide.
David

1
Ich benutze häufig RDP, um auf eine persönliche Entwicklungsmaschine zuzugreifen. Bei nicht grafischer Programmierung ist die Leistung so gut, dass Sie leicht vergessen können, dass Sie nicht an der Maschine sitzen. Es wird also sehr von Ihrer Verbindung und der Konfiguration abhängen (alle ausgefallenen GUI-Effekte werden entfernt).
GroßmeisterB

1
@GrandmasterB - es hängt sehr stark von der Latenz Ihrer Verbindung ab. Zum Beispiel gibt es sogar in meinem Heim-LAN einen merklichen Unterschied zwischen festverdrahteten und drahtlosen Verbindungen. Und das Weiterleiten Ihrer Pakete über das Internet kann zu großen Latenzen führen: Eine Rundreise von 6.000 Meilen zwischen den US-Küsten bringt beispielsweise 3 / 100stel Sekunden.
Anon

1

Ich verwende EC2-Mikroinstanzen über die kostenlose Ebene und es ist fantastisch. Es ist schnell, reagiert und ich muss kaum einen Cent bezahlen. Es dauert ungefähr ein Jahr, aber wenn Sie eine temporäre Entwicklungsumgebung benötigen, ist EC2 der richtige Weg. Ich habe dort nur großartige Erfahrungen gemacht. Für mich haben Micro-Instanzen sogar Datenverkehr mit bis zu 100.000 Treffern pro Tag unterstützt (auch sehr gut verarbeitet, bei nur einer Spitzenlast von etwa 70% der CPU-Auslastung).

Schauen Sie sich Bitnami an - es ist ein Schnellstart-LAMP-Stack-Image (oder ein beliebiges Stack-Image), mit dem Sie in nur 5 Minuten loslegen können. Stellen Sie außerdem sicher, dass Sie Ihre Sicherheit richtig konfigurieren! Erlauben Sie nur SSH-, HTTP- / HTTPS-Verbindungen in Ihren Web-Sicherheitsgruppen. Verwenden Sie SFTP für die Dateiübertragung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.